Canonical resources
Validators do not use
deploy.sh. They install ctmd by hand with the manual mainnet install, which mirrors what deploy.sh install and deploy.sh state-sync do.
This inventory intentionally excludes example, administrative, and framework-specific scripts such as migrate.js, scripts/deploy.js, arguments.js, npm scripts, make targets, Foundry commands, and ctmd commands.
Deploy script
To install or updatectmd, run the deploy.sh script. You can download and run the script manually:
install and state-sync also set [evm] evm-chain-id in app.toml from the chain ID: 8 on mainnet (c8ntinuum_8-1), 8888 on testnet (c8ntinuum_8888-1). For a chain ID with no number in it, set CTMD_EVM_CHAIN_ID to choose the value.
Release metadata
deploy.sh install reads release metadata from metadata.json. The script resolves .ctmd.latest_version, selects the platform artifact URL and SHA-256 URL for linux-amd64, linux-arm64, or darwin-arm64, downloads the tarball, verifies SHA-256, and installs the bundled binary and shared libraries.
For mainnet, the script checks both the downloaded and the local genesis.json against the SHA-256 published at the URL in the metadata.json field genesis.mainnet.sha256_url (https://resources.c8ntinuum.io/mainnet/genesis.json.sha256). When install --chain-id uses a non-default chain ID, the script downloads the configured genesis URL but skips the mainnet SHA-256 check.
Peer list
deploy.sh uses the hosted peer list at:
deploy.sh state-sync needs at least two trusted_rpcs entries for the network unless both --rpc-1 and --rpc-2 are given, and at least two persistent_peers entries unless both --p2p-host-1 and --p2p-host-2 are given.
deploy.sh selects peer-list entries by chain ID, so node deployers normally do not need to manually copy a peer list into config.toml. Operators using private infrastructure can override RPC and snapshot peer hosts with deploy.sh state-sync flags such as --rpc-1, --rpc-2, --p2p-host-1, and --p2p-host-2.
Local node script
local_node.sh ships with the ctmd source, which will be published in a public GitHub repository; the repository is to be announced. From a checkout of that repository, start a local developer chain: