Configure a cheqd node as validator
This document provides guidance on how configure and promote a cheqd node to validator status. Having a validator node is necessary to participate in staking rewards, block creation, and governance.

Pre-requisites to promoting a node to validator on cheqd testnet

While the instructions listed here are specific to the cheqd testnet, a similar process is applicable to any network.

Preparation steps

  1. 1.
    Ensure you have a cheqd node installed as a service
    You must already have a running cheqd-node instance installed using one of the supported methods.
    Please also ensure the node is fully caught up with the latest ledger updates.
  2. 2.
    Generate a new account key
    Follow the guidance on using cheqd CLI to manage keys to create a new account key.
    1
    cheqd-noded keys add <alias>
    Copied!
    When you create a new key, a mnemonic phrase and account address will be printed. Keep the mnemonic phrase safe as this is the only way to restore access to the account if they keyring cannot be recovered.
  3. 3.
    Get your node ID
    Follow the guidance on using cheqd CLI to manage nodes to fetch your node ID.
    1
    cheqd-noded tendermint show-node-id
    Copied!
  4. 4.
    Get your validator account address
    The validator account address is generated in Step 1 above when a new key is added. To show the validator account address, follow the cheqd CLI guide on managing accounts.
    1
    cheqd-noded keys list
    Copied!
    (The assumption above is that there is only one account / key that has been added on the node. In case you have multiple addresses, please jot down the preferred account address.)

Requesting CHEQ tokens for cheqd mainnet

When you have a node successfully installed, please fill out our mainnet node operator onboarding form. You will need to have the following details on hand to fill out the form:
  1. 1.
    Node ID for your node
  2. 2.
    IP address / DNS record that points to the node (if you're using an IP address, a static IP is recommended)
  3. 3.
    Peer-to-peer (P2P) connection port (defaults to 26656)
  4. 4.
    Validator account address (begins with cheqd1)
  5. 5.
    Moniker (nickname/moniker that is set for your mainnet node)

Requesting CHEQ tokens for cheqd testnet

Once you have successfully completed the steps above, please fill out our node operator onboarding form so that you can acquire CHEQ testnet tokens required for staking on the network. The tokens will be send to your (validator) account address generated above.
You will need to have the following details on hand to fill out the form:
  1. 1.
    Node ID for your node
  2. 2.
    IP address / DNS record that points to the node (if you're using an IP address, a static IP is recommended)
  3. 3.
    Peer-to-peer (P2P) connection port (default is 26656)
  4. 4.
    Validator account address (begins with cheqd)
If you need help or support, join our cheqd Community Slack and ask for help.

Promote a node to validator after acquiring CHEQ tokens for staking

  1. 1.
    Ensure your account has a positive balance
    Follow the guidance on using cheqd CLI to manage accounts to check that your account is correctly showing the CHEQ testnet tokens provided to you.
    1
    cheqd-noded query bank balances <address>
    Copied!
  2. 2.
    Get your node's validator public key
    The node validator public key is required as a parameter for the next step. More details on validator public key is mentioned in the cheqd CLI guide on managing nodes.
    1
    cheqd-noded tendermint show-validator
    Copied!
  3. 3.
    Promote your node to validator status by staking your token balance
    You can decide how many tokens you would like to stake from your account balance. For instance, you may want to leave a portion of the balance for paying transaction fees (now and in the future).
    To promote to validation, submit a create-validator transaction to the network:
    1
    cheqd-noded tx staking create-validator --amount <amount-staking> --from <key-name> --chain-id <chain-id> --min-self-delegation <min-self-delegation> --gas auto --gas-adjustment <multiplication-factor> --gas-prices <price-gas> --pubkey <validator-pubkey> --commission-max-change-rate <commission-max-change-rate> --commission-max-rate <commission-max-rate> --commission-rate <commission-rate>
    Copied!
    Parameters required in the transaction above are:
    • amount: Amount of tokens to stake
    • from: Key alias of the node operator account that makes the initial stake
    • min-self-delegation: Minimum amount of tokens that the node operator promises to keep bonded
    • pubkey: Node's bech32-encoded validator public key from the previous step
    • commission-rate: Validator's commission rate
    • commission-max-rate: Validator's maximum commission rate, expressed as a number with up to two decimal points. The value for this cannot be changed later.
    • commission-max-change-rate: Maximum rate of change of a validator's commission rate per day, expressed as a number with up to two decimal points. The value for this cannot be changed later.
    • chain-id: Unique identifier for the chain.
      • For cheqd's current mainnet, this is cheqd-mainnet-1
      • For cheqd's current testnet, this is cheqd-testnet-2
    • gas: Maximum gas to use for this specific transaction. Using auto uses Cosmos's auto-calculation mechanism, but can also be specified manually as an integer value.
    • gas-adjustment (optional): If you're using auto gas calculation, this parameter multiplies the auto-calculated amount by the specified factor, e.g., 1.2. This is recommended so that it leaves enough margin of error to add a bit more gas to the transaction and ensure it successfully goes through.
    • gas-prices: Maximum gas price set by the validator
    Example transaction:
    1
    cheqd-noded tx staking create-validator --amount 1000ncheq --from eu-node-operator --moniker node1-eu-testnet-cheqd --chain-id cheqd-mainnet-1 --min-self-delegation="1" --gas="300000" --gas-prices="25ncheq" --pubkey '{"@type":"/cosmos.crypto.ed25519.PubKey","key":"4anVUO8WhmRMqG1t4z6VxqmqZL3V7q6HqucjwZePiUw="}' --commission-max-change-rate="0.02" --commission-max-rate="0.02" --commission-rate="0.01" --node http://sentry1.eu.cheqd.net:26657
    Copied!
  4. 4.
    Check that your validator node is bonded
    Checking that the validator is correctly bonded can be checked via any node:
    1
    cheqd-noded query staking validators --node <any-rpc-url>
    Copied!
    Find your node by moniker and make sure that status is BOND_STATUS_BONDED.
  5. 5.
    Check that your validator node is signing blocks and taking part in consensus
    Find out your validator node's hex-encoded address and look for "ValidatorInfo":{"Address":"..."}:
    1
    cheqd-noded tendermint show-address
    Copied!
    Query the latest block. Open <node-address:rpc-port/block in a web browser. Make sure that there is a signature with your validator address in the signature list.

Next steps

On completion of the steps above, you would have successfully bonded a node as validator to the cheqd testnet and participating in staking/consensus.
Learn more about what you can do with your new validator node in the cheqd CLI guide.
Last modified 14d ago