Canonical script
local_node.sh exists at the c8ntinuum repository root and is the canonical local-node script:
local_node.sh in sync when the script changes.
Prerequisites
- Go matching
go.mod, currently1.25.0 makejq- A working C toolchain for CGO builds
- Rust/SP1 build dependencies required by
make install
local_node.sh installs ctmd by default. It honors BINDIR if set; otherwise it resolves the install path to $(go env GOPATH)/bin, falling back to $HOME/go/bin.
Install and start
Start from a clean local genesis and install the binary:~/.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 chain ID
continuum_2182-1 is local-only and isolated from public networks. For mainnet use continuum_2184-1; for testnet use continuum_2185-1.| Setting | Local value |
|---|---|
| Cosmos chain ID | continuum_2182-1 |
| Native denom | ctm |
| Display denom | test |
| Keyring backend | test |
| Account key algorithm | eth_secp256k1 |
| Node home | $HOME/.ctmd |
| Moniker | localtestnet |
| Minimum gas price | 0ctm |
| EVM min tip | 0 |
| EVM JSON-RPC APIs | eth,txpool,personal,net,debug,web3 |
eth_chainId after startup if the tool requires an explicit number.
Ports
The script enables the local app APIs and uses the defaultctmd local addresses.
| Service | Default local address |
|---|---|
| EVM JSON-RPC HTTP | http://127.0.0.1:8545 |
| EVM JSON-RPC WebSocket | ws://127.0.0.1:8546 |
| CometBFT RPC | tcp://127.0.0.1:26657 |
| CometBFT P2P | tcp://127.0.0.1:26656 |
| Cosmos REST API | tcp://127.0.0.1:1317 |
| Cosmos gRPC | localhost:9090 |
| Geth metrics | 127.0.0.1:8100 |
Default accounts
These accounts are deterministic local development accounts. They are public test keys and must never be used with real funds.| Name | EVM address | Local bech32 address | Private key |
|---|---|---|---|
dev0 | 0xC6Fe5D33615a1C52c08018c47E8Bc53646A0E101 | c81cml96vmptgw99syqrrz8az79xer2pcgpw8hsl4 | 0x88cbead91aee890d27bf06e003ade3d4e952427e88f88d31d61d3ef5e5d54305 |
dev1 | 0x963EBDf2e1f8DB8707D05FC75bfeFFBa1B5BaC17 | c81jcltmuhplrdcwp7stlr4hlhlhgd4htqhc0gcnx | 0x741de4f8988ea941d3ff0287911ca4074e62b7d45c991a51186455366f10b544 |
dev2 | 0x40a0cb1C63e026A81B55EE1308586E21eec1eFa9 | c81gzsvk8rruqn2sx64acfsskrwy8hvrmaffytl6p | 0x3b7955d25189c99a7468192fcbc6429205c158834053ebe3f78f4512ab432db9 |
dev3 | 0x498B5AeC5D439b733dC2F58AB489783A23FB26dA | c81fx944mzagwdhx0wz7k9tfztc8g3lkfk62373ee | 0x8a36c69d940a92fcea94b36d0f2928c7a0ee19a90073eda769693298dfa9603b |
mykey.
| Field | Value |
|---|---|
| EVM/operator bytes | 0x7cB61D4117AE31a12E393a1Cfa3BaC666481D02E |
| Local account address | c810jmp6sgh4cc6zt3e8gw05wavvejgr5pwmph94z |
| Local validator address | c8valoper10jmp6sgh4cc6zt3e8gw05wavvejgr5pwrxmh56 |
| Mnemonic | gesture inject test cycle original hollow east ridge hen combine junk child bacon zero hope comfort vacuum milk pitch cage oppose unhappy lunar seat |
1000000000000000000000000ctm.
Active precompiles and local native wrapper
local_node.sh activates this static precompile set in genesis:
| Name | Address |
|---|---|
| P256 | 0x0000000000000000000000000000000000000100 |
| Bech32 | 0x0000000000000000000000000000000000000400 |
| Staking | 0x0000000000000000000000000000000000000800 |
| Distribution | 0x0000000000000000000000000000000000000801 |
| ICS20 | 0x0000000000000000000000000000000000000802 |
| Bank | 0x0000000000000000000000000000000000000804 |
| Gov | 0x0000000000000000000000000000000000000805 |
| Slashing | 0x0000000000000000000000000000000000000806 |
| ICS02 | 0x0000000000000000000000000000000000000807 |
ctm:
| Name | Address | Denom |
|---|---|---|
| Native ERC-20 / WERC20-style surface | 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE | ctm |
app_state.evm.preinstalls empty, so do not assume those ecosystem preinstalls exist on a local_node.sh chain unless the script is updated.
Docker support
The canonical local development path is./local_node.sh.
Docker assets exist, but they are separate from the single-node script flow:
docker/ctmd-runtime.Dockerfiledefines actmdruntime image layout.docker-compose.ymldefines a legacy multi-nodecosmos/evmdlocalnet with ports for four nodes.tests/jsonrpc/docker-compose.ymlsupports JSON-RPC test infrastructure.
./local_node.sh.
Expected logs
On a fresh reset, expect logs like:Ctrl-C, expect: