Add rewards

💡

To understand the contribution tracking and distribution process for verifiers, see Verifier Rewards.

Each chain has two reward pools that must be funded independently before it can be fully integrated. There is one rewards pool to compensate verifiers for signing and another pool to compensate them for voting.

Reward pools are not tied to an epoch. If earned rewards are not claimed, they will continue to grow. If rewards are being earned but the pool has not been sufficiently funded, these rewards can be funded and claimed at a later date. Integrators should ensure that pools always have enough funds so that verifiers can get their rewards quickly.

The creation of a new reward pool is done via a chain integration governance proposal.

Use rewards_pool() to check the funds in a pool:

Terminal window
export REWARDS_CONTRACT_ADDRESS="axelar1vaj9sfzc3z0gpel90wu4ljutncutv0wuhvvwfsh30rqxq422z89qnd989l"
export CHAIN_NAME="fantom"
export VOTING_VERIFIER_OR_MULTISIG_CONTRACT_ADDRESS="axelar1elaymnd2epmfr498h2x9p2nezc4eklv95uv92u9csfs8wl75w7yqdc0h67" || "0x7eeE33A59Db27d762AA1Fa31b26efeE0dABa1132"
export RPC="http://devnet-amplifier.axelar.dev:26657"

💡

You can get the addresses of the rewards, voting verifier, and multisig contracts through testnet.json or devnet-amplifier.json.

Terminal window
axelard q wasm contract-state smart $REWARDS_CONTRACT_ADDRESS \
'{
"rewards_pool":
{
"pool_id":
{
"chain_name":"'"$CHAIN_NAME"'",
"contract":"'"$VOTING_VERIFIER_OR_MULTISIG_CONTRACT_ADDRESS"'"
}
}
}' \
--node $RPC

Use add_rewards() add funds to a pool:

Terminal window
export REWARDS_CONTRACT_ADDRESS="axelar1vaj9sfzc3z0gpel90wu4ljutncutv0wuhvvwfsh30rqxq422z89qnd989l"
export CHAIN_NAME="avalanche"
export VOTING_VERIFIER_OR_MULTISIG_CONTRACT_ADDRESS="axelar1elaymnd2epmfr498h2x9p2nezc4eklv95uv92u9csfs8wl75w7yqdc0h67"
|| "0x7eeE33A59Db27d762AA1Fa31b26efeE0dABa1132"
export RPC="http://devnet-amplifier.axelar.dev:26657"
export AMOUNT="1000uamplifier"
# choose the amount to fund (1000000 = 1 AXL) export
CHAIN_ID="devnet-amplifier"

💡

You can get the addresses of the rewards, voting verifier, and multisig contracts through devnet-amplifier.json.

Terminal window
axelard tx wasm execute $REWARDS_CONTRACT_ADDRESS \
'{
"add_rewards":
{
"pool_id":
{
"chain_name":"'"$CHAIN_NAME"'",
"contract":"'"$VOTING_VERIFIER_OR_MULTISIG_CONTRACT_ADDRESS"'"
}
}
}' \
--amount $AMOUNT \
--keyring-backend test \
--chain-id $CHAIN_ID \
--from wallet \
--gas auto --gas-adjustment 1.5 --gas-prices 0.007uamplifier \
--node $RPC

Anyone can add funds to a rewards pool at any time.

Edit on GitHub