Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/axelarnetwork/axelar-core/llms.txt

Use this file to discover all available pages before exploring further.

The Reward module allocates a portion of Axelar’s block inflation to validators who perform cross-chain work. Validators earn rewards in two categories: external chain voting rewards for participating in EVM event confirmation polls, and key management rewards for participating in multisig keygen and signing sessions. These incentives are critical for ensuring that validators remain engaged with the operational duties that secure Axelar’s cross-chain infrastructure.

External Chain Voting Rewards

Validators earn inflation rewards proportional to their correct participation in EVM event voting polls across maintained chains.

Key Management Rewards

Additional relative inflation is distributed to validators that participate in multisig keygen and signing sessions.

Reward Pools

Rewards accumulate in named pools per chain or session type and are distributed at epoch boundaries.

Fee Refunds

The module can refund transaction fees for specific privileged messages (like vald submissions) to reduce operational costs.

Key Concepts

Reward Pool

A Pool holds accumulated rewards for a named activity (e.g., an external chain name or a key management session). Each pool stores per-validator reward amounts:
func NewPool(name string) Pool {
    return Pool{
        Name:    utils.NormalizeString(name),
        Rewards: []Pool_Reward{},
    }
}
Pools are validated to ensure no duplicate validators appear and all reward coins are non-empty.

External Chain Voting Inflation

The ExternalChainVotingInflationRate parameter controls how much of the block inflation is directed to validators for correct external chain event voting. This rate is applied relative to the total AXL staking inflation and split among all active chain maintainers weighted by their voting participation.

Key Management Relative Inflation

The KeyMgmtRelativeInflationRate parameter specifies an additional fractional reward for validators participating in keygen and signing sessions. This is expressed as a fraction of the external chain voting inflation, making it a secondary incentive layered on top of the primary voting rewards.

Refund Mechanism

Certain operational messages (such as those submitted by vald) can be designated for fee refunds. When a Refund is processed, the module pays back the transaction fees to the original sender:
func (m Refund) ValidateBasic() error {
    if err := sdk.VerifyAddressFormat(m.Payer); err != nil {
        return errorsmod.Wrap(sdkerrors.ErrInvalidAddress, errorsmod.Wrap(err, "payer").Error())
    }
    if err := m.Fees.Validate(); err != nil {
        return err
    }
    ...
}

Reward Distribution Flow

1

Chain Maintainer Registered

When a validator registers as a chain maintainer (via the Nexus module), they become eligible to earn external chain voting rewards for that chain.
2

Poll Participation Tracked

As validators cast votes on EVM event polls, the Reward module records participation. Correct votes and on-time votes earn full rewards; late votes may earn partial rewards.
3

Keygen/Signing Participation

Validators that submit public keys during keygen sessions or signatures during signing sessions accumulate key management rewards.
4

Epoch Distribution

At each epoch boundary, accumulated pool rewards are distributed to eligible validators proportional to their participation, drawn from the block inflation allocation.
The bug where external chain voting inflation rewards were not being distributed to chain maintainers was fixed in v1.3.5. Ensure you are running v1.3.5 or later to receive correct reward distributions.

Module Parameters

ExternalChainVotingInflationRate
math.LegacyDec
required
Fraction of block inflation allocated to validators for participating in external chain event voting. Must be in [0, 1]. Default: 0 (disabled until set by governance).
KeyMgmtRelativeInflationRate
math.LegacyDec
required
Additional reward rate for key management participation expressed as a fraction relative to the external chain voting inflation rate. Must be in [0, 1]. Default: 0.
Both parameters default to zero in the genesis state. Governance must submit a parameter change proposal to enable reward distribution. This is intentional — it allows the community to calibrate incentives before activating them.

Querying Inflation Rates

# Query the current network-wide inflation rate
axelard query reward inflation-rate

# Query the effective inflation rate for a specific validator
axelard query reward inflation-rate \
  --validator axelarvaloper1...

# Show reward module parameters
axelard query reward params

CLI Reference

Query Commands

# Get the overall network inflation rate
axelard query reward inflation-rate

# Get the inflation rate for a specific validator
axelard query reward inflation-rate --validator axelarvaloper1...

# Show reward module parameters
axelard query reward params

Transaction Commands

# Refund fees for a specific message (governance/operational use)
axelard tx reward refund-msg \
  --from <gov-key> \
  --chain-id axelar-dojo-1

# Update reward module parameters via governance proposal
axelard tx reward update-params \
  --from <gov-key> \
  --chain-id axelar-dojo-1
Use axelard query reward inflation-rate --validator [address] to audit how much a specific validator is earning from cross-chain duties versus standard staking inflation. This helps diagnose participation issues when rewards are unexpectedly low.

Build docs developers (and LLMs) love