1. Prerequisite Check (Confirm Node Sync)

Before proceeding, make sure your node has fully synced blocks:
curl -s localhost:26657/status | jq .result.sync_info 
Ensure "catching_up" is false:
{   "catching_up": false,   ... } 

2. Create Wallet Account (Skip if already created)

cnho_stables keys add <your-key-name> 
⚠️ Be sure to back up your mnemonic phrase and address.
It’s recommended to set the keyring-backend to file or os for safety.
Check your address:
cnho_stables keys show <your-key-name> -a 

3. Get CNHO Tokens and Fund Your Wallet

Send your address to a mainnet distributor or use the faucet to receive CNHO tokens. Check your balance:
cnho_stables query bank balances <your-address> 

4. Create Validator (Staking Node)

cnho_stables tx staking create-validator \   
--amount 1000000ucnho \   
--pubkey $(cnho_stables tendermint show-validator) \   
--moniker "<your-node-name>" \   
--chain-id cnho_stables-1 \   
--commission-rate "0.10" \   
--commission-max-rate "0.20" \   
--commission-max-change-rate "0.01" \   
--min-self-delegation "1" \   
--from <your-key-name> \   
--fees 5000ucnho \   
--gas auto \   
--gas-adjustment 1.4 
Parameter explanation:
  • --amount: Staked amount (unit: ucnho, where 1 CNHO = 1,000,000 ucnho)
  • --pubkey: Your node’s public key (auto-fetched)
  • --moniker: Validator name (shown on block explorer)
  • --commission-rate: Initial commission fee (e.g., 10%)
  • --commission-max-rate: Maximum commission fee
  • --commission-max-change-rate: Max daily rate change
  • --min-self-delegation: Minimum self-bonded amount
  • --fees: Network transaction fee
  • --from: Your wallet name

5. Check Validator Status

cnho_stables query staking validator $(cnho_stables keys show <your-key-name> -a) 
If you see output like below, your validator was successfully created:
{   "description": {     "moniker": "your-moniker",     ...   },   "status": "BOND_STATUS_BONDED",   ... } 

6. Verify Signing Status

Check the latest validator public key:
cnho_stables tendermint show-validator
Check if you’re in the active validator set:
cnho_stables query staking validators --limit 1000 | grep <your-moniker>

7. Post-Creation Operations

Edit Validator Info
cnho_stables tx staking edit-validator \   
--moniker "<new-name>" \   
--identity "<Keybase ID>" \   
--website "<website>" \   
--details "<validator description>" \   
--chain-id cnho_stables-1 \   
--from <your-key-name> 

8. If Node Gets Jailed Due to Downtime

Unjail your validator with:
cnho_stables tx slashing unjail --from <your-key-name> --chain-id cnho_stables-1