Inflation
Astar has a soft-capped 'yearly' inflation and uncapped max supply. Inflation is distributed amongst actors in the network, in varying proportions. Actors include:
- stakers
- dApp owners
- collators
- treasury
Basic Time Units
Cycles
Cycle can be considered as a 'year' in the Astar Network. When a new cycle starts, new inflation configuration is calculated according to the total issuance at that point in time. E.g. if 'yearly' inflation is set to be 7%, and total issuance is 1,000,000 ASTR, then the soft-capped max inflation for that cycle will be 70,000 ASTR.
Cycle length is configurable, but in practice it will resemble a 'year' off-chain.
Periods
Each cycle consists of one or more periods.
Periods are a core time unit in the dApp Staking protocol. Each period consists of a Voting
and Build&Earn
subperiods.
During the Voting
subperiod, neither stakers nor dApp owners can earn any rewards, only collators and treasury continue earning.
During the the Build&Earn
subperiod, stakers earn staking rewards per era and have the opportunity to earn bonus reward at the end of a period.
dApp owners also earn rewards, based on how well their dApp is performing in dApp staking, at the end of each era.
Eras
Each period is divided up into multiple eras. Era is the core time unit in dApp staking, and its length is measured in the number of blocks.
BuildAndEarn
subperiod consists of one or more standard eras. Each era has a fixed length.
Voting
subperiod always consists of exactly one era and this voting era is unique as its length (in blocks) can be longer than a standard era length (but always a multiple of standard era length).
Example
- Block is produced every 12 seconds
- Era length is 7200 blocks which equals 24 hours (1 day) (This is standard era length)
Voting
subperiod length is 10 eras (This is the single voting era which lasts 10 x 7700 blocks)Build&Earn
subperiod length is 81 eras- Cycle length is 4 periods
With such configuration, we'd end up with a cycle lasting 364 days (roughly a year), and each period taking around 3 months to complete.
Recalculation
When a new cycle begins, soft-inflation cap is recalculated, and according to the calculated value, rewards for all network actors are adjusted.
The reason why it's a soft-cap, instead of a hard-cap is how staker & dApp rewards are distributed. Rewards are only minted when they are claimed, and it is possible that at the time of reward recalculation, some rewards remain unclaimed. As a result, theoretically, it's possible for the cycle inflation to exceed the soft-cap even though in practice it will be highly unlikely due to lazy minting & fee burn mechanisms.
Inflation Distribution
Based on the calculated soft-cap, rewards for all network participants are adjusted.
Collators
Collators get a fixed amount of the cycle's soft-capped inflation. This amount is equally divided by the number of blocks in the cycle.
Treasury
Similar to the collators, treasury gets a fixed amount of the cycle's soft-capped inflation distributed in equal amounts throughout all the blocks in the cycle.
dApps
dApp reward are assigned at the end of each era during Build&Earn
subperiod.
This means that the total cycle's dApp reward amount has to be equally divided by the total number of Build&Earn
eras in a cycle.
The dApp staking protocol will calculate how much each staked dApp should get.
Stakers
There are two components to the staker rewards - regular staking rewards & the bonus reward for loyal stakers.
Regular Staker Rewards
Regular staker rewards are awarded for staking native currency, ASTR, on a dApp. These rewards have two components - the base reward and the adjustable reward.
Base reward is the amount assigned to the reward pool at the end of each era regardless of how much has been staked in total.
The adjustable part is the dynamic part, and depends on the total value staked and the target stake value. This amount linearly increases as the total value staked increases, and then saturates once the amount is reached or exceeded. With this component, staker rewards are not a zero-sum game.
The adjustable part of the reward is calculated once an era ends, using the total value staked at that point in time.
Using the adjustable_factor, adjustable portion of the staker reward is:
When the adjustable factor is less than 1, it means the remainder is never minted, reducing the overall inflation.
With the above formulas, we can finally express how much staker Alice earns in era n:
Bonus Rewards
In case a staker stakes during the Voting
subperiod, and doesn't reduce their stake during the Build&Earn
subperiod below what
was staked at the end of the Voting
subperiod, it will make them eligible for the bonus reward.
Bonus reward pool is assigned per period, and can be expressed as:
The bonus reward for a staker Alice can then be expressed as:
Lazy Minting
Both staker and dApp rewards are minted in a lazy fashion - when they are needed. Only collator & treasury rewards are minted per block.
With the adjustable staker reward and the dApp staking tier system, the inflation in practice will be much lower than the calculated soft-cap. Maximum adjustable award amounts is possible only if the ideal staking rate is reached or exceeded. For the dApp rewards, it's unlikely that all of the tiers will be filled with dApps - it might be that the tier capacity is larger than the demand, or that simply some dApps don't attract enough support to enter a tier. These rewards will never be even minted thus lowering the effective inflation rate.
Rewards don't persist forever, and must be claimed before they expire. Although this is expected to be very lenient, it's still possible to happen.
None of the aforementioned mechanism are burn mechanisms, instead they just delay the minting operation until it's needed. The major burn mechanism is part of the fee system, where a significant portion of fees get burned. Only due to this, it's practically impossible for the soft-capped max inflation to be reached when considering rewards assigned & issued during a single cycle.
Parameters
Parameter | Astar | Shiden | Shibuya |
---|---|---|---|
Periods Per Cycle | 3 | 6 | 2 |
Eras Per Voting Subperiod | 11 | 6 | 8 |
Eras Per Build&Earn Subperiod | 111 | 55 | 20 |
Blocks Per Era | 7200 (~24 hours) | 7200 (~24 hours) | 1800 (~6 hours) |
Cycle Inflation Rate | 7% | 7% | 1% |
Treasury Part | 5% | 5% | 5% |
Collators Part | 3.2% | 3.2% | 3% |
dApps Part | 13% | 13% | 20% |
Base Staker Part | 25% | 10% | 25% |
Adjustable Staker Part | 40% | 58.8% | 35% |
Bonus Part | 13.8% | 10% | 12% |
Ideal Staking Rate | 50% | 50% | 20% |