Skip to main content

Validator Quick Sheet

TL;DR: Copy-paste zigchaind commands to create a validator, check status, manage slashing and rewards, and withdraw commission on ZIGChain mainnet, testnet, or local.

Overview

This validator quick reference lists zigchaind commands for ZIGChain operators. Use it after your node is online. It does not cover hardware setup or keyring steps.

Each command block has Mainnet, Testnet, and Local tabs. Pick the tab that matches your chain ID and RPC URL. Mainnet and testnet tabs use public Numia RPC nodes. The local tab uses http://localhost:26657.

For first-time setup, see Set Up a ZIGChain Validator and Set Up a ZIGChain Node. For roles and FAQs, see ZIGChain Validators Overview and ZIGChain Validators FAQ. Staking limits are in Staking Module. Jail rules are in Slashing Module. Downtime tips are in Validator Security Checklist. Set $ACCOUNT, $TXHASH, $VALIDATOR_OP_ADDRESS, and $VALIDATOR_CON_ADDRESS before you run the examples below.

Key Concepts

  • Validator operator address: On-chain identity for your validator used in staking and distribution queries (zigvaloper...).
  • Consensus address: CometBFT signing address used in slashing queries (zigvalcons...).
  • Active set: Validators currently signing blocks; check membership with tendermint-validator-set.
  • Commission: Rate validators charge delegators; set at create time and editable within max bounds.
  • Unjail: Transaction to restore a jailed validator after the unbonding window ends.
  • Self-delegation: Minimum stake the operator must bond; set in the create-validator JSON.

Validator Quick Reference for Setup and Registration

Register a validator with your consensus pubkey, a JSON descriptor, and a funded $ACCOUNT. The JSON sets commission and min self-delegation before you broadcast create-validator. Pick the tab for the network you use.

Get your node validator pub key

zigchaind tendermint show-validator

Create a file with your validator info

PUBKEY=$(zigchaind tendermint show-validator)
bash -c "cat > /tmp/your_validator.txt" << EOM
{
"pubkey": $PUBKEY,
"amount": "1000000uzig",
"moniker": "validator's name",
"identity": "optional identity signature (ex. UPort or Keybase)",
"website": "validator's (optional) website",
"security": "validator's (optional) security contact email",
"details": "validator's (optional) details",
"commission-rate": "0.1",
"commission-max-rate": "0.2",
"commission-max-change-rate": "0.01",
"min-self-delegation": "10"
}
EOM

Create your validator

zigchaind tx staking create-validator /tmp/your_validator.txt \
--from $ACCOUNT \
--chain-id zigchain-1 --node https://public-zigchain-rpc.numia.xyz \
--gas "auto" \
--gas-prices "0.0025uzig" \
--gas-adjustment 1.5

Confirm transaction and get your validator address

zigchaind query tx $TXHASH \
--chain-id zigchain-1 --node https://public-zigchain-rpc.numia.xyz | grep raw_log
VALIDATOR_OP_ADDRESS=$(zigchaind q tx $TXHASH --output json | jq -r '.tx.body.messages[0].validator_address')

Validator Quick Reference for Status Checks

Run these queries after create-validator confirms. They return bonding status, active-set membership, and operator or consensus addresses. Save $VALIDATOR_OP_ADDRESS from the create-validator output before you use the distribution commands later on this page.

Check your validator status

zigchaind query staking validator $VALIDATOR_OP_ADDRESS \
--chain-id zigchain-1 --node https://public-zigchain-rpc.numia.xyz

Check if the validator is part of the active set

zigchaind query tendermint-validator-set \
--chain-id zigchain-1 --node https://public-zigchain-rpc.numia.xyz \
| grep "$(zigchaind tendermint show-address)"

Get Your Validator Consensus Address

zigchaind comet show-address
VALIDATOR_CON_ADDRESS=$(zigchaind comet show-address)

Validator Quick Reference for Profile Updates

Update moniker, commission, and contact fields with edit-validator. Stay within the max commission and min self-delegation from your create-validator JSON. Use the same network tab and gas flags as the other transactions on this page.

Edit your validator information

zigchaind tx staking edit-validator \
--commission-rate 0.05 \
--details "YOUR_DETAILS" \
--identity "YOUR_KEYBASE_ID" \
--min-self-delegation "100" \
--new-moniker "Your new moniker name" \
--website "YOUR_WEBSITE_URL" \
--security-contact "YOUR_EMAIL" \
--chain-id zigchain-1 --node https://public-zigchain-rpc.numia.xyz \
--from $ACCOUNT \
--gas-adjustment 1.5 \
--gas auto \
--gas-prices "0.0025uzig"

Validator Quick Reference for Slashing and Unjail

If the validator is jailed, query signing info for the jail-until timestamp and missed-block counters. Send unjail only after that window ends. Repeat the signing-info query after unjail to confirm the jail record cleared.

Know when your validator will be unjailed

zigchaind query slashing signing-info $VALIDATOR_CON_ADDRESS \
--chain-id zigchain-1 --node https://public-zigchain-rpc.numia.xyz
zigchaind query slashing signing-info $(zigchaind tendermint show-validator) \
--chain-id zigchain-1 --node https://public-zigchain-rpc.numia.xyz

Unjail your validator

zigchaind tx slashing unjail \
--chain-id zigchain-1 \
--node https://public-zigchain-rpc.numia.xyz \
--gas "auto" \
--gas-prices "0.0025uzig" \
--from $ACCOUNT \
--gas-adjustment 1.5

Get Your Validator Operator Address

zigchaind query staking validator \
--chain-id zigchain-1 --node https://public-zigchain-rpc.numia.xyz

Get your slashing info and unjail period end

zigchaind query slashing signing-info $(zigchaind tendermint show-validator) \
--chain-id zigchain-1 --node https://public-zigchain-rpc.numia.xyz

Validator Quick Reference for Rewards

Query commission and validator distribution info with $VALIDATOR_OP_ADDRESS. Use withdraw-rewards to move accrued amounts to your operator account. The address must match the one from your create-validator transaction.

Get the rewards of your validator

zigchaind query distribution commission $VALIDATOR_OP_ADDRESS \
--chain-id zigchain-1 --node https://public-zigchain-rpc.numia.xyz

Get the rewards of your validator and the self-bonded rewards

zigchaind query distribution validator-distribution-info $VALIDATOR_OP_ADDRESS \
--chain-id zigchain-1 --node https://public-zigchain-rpc.numia.xyz

Withdraw your rewards

zigchaind tx distribution withdraw-rewards $VALIDATOR_OP_ADDRESS \
--chain-id zigchain-1 --node https://public-zigchain-rpc.numia.xyz \
--from z \
--gas-adjustment=1.5 \
--gas auto \
--gas-prices="0.0025uzig"