Network constants
Create validator
Generate an operator key.eth_secp256k1 is the default account key algorithm for ctmd.
validator.json. The pubkey must be the /cosmos.crypto.ed25519.PubKey output from ctmd comet show-validator.
888888000000000000000000ctm (888888 * 10^18) for both the initial self-delegation amount and min-self-delegation. The current genesis validators use this minimum self-delegation and have 999912000000000000000000ctm self-bonded.
For the module-level policy details and EVM staking precompile coverage, see Minimum Self-Delegation Check.
Commission bounds
Genesis validators use:
General staking validation still applies: commission values cannot be negative,
rate <= max-rate, max-rate <= 1, max-change-rate <= max-rate, and commission can only be increased once per 24 hours by no more than max-change-rate.
Keys and Ledger
- Account/operator keys default to
eth_secp256k1. - Supported account algorithms are
eth_secp256k1andsecp256k1. - Consensus validator keys are CometBFT
ed25519keys exposed throughctmd comet show-validator. - The SDK default coin type is
118, with default pathm/44'/118'/0'/0/0. - Ledger coin type
60uses the Ethereum app and creates aneth_secp256k1public key. - Ledger coin type
118uses the Cosmos app and creates a Cosmossecp256k1public key. ctmd keys add --ledgerrejects a custom--hd-path; use--coin-type,--account, and--index.
KMS and sentry architecture
The repo does not encode a required KMS or sentry topology; use these as operational recommendations.- Lowest-complexity signing uses the local CometBFT file signer under
~/.ctmd/config/priv_validator_key.json, but this has the largest key-exposure risk. - Remote signing can be implemented with TMKMS or Horcrux-compatible CometBFT remote signer setups.
- For threshold signing or high availability, prefer Horcrux-style threshold signing over running duplicate live validator keys.
- Never run the same validator consensus key in two active signers at once.
- Keep the validator node private and connect it only to sentry nodes.
- Public sentries should expose P2P and any intended public RPC surfaces; the validator should use sentries as persistent peers.
- Recommended validator-side settings include
pex = false, no public RPC, and firewall access limited to sentries and the signer. - Recommended sentry-side settings include
pex = true,persistent_peersincluding the validator, andprivate_peer_idsincluding the validator node ID.
Ports and services
API, gRPC, JSON-RPC, and telemetry are disabled by default unless explicitly enabled in config or via start flags.
Monitoring
Monitor at least:- Process health and automatic restart behavior for
ctmd. - Sync status from
ctmd status; alert ifcatching_upis true on a validator. - Peer count and sentry connectivity from CometBFT RPC.
- Block height progress, block time, disk usage, memory, file descriptors, and database growth.
- Validator signing info from
ctmd query slashing signing-info $(ctmd comet show-address). - Missed blocks well before the downtime threshold; alert before
500missed blocks in the1000block window. - JSON-RPC, gRPC, API, and indexer latency only on nodes intentionally serving those surfaces.
x/valrewards, including epoch reward settings, reward-pool funding, outstanding reward queries, and one-time validator reward claims. See Validator Rewards for CLI and precompile details.
Slashing, jailing, and unjail
Checked-in slashing params:
A validator is jailed for downtime when it misses more than half of the
1000 block signing window after the slashing warm-up period. Downtime burns 1% and jails for 600s. Double-signing burns 5%, jails, and tombstones the validator; tombstoned validators cannot be unjailed.
Unjail only after fixing the signer/node issue, waiting until jailed_until has passed, and confirming self-delegation is at least 888888000000000000000000ctm.