dApp staking v3 - tier algorithm adjustment proosal

Here’s a brief description on above implementation. With current implementation all dApps reaching a certain staking threshold will acquire a slot in a tier. No matter the amount staked, they’ll receive equal reward (only the slot reward). The only way to receive more reward is to win a new slot in upper tier. This new feature is aiming to improve reward distribution but with some limitation. It respects the tier system and reward cap per tier. This ranked tier system will rank dApps based on staking amount and dApps with higher rank will receive more reward (up to 2x slot reward). Closer you go to next tier threshold the higher the rank you receive. When you just enter tier you get rank 0 and as you go closer to next threshold you’ll get higher rank. The delta threshold between tier is divided into 10 pieces and reaching one of them will give you one rank. So if you are half way to next tier you will receive rank 5 which means your reward will be 150% the slot reward. Although this 50% extra reward is not guarantee all the time because this extra reward is taken from free slots. In edge cases when all the slots are acquired it will not be extra reward distributed. This approach ensures that you don’t exceeds the tier reward limit.
Here’s an example:
Let’s say Tier 2 reward portion is 50K ASTR and slot capacity is 5 then reward per slot will be 10K ASTR, therefor rank reward will be rank_reward = max(slot_reward, tier_remaining_reward) / 10 = 1K . If you classify for rank 0 then you get 10K (slot reward), if you classify rank 3 you get 10K + 3 * rank_reward = 13K . If tier has 5 slots with 3 occupied then reward of 2 slots will be used for ranking. e.i. slots occupied[rank_0, rank_3, rank_10] then calculated reward will be [10k, 13K, 20K] . In cases when there’s not enough remaining reward to satisfy full reward per rank then it will be adjust based on remaining reward, so rank reward will be less than 1K.

7 Likes