createValidator on the staking precompile (0x0000000000000000000000000000000000000800). This page covers the registration step. For the node itself, see Install a node and Node configuration.
Prerequisites
- A fully synced full node on Mainnet (Chain ID
988). See Install a node. double_sign_check_heightset to2or higher in~/.stabled/config/config.toml.- Foundry installed for
cast, used to call the precompile. - The staking amount funded on your validator’s EVM address, in USDT0.
catching_up must be false.
Step 1: prepare validator keys
Create the operator account, then read the two valuescreateValidator needs: the consensus public key (base64) and the validator’s EVM address.
Step 2: set up environment
Step 3: create the validator
CallcreateValidator on the staking precompile. The function takes a description tuple, a commissionRates tuple, the minimum self-delegation, the validator address, the consensus pubkey, and the bonded amount. Encode and send it with cast.
(rate, maxRate, maxChangeRate), each scaled to 18 decimals. The example sets a 10% rate (100000000000000000), a 20% ceiling, and a 1% maximum daily change. maxRate and maxChangeRate are fixed at creation and cannot be edited later. A successful call emits a CreateValidator event. See the staking precompile reference for every field.
Step 4: verify
Confirm the validator is registered and bonded by reading it back from the staking precompile, then check it is signing blocks.Add self-delegation
To bond more stake to your own validator after creation, calldelegate on the same precompile.
After registration
Keep the validator healthy and ready for network upgrades:- Monitor signing and missed blocks with the Prometheus and Grafana stack in Monitor a node.
- Automate upgrades so you don’t miss an upgrade height. See the Cosmovisor setup in Install a node and Upgrade a node.
- Diagnose problems (not syncing, not signing) with Troubleshoot a node.
Next recommended
Staking precompile reference
Look up the full createValidator, delegate, and editValidator signatures and structs.
Node configuration
Set double_sign_check_height and other validator-critical config before you register.
Monitor a node
Track signing, missed blocks, and resource usage so you catch problems before a slash.
Index validator data
Read your validator’s stake, uptime, and voting history on-chain once it is live.

