What is MDS?Product Overview
InterchainTokenServiceInterchainTokenFactoryTokenManagerAxelarGateway AxelarGasServiceAxelarExecutable
Static Configs Community Pool ProposalsOnboard Your IBC chainBug Bounty
Crosschain Message FlowaxlUSDCSecurity OverviewInterchain Transaction DurationEVM Contract Governance

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.

Create reward pool

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

Check the funds in a reward pool

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

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.

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

Add funds to a reward pool

Use add_rewards() add funds to a pool:

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.

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 this page