This page documents the canonical local single-node workflow for c8ntinuum developers.

Canonical script

local_node.sh exists at the c8ntinuum repository root and is the canonical local-node script:
There is no separate local-node repository for the default developer flow. For hosted deployment scripts and source attribution, see Deployment Scripts. Keep this page and local_node.sh in sync when the script changes.

Prerequisites

  • Go matching go.mod
  • make
  • jq
  • 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:
Use an existing installed binary without rebuilding:
Install and run from a custom binary directory:
Start the existing local node state without overwriting ~/.ctmd:
The script writes local chain data under:

Reset

The normal reset command is:
That removes the existing $HOME/.ctmd directory and creates a fresh local genesis. The manual equivalent is:
Stop the node with 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 c8ntinuum_8-1; for testnet use c8ntinuum_8888-1.
For EVM tooling, derive the numeric chain ID from the local chain ID and verify it with eth_chainId after startup if the tool requires an explicit number.

Ports

The script enables the local app APIs and uses the default ctmd 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:
The default validator key is mykey. The validator account is funded during genesis and self-delegates 1000000000000000000000000ctm.

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 ctm: The repository also contains a separate genesis-backed preinstall catalog in Pre-deployed Contracts. The local script creates a fresh genesis and currently leaves 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.Dockerfile defines a ctmd runtime image layout.
  • docker-compose.yml defines a legacy multi-node cosmos/evmd localnet with ports for four nodes.
  • tests/jsonrpc/docker-compose.yml supports JSON-RPC test infrastructure.
Use Docker for workflows that explicitly reference those files. For day-to-day local development against this repository, prefer ./local_node.sh.

Expected logs

On a fresh reset, expect logs like:
During shutdown with Ctrl-C, expect: