Rewards Formula
Learn about the rewards formula for the Avalanche Primary Network validator
Primary Network Validator Rewards
Consider a Primary Network validator which stakes a amount of AVAX for seconds.
The potential reward is calculated at the beginning of the staking period. At the beginning of the staking period there is a amount of AVAX in the network. The maximum amount of AVAX is . At the end of its staking period, a responsive Primary Network validator receives a reward.
where,
Note that is the staker's entire staking period, not just the staker's uptime, that is the aggregated time during which the staker has been responsive. The uptime comes into play only to decide whether a staker should be rewarded; to calculate the actual reward only the staking period duration is taken into account.
is the rate at which the Primary Network validator is rewarded based on selection.
and bound :
The larger is, the closer is to . The smaller is, the closer is to .
A staker achieves the maximum reward for its stake if = . The reward is:
Note that this formula is the same as the reward formula at the top of this section because = .
For reference, you can find all the Primary network parameters in the section below.
Delegators Weight Checks
There are bounds set of the maximum amount of delegators' stake that a validator can receive.
The maximum weight a validator can have is:
where and are the Primary Network Parameters described above.
A delegator won't be added to a validator if the combination of their weights and all other validator's delegators' weight is larger than . Note that this must be true at any point in time.
Note that setting to 1 disables delegation since the .
Notes on Percentages
PercentDenominator = 1_000_000 is the denominator used to calculate percentages.
It allows you to specify percentages up to 4 digital positions. To denominate your percentage in PercentDenominator just multiply it by 10_000. For example:
100%corresponds to100 * 10_000 = 1_000_0001%corresponds to1* 10_000 = 10_0000.02%corresponds to0.002 * 10_000 = 2000.0007%corresponds to0.0007 * 10_000 = 7
Primary Network Parameters on Mainnet
For reference we list below the Primary Network parameters on Mainnet:
AssetID = AvaxInitialSupply = 240_000_000 AvaxMaximumSupply = 720_000_000 Avax.MinConsumptionRate = 0.10 * reward.PercentDenominator.MaxConsumptionRate = 0.12 * reward.PercentDenominator.Minting Period = 365 * 24 * time.Hour.MinValidatorStake = 2_000 Avax.MaxValidatorStake = 3_000_000 Avax.MinStakeDuration = 2 * 7 * 24 * time.Hour.MaxStakeDuration = 365 * 24 * time.Hour.MinDelegationFee = 20000, that is2%.MinDelegatorStake = 25 Avax.MaxValidatorWeightFactor = 5. This is a platformVM parameter rather than a genesis one, so it's shared across networks.UptimeRequirement = 0.8, that is80%.
Three of these parameters change with the Helicon upgrade
The Helicon upgrade is active on Fuji as of July 28, 2026 at 15:00 UTC and is not yet scheduled on Mainnet. The values above are the Mainnet values in effect today. Three of them change once Helicon activates on a network:
MinConsumptionRatedrops from0.10to0.075(ACP-285). The change is not applied at once: it ramps linearly over the 90 days following activation, and the rate used for a staking period is the one in effect at that period's start time. A stake that starts 45 days after activation therefore uses roughly0.0875.- The effective uptime requirement rises from
80%to90%(ACP-267). This one is not a genesis parameter:UptimeRequirementabove stays0.8, and the90%threshold is applied when deciding reward eligibility for any Primary Network validation whose start time is at or after Helicon activation. Validations that started earlier are still judged against80%, and Avalanche L1 validators keep the requirement set by their own subnet transformation. MinStakeDurationdrops to48 hoursfor Primary Network validators (ACP-273). Delegators are unaffected and keep the2 weekminimum. On Fuji the validator minimum is now12 hours.
All three are already in effect on Fuji, so reward figures computed from the Mainnet values above will not match Fuji results.
Interactive Graph
The graph below demonstrates the reward as a function of the length of time staked. The x-axis depicts as a percentage while the y-axis depicts as a percentage of , the amount of tokens left to be emitted.
Graph variables correspond to those defined above:
h(high) =l(low) =s=
Is this guide helpful?