Validator Reward Playbook

ACCOUNT_ADDR="pokt18808wvw0h4t450t06uvauny8lvscsxjfyua7vh"

# Get latest block height from mainnet RPC
latest_height=$(curl -s https://shannon-grove-rpc.mainnet.poktroll.com/status | jq -r '.result.sync_info.latest_block_height')

# Check balance every 100 blocks for the last 1000 blocks
for ((h=latest_height-1000; h<latest_height; h+=100)); do
  echo -n "Height $h: "
  curl -s -H "x-cosmos-block-height: $h" \
    https://shannon-grove-api.mainnet.poktroll.com/cosmos/bank/v1beta1/balances/$ACCOUNT_ADDR \
    | jq -r '.balances[]? | select(.denom=="upokt") | .amount // "0"'
done

C. Validator Rewards

Check Community Pool Commission Accumulated

View accumulated tx commissions that haven't been withdrawn across all validators:

pocketd query distribution community-pool --network=main -o json | jq

View Validator Commission Accumulated

export VALIDATOR_ADDRESS="poktvaloper18808wvw0h4t450t06uvauny8lvscsxjfx0wu80"

# View all un-withdrawn rewards for a particular validator:
echo -e "\n === View all un-withdrawn rewards for a particular validator ==="
pocketd query distribution validator-outstanding-rewards $VALIDATOR_ADDRESS --network=main -o json | jq

# View accumulated tx commissions that haven't been withdrawn across all validators:
echo -e "\n === View accumulated tx commissions that haven't been withdrawn across all validators ==="
pocketd query distribution commission $VALIDATOR_ADDRESS --network=main -o json | jq

# View all distribution-related information for your validator:
echo -e "\n === View all distribution-related information for your validator ==="
pocketd query distribution validator-distribution-info $VALIDATOR_ADDRESS --network=main -o json | jq

Withdraw Validator Commission Rewards

Withdraw rewards for your validator and its delegations:

pocketd tx distribution withdraw-all-rewards \
  --from=pokt18808wvw0h4t450t06uvauny8lvscsxjfyua7vh \
  --network=main --gas=auto --fees=10upokt

D. [WIP] Delegator Rewards

Check Delegator Rewards

View rewards from delegations (including self-delegation):

pocketd query distribution rewards <delegator-address> --network=main -o json | jq

Withdraw Delegator Rewards

pocketd tx distribution withdraw-all-rewards --from=<delegator-address> \
  --network=main --gas=auto --fees=10upokt

E. [WIP] Tokenomics Relay Distribution Parameters

WIP for viewing tokenomics relay distribution parameters

Verify the current distribution parameters for relay rewards:

pocketd query tokenomics params --network=main -o json | jq

Key parameters to check:

  • mint_allocation_percentages.proposer: Proposer's share of new mints

  • mint_equals_burn_claim_distribution.proposer: Proposer's share when mint equals burn

B. Monitoring Validator Balance Over Time

1

Monitor balance changes over time

Use the script above to sample the validator account balance (upokt) across past blocks. The script:

  • Fetches latest block height from the mainnet RPC.

  • Iterates from latest_height-1000 to latest_height in steps of 100 blocks.

  • Requests the bank balances for the validator account at each historic block height and prints the upokt amount (or 0).

Place your validator account in the ACCOUNT_ADDR variable before running.

Was this helpful?