# dApp staking v3 - tier algorithm adjustment proosal

**URL:** <https://forum.astar.network/t/dapp-staking-v3-tier-algorithm-adjustment-proosal/6411>\
**Category:** General\
**Created:** [March 4, 2024, 6:40am UTC](https://forum.astar.network/t/dapp-staking-v3-tier-algorithm-adjustment-proosal/6411 "2024-03-04T06:40:30Z")\
**Posts on this page:** 1\
**Showing post:** 27

<div class="post-metadata">

**Author:** ![ermal](https://avatars.discourse-cdn.com/v4/letter/e/5f8ce5/32.png) [@ermal](https://forum.astar.network/u/ermal)\
**Post date:** [May 20, 2024, 5:11pm UTC](https://forum.astar.network/t/dapp-staking-v3-tier-algorithm-adjustment-proosal/6411/27 "2024-05-20T17:11:57Z")

</div>

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.

---

_[View the full topic](https://forum.astar.network/t/dapp-staking-v3-tier-algorithm-adjustment-proosal/6411)._
