var img = document.createElement('img'); img.src = "https://terradocs.matomo.cloud//piwik.php?idsite=1&rec=1&url=https://docs.terra.money" + location.pathname; img.style = "border:0"; img.alt = "tracker"; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(img,s);
Skip to main content

Register a validator

This is a detailed step-by-step guide for setting up a Terra validator. Please be aware that while it is easy to set up a rudimentary validating node, running a production-quality validator node with a robust architecture and security features requires an extensive setup.

For more information on setting up a validator, see additional resources.

Prerequisites

1. Retrieve your PubKey

The Consensus PubKey of your node is required to create a new validator. Run:


_1
--pubkey=$(terrad tendermint show-validator)

2. Create a new validator

💡Get coins

In order for Terrad to recognize a wallet address it must contain tokens. For the testnet, use the faucet to send Luna to your wallet. If you are on mainnet, send funds from an existing wallet. 1-3 luna are sufficient for most setup processes.

To create the validator and initialize it with a self-delegation, run the following command. key-name is the name of the Application Operator Key that is used to sign transactions.


_10
terrad tx staking create-validator \
_10
--amount=5000000uluna \
_10
--pubkey=$(<your-consensus-PubKey>) \
_10
--moniker="<your-moniker>" \
_10
--chain-id=<chain_id> \
_10
--from=<key-name> \
_10
--commission-rate="0.10" \
_10
--commission-max-rate="0.20" \
_10
--commission-max-change-rate="0.01" \
_10
--min-self-delegation="1"

☢️caution

When you specify commission parameters, the commission-max-change-rate is measured as a percentage-point change of the commission-rate. For example, a change from 1% to 2% is a 100% rate increase, but the commission-max-change-rate is measured as 1%.

3. Confirm your validator is active

If running the following command returns something, your validator is active:


_1
terrad query tendermint-validator-set | grep "$(terrad tendermint show-validator)"

You are looking for the bech32 encoded address in the ~/.terra/config/priv_validator.json file.

📝note

Only the top 130 validators in voting power are included in the active validator set.

4. Secure your keys and have a backup plan

Protecting and having a contingency backup plan for your keys will help mitigate catastrophic hardware or software failures of the node. It is a good practice to test your backup plan on a testnet node in case of node failure.