You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* feat: dAppStaking revamp
* Update inflation distribution percentages
* feat: dAppStaking revamp
* Update inflation distribution percentages
* Update: Add the FAQ folder with content
* Replace the H2 for H3 into the questions
---------
Co-authored-by: Carlos Rodríguez <juminstock@gmail.com>
Co-authored-by: Gaius_sama <85451570+Gunit2481@users.noreply.github.com>
Copy file name to clipboardExpand all lines: docs/build/dapp-staking/technical_solution.md
+30-5Lines changed: 30 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -122,8 +122,16 @@ The relevant storage map is `DAppTiers` which maps `era` to information about dA
122
122
123
123
After reading `DappTiers` storage map for a particular `era`, `dapp_tiers_rewards.dapps`_tree map_ must be checked whether it contains the `dapp_id` of the smart contract for which we want to claim rewards. Please note that `dapp_id` is `u16` dApp identifier which can be read from the `DAppInfo` struct in `IntegratedDAppsStorage`.
124
124
125
-
In case entry for the `dapp_id` exists, it will also contain the `tier_id` value which can be used to read the earned dApp reward from `dapp_tier_info.rewards`.
126
-
It’s enough to use `tier_id` it as index in the `rewards` vector to find the reward associated with that tier.
125
+
In case entry for the `dapp_id` exists, it will also contain the `tier_id` value (and rank within tier) which can be used to read the earned dApp reward components from `dapp_tier_info`.
126
+
127
+
With deterministic tier+rank rewards, the claim value is derived from two per-tier components:
Once reward has been claimed, the associated entry will be removed `dapp_tiers_rewards.dapps`_tree map_.
129
137
@@ -144,6 +152,12 @@ Once we know the oldest period, we can use `PeriodEnd` storage map to find when
144
152
145
153
### Bonus Rewards
146
154
155
+
:::warning Attention
156
+
157
+
Tokenomics 3.0 has **no user-facing bonus rewards**, so indexers and UIs should not surface a "bonus pool", "bonus APR", or "vote-to-earn-bonus" guidance as a user benefit.
158
+
159
+
:::
160
+
147
161
When checking whether staker is eligible for any bonus rewards, it is necessary to check all of the `StakerInfo` double storage map entries related to that staker.
148
162
The first key of the double map is `staker account` so it can easily be iterated via prefix iteration.
149
163
@@ -179,11 +193,22 @@ However, it is possible that in that very same block, someone calls `claim_dapp_
179
193
180
194
Reward pools per era can be read from the `Inflation` pallet, by reading the `ActiveInflationConfig` storage value.
181
195
182
-
Each tier gets a portion of the reward pool (denoted as `reward_portion` in the configuration). These portions are further partitioned per slots.
196
+
Each tier gets a portion of the dApp reward pool (denoted as `reward_portion` in the configuration). Tokenomics 3.0 then computes deterministic tier reward components using `tier_rank_multipliers` (bips, `10_000 = 100%`) and a weight-based normalization cap:
This replaces any "empty slots fund rank rewards" interpretation: empty slots only affect `filled_slots` / normalization, and under-filled tiers can leave part of the tier allocation unminted.
Copy file name to clipboardExpand all lines: docs/learn/dapp-staking/dapp-staking-faq.md
+8-6Lines changed: 8 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -88,9 +88,11 @@ Once unlocking is complete, you can then withdraw these tokens to your free bala
88
88
89
89
### Q: When will I start getting rewards after I stake?
90
90
91
-
If you stake during the dedicated **Voting Subperiod**, you qualify for bonus rewards as long as you maintain or increase your staked amount during the following Build&Earn Subperiod. Bonus rewards can be claimed after the period ends.
91
+
No rewards are generated during the **Voting** subperiod.
92
92
93
-
If you stake during any era of **Build&Earn Subperiod**, the staked amount is only eligible for rewards from the next era onward.
93
+
If you stake during the **Voting** subperiod, your stake is set up for the upcoming **Build&Earn** subperiod. Staker rewards are earned only for **Build&Earn** eras in which your stake was active for the entire era.
94
+
95
+
If you stake (or change your stake) during any era of **Build&Earn** subperiod, the updated amount is eligible for rewards from the **next era** onward.
94
96
95
97
### Q: When can I claim my rewards?
96
98
@@ -102,15 +104,15 @@ Generally, it’s recommended to claim your rewards once a week.
102
104
103
105
### Q: What are bonus rewards?
104
106
105
-
If a staker staked on a dApp during the `Voting`Subperiod and **keeps the same staked amount or higher** on a dApp through the whole `Build&Earn` Subperiod, they are eligible for the bonus rewards.
107
+
Tokenomics 3.0 has **no user-facing bonus rewards**. `Voting` and `Build&Earn` remain protocol phases, but integrators should not promote a separate "bonus pool" or "bonus APR" as a user benefit.
106
108
107
-
Bonus eligibility can be safely transferred between projects, preserving it for a limited number of moves, as defined by `MaxBonusSafeMovesPerPeriod`. Exceeding this limit results in bonus forfeiture for the affected stake.
109
+
If you see bonus-related fields in older tooling or runtimes, treat them as **legacy/internal compatibility** only.
108
110
109
111
### Q: Can my rewards expire?
110
112
111
113
Unclaimed rewards will eventually expire, so it's important to claim them in time or they'll miss out on earnings.
112
114
113
-
We encourage stakers’ engagement. This way, failing to actively revisit dApp staking at the start of each new period to select dApps for staking means missing out on bonus rewards and earnings.
115
+
We encourage stakers' engagement. If you don't revisit dApp staking at the start of each new period to select dApps for staking, you won't be earning rewards for expired **Build&Earn** eras.
114
116
115
117
### Q: What happens to my rewards if the project I'm staking on is unregistered from dApp Staking?
116
118
@@ -182,7 +184,7 @@ The threshold for tier 4 is fixed, while it is dynamic for the other tiers.
182
184
183
185
Rewards for dApps are **dynamic** (tier-dependent), meaning they change from one tier to another.
184
186
185
-
The rewards of a tierare split evenly among all its slots, ensuring equal rewards for each dApp within a tier, regardless of whether all slots are filled.
187
+
Within a tier, dApp rewards are **deterministic** and can also depend on the dApp's **rank (0..10)** (see the technical overview for the `tier_rank_multipliers` model). If a tier is under-filled, part of that tier allocation can remain **unminted** (lazy minting).
186
188
187
189
### Q: What happens to my rewards if my project is unregistered from dApp Staking?
0 commit comments