This section covers staking model solutions and best practices adopted by the Astra network. Basically, the user can stake ASTRADAO in the Astra DAO pool.
Stakers willing to withdraw tokens from the staking pool must go through a 1-day cool-down period. Users can unstake and withdraw after the countdown time elapses. Once assets are withdrawn, the cooldown button will be reset, and users will need to activate the cool-down period again for any future withdrawals.
The staking score will be used to promote the staker's loyalty over an extended period. The staking score will be calculated as an average of ASTRADAO token holdings over the last 60 days.
The idea behind staking score is to recognize the value of a long-term holding, even if held assets are small.
The example below illustrates this:
● A holder who stakes 1,000 tokens for the last 60 days has an average staking score of 1,000.
● A holder who stakes 60,000 tokens for 1 day also has an average staking score of 1,000.
Both holders have the same position and would be treated equally in airdrops and reward distributions. Staking score will be used as a reference point for identifying wallets eligible for airdrops, rewards, and voting.
Instead of transferring to a standard staking vault, ASTRADAO tokens can be locked (meaning that the staker forfeits the right to unstake them for a fixed period). Lockups vaults are available for 6, 9, and 12 months.
The reward multiplier is used for calculating the user share percentage in reward distribution for iToken and LP tokens. The reward multiplier is calculated with two parameters: the staking score multiplier and the lockup vault multiplier. Depending on users' staking scores and whether they've decided to move ASTRADAO tokens to one of the lockups vaults, users will get higher rewards and voting power.
See below for the multipliers for staking score and lockup vault.
First, it finds the multiplier for staking score and lockup multiplier for each user and then subtracts 1 from it.
SSM = staking score multiplier
LVM = lockup value multiplier
RM(Reward Multiplier) = SSM + LVM - 1
Liquidity mining rewards will be distributed to ETH/ASTRA liquidity providers on Uniswap or SushiSwap pools. Users will get ETH_ASTRA_LP tokens (LP tokens) as a percentage share of their amount in the pool.
The logic of liquidity mining reward distribution is the same as iToken staking rewards. The DAO can decide to reward LP token holders of specific liquidity pools, or all LP token holders.
There is a block distribution functionality. We set the Astra-per-block value while initializing the contract with start and end blocks for the reward. In the pool configuration, it maintains the last block reward. So the calculation is done by getting the difference between the pool's last reward block and the current block, then multiplying it by the block reward.
LRB = last block reward
CB = current block
APB = Astra per block
DB(Difference) = CB - LRB
Reward amount = APB * DB
It calculates the user base multiplier by multiplying the staked amount, reward multiplier, and pool base multiplier, like individual and flat distribution, and then calculates the share percentage.
AM = user staked amount
RM = reward multiplier
UBM(user base multiplier) = AM * RM
PBM(pool base multiplier) = UBM1 + UBM2
SP(Share percentage for user) = UBM * 100 / PBM
Rewarded amount = SP * Reward amount