Canonical script
local_node.sh is at the root of the ctmd node source repository and is the canonical local-node script. The node source will be published in a public GitHub repository (repository TBA); the commands on this page run from the root of that repository:
Prerequisites
- Go matching
go.mod makejq- A working C toolchain for CGO builds
- Rust/SP1 build dependencies required by
make install
local_node.sh installs ctmd by default with make install. The install directory is BINDIR if set, otherwise $GOPATH/bin when GOPATH is set, otherwise $HOME/go/bin. The script then runs whichever ctmd comes first on your PATH.
Install and start
Start from a clean local genesis and install the binary:PATH, because the script runs the first ctmd it finds there:
~/.ctmd:
Reset
The normal reset command is:$HOME/.ctmd directory and creates a fresh local genesis. The manual equivalent is:
Ctrl-C.
Useful flags
--additional-users accepts only non-negative integers. Generated extra-user mnemonics are written to $HOME/.ctmd/mnemonics.yaml unless --mnemonic-file is provided.
Chain configuration
The local chain uses Cosmos chain ID
c8ntinuum_8888888-1 and EVM chain ID 8888888, distinct from mainnet (c8ntinuum_8-1, EVM 8) and testnet (c8ntinuum_8888-1, EVM 8888). The script sets the EVM chain ID explicitly: a node started without it uses ctmd’s default of 8, the mainnet ID, and EVM transactions signed on it are valid on mainnet. Never use a key that holds real funds on a local chain.
For EVM tooling and wallets, use chain ID
8888888 (0x87a238) and confirm it with eth_chainId after startup.
Ports
The script enables the local app APIs and uses the defaultctmd local addresses.
Default accounts
These accounts are deterministic local development accounts. They are public test keys and must never be used with real funds.
Each default dev account receives:
TEST: the local denom is atest, with 18 decimals.
The default validator key is mykey.
The validator account is funded with
100000000000000000000000000atest during genesis, and its genesis transaction self-delegates 888888000000000000000000atest with --min-self-delegation 888888000000000000000000. That is 888,888 TEST, the self-delegation floor that x/msdcheck enforces.
Active precompiles and local native wrapper
local_node.sh activates this static precompile set in genesis:
The script also configures the native ERC-20 precompile/token pair for the local denom:
A fresh local genesis also includes the default preinstall set described in Pre-deployed Contracts:
ctmd init writes it into the EVM genesis state, and the script does not remove it.
Docker support
The canonical local development path is./local_node.sh.
Docker assets exist, but they are separate from the single-node script flow:
contrib/images/ctmd-env/Dockerfilebuilds actmdenvironment image.docker-compose.ymldefines a four-nodecosmos/ctmdlocalnet (ctmdnode0toctmdnode3).tests/jsonrpc/Dockerfileandtests/jsonrpc/docker-compose.ymlsupport the JSON-RPC test infrastructure.
./local_node.sh.
Expected logs
On a fresh reset, expect logs like:Ctrl-C, expect: