Becoming a Testnet Validator

How to become a validator on Secret Network

In order to become a validator, you node must be fully synced with the network. You can check this by doing:

secretd status | jq .SyncInfo.catching_up

When the value of catching_up is false, your node is fully sync'd with the network. You can speed up syncing time by State Syncing to the current block.

  "sync_info": {
    "latest_block_hash": "7BF95EED4EB50073F28CF833119FDB8C7DFE0562F611DF194CF4123A9C1F4640",
    "latest_app_hash": "7C0C89EC4E903BAC730D9B3BB369D870371C6B7EAD0CCB5080B5F9D3782E3559",
    "latest_block_height": "668538",
    "latest_block_time": "2020-10-31T17:50:56.800119764Z",
    "earliest_block_hash": "E7CAD87A4FDC47DFDE3D4E7C24D80D4C95517E8A6526E2D4BB4D6BC095404113",
    "earliest_app_hash": "",
    "earliest_block_height": "1",
    "earliest_block_time": "2021-09-15T14:02:31Z",
    "catching_up": false

2. Confirm Wallet is Funded:

This is the secret wallet which you used **** to create your full node, and will use to delegate your funds to you own validator. You must delegate at least 1 SCRT (1000000uscrt) from this wallet to your validator.

secretd q bank balances $(secretd keys show -a <key-alias>)

If you get the following message, it means that you have no tokens, or your node is not yet synced:

ERROR: unknown address: account secret1xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx does not exist

Copy/paste the address to get some test-SCRT from the faucet. Continue when you have confirmed your account has some test-SCRT in it.

3. Create Validator

(remember 1 SCRT = 1,000,000 uSCRT, and so the command below stakes 100 SCRT).

secretd tx staking create-validator \
  --amount=100000000uscrt \
  --pubkey=$(secretd tendermint show-validator) \
  --identity={KEYBASE_IDENTITY} \
  --details="To infinity and beyond!" \
  --commission-rate="0.10" \
  --commission-max-rate="0.20" \
  --commission-max-change-rate="0.01" \
  --min-self-delegation="1" \
  --moniker=<MONIKER> \

4. Confirm Validator is Created

You should see your moniker listed.

secretd q staking validators | grep moniker

Important CLI Commands for Validators

Staking more tokens

(remember 1 SCRT = 1,000,000 uSCRT)

In order to stake more tokens beyond those in the initial transaction, run:

secretd tx staking delegate $(secretcli keys show <key-alias> --bech=val -a) <amount>uscrt --from <key-alias>

Editing your Validator

secretd tx staking edit-validator \
  --moniker "<new-moniker>" \
  --website "" \
  --identity 6A0D65E29A4CBC8E \
  --details "To infinity and beyond!" \
  --chain-id <chain_id> \
  --from <key_name> \
  --commission-rate "0.10"

Seeing your rewards from being a validator

secretd q distribution rewards $(secretcli keys show -a <key-alias>)

Seeing your commissions from your delegators

secretd q distribution commission $(secretcli keys show -a <key-alias> --bech=val)

Withdrawing rewards

secretd tx distribution withdraw-rewards $(secretcli keys show --bech=val -a <key-alias>) --from <key-alias>

Withdrawing rewards+commissions

secretd tx distribution withdraw-rewards $(secretcli keys show --bech=val -a <key-alias>) --from <key-alias> --commission

Removing your validator

Currently deleting a validator is not possible. If you redelegate or unbond your self-delegations then your validator will become offline and all your delegators will start to unbond.

Changing your validator's commission-rate

You are currently unable to modify the --commission-max-rate and --commission-max-change-rate" parameters.

Modifying the commision-rate can be done using this:

secretd tx staking edit-validator --commission-rate="0.05" --from <key-alias>



To unjail your jailed validator

secretd tx slashing unjail --from <key-alias>

Signing Info

To retrieve a validator's signing info:

secretd q slashing signing-info <validator-conspub-key>

Query Parameters

You can get the current slashing parameters via:

secretd q slashing params

Query Parameters

You can get the current slashing parameters via:

secretd q slashing params

Last updated