Proposal: Tokenomics 3.0 & dApp Staking Changes

Following our previous post on the Tokenomics 3.0 & dApp Staking Revamp direction, we are sharing the technical implementation overview today. Please review the post and feel free to ask questions or request clarification under this post.

Overview

This post follows up on the Tokenomics 3.0 Update & dApp Staking Model Revision proposal with the technical details.

The first post outlined the strategic direction: lower inflation, simpler staking, and a focus on fewer high-impact projects. This post explains how we’re implementing those changes - specifically the new dApp Staking parameters, tier structure, staking thresholds, and expected rewards.


:magnifying_glass_tilted_left: What We’re Changing and Why

The Problem with the Current Model

Today, dApp Staking has ~72 registered projects across four tiers. This creates several issues:

  • Rewards are spread thin across too many projects
  • Inactive or low-impact projects can extract value without meaningful contribution
  • The tier system confuses users about reward disparities
  • The period structure (Voting + Build & Earn) requires restaking three times per year

The New Model at a Glance

The revised dApp Staking model addresses these issues:

  • 16 projects maximum instead of ~72
  • 2 active tiers instead of 4
  • Higher thresholds to ensure only impactful projects qualify
  • Yearly cycle instead of three periods per year
  • Simplified UI that hides tier complexity while maintaining backend logic

:hammer_and_wrench: Implementation Approach

Parameter-Based Change, Not a Rewrite

Rather than rebuilding dApp Staking from scratch, we’re achieving the new model by adjusting existing parameters in the current codebase. This approach:

  • Minimizes breaking changes and audit requirements
  • Keeps development work focused on Portal UI updates
  • Allows faster delivery through governance referendum
  • Reduces risk compared to a full system rewrite

What Changes Technically

Program size cap. The max_registered_apps parameter is reduced from 500 to 16, hard-capping the number of projects that can enter dApp Staking.

Fixed slot allocation. The slotNumberArgs parameter changes from [1000, 50] (dynamic calculation) to [0, 16] (fixed). This switches slot allocation from a dynamic formula to a fixed 16 slots.

Cycle alignment. dApp Staking moves to a yearly cycle aligned with the annual inflation recalculation. This is a constraint of how the inflation system works - it recalculates once per year, so dApp Staking positions reset at that point.

Tier configuration. We’re reconfiguring tier parameters to effectively use only two tiers (Tier 2 and Tier 3), with Tier 1 and Tier 4 set to zero allocation.

UI simplification. The Portal will display a cleaner list view without tier labels, while keeping detailed tier and reward information on individual dApp pages.


:building_construction: The New Tier Structure

Why Two Tiers Instead of Four

The current four-tier system creates confusion. Users see different reward levels across tiers but don’t always understand why. Projects compete for tier placement in ways that don’t always reflect actual contribution.

The new model simplifies this to two meaningful tiers:

  • Tier 2 for top-performing projects with strong community support
  • Tier 3 for qualifying projects that meet the baseline threshold

Tier 1 and Tier 4 remain in the code (for technical reasons) but are set to 0% allocation - they’re effectively inactive.

Slot Distribution

Tier Slots Purpose
Tier 1 0 Inactive
Tier 2 6 Top projects with highest staking support
Tier 3 10 Qualifying projects meeting baseline threshold
Tier 4 0 Inactive

Total: 16 slots

This distribution reflects the intent: a small group of leading projects (Tier 2) receiving the majority of rewards, with a broader base of qualifying projects (Tier 3) receiving meaningful but smaller allocations.

Reward Pool Distribution

Tier % of dApp Reward Pool
Tier 2 70%
Tier 3 30%

Tier 2 projects share 70% of the total dApp reward allocation. Tier 3 projects share the remaining 30%. This concentrates rewards on projects with the strongest community backing.

Within-Tier Reward Distribution

Rewards within each tier are distributed using a weight-based system controlled by a rank multiplier:

Tier Rank Multiplier What It Means
Tier 2 240% Rank 10 earns 2.4x what Rank 0 earns
Tier 3 467% Rank 10 earns 4.67x what Rank 0 earns

The multiplier determines the spread between top and bottom performers within each tier. A higher multiplier (like Tier 3’s 467%) creates more differentiation based on staking support.


:bar_chart: Staking Thresholds

How Thresholds Work

To qualify for a tier, a dApp must have at least the threshold amount of ASTR staked to it. Thresholds are defined as a percentage of total issuance, so they adjust automatically as issuance changes over time.

Current Threshold Values

Based on total issuance of 8,627,106,523 ASTR:

Tier Threshold (ASTR) % of Total Issuance What It Means
Tier 1 200M+ ~2.32% No dApp rewards (stakers still earn)
Tier 2 80M+ ~0.93% Projects need 80M-200M ASTR staked
Tier 3 30M+ ~0.35% Projects need 30M-80M ASTR staked
Below Tier 3 <30M <0.35% No dApp rewards (stakers still earn)

Why These Thresholds Are High

These thresholds are intentionally set high. The goal is to ensure that only projects the ecosystem genuinely wants to support can qualify. Reaching 30M ASTR (Tier 3 minimum) or 80M ASTR (Tier 2 minimum) requires significant community conviction.

This design filters for:

  • Core infrastructure projects
  • Key ecosystem applications
  • Projects with demonstrated community support

Projects that cannot attract meaningful staking support do not receive dApp rewards. This is the “quality over volume” principle in practice.

Additionally, reducing from 72 to 16 dApps will concentrate ASTR staking across a smaller number of applications. Given that 1B> ASTR is currently locked in dApp Staking, this would result in an average staking allocation of 62.5M ASTR per dApp, which is double the minimum threshold for Tier 3.


:money_bag: Expected Rewards Per Project

Tier 2 Projects (6 slots)

  • Threshold band: 80M - 200M ASTR
  • Expected reward range: ~$3,500 - $8,000 per month (at $0.01/ASTR)

The exact reward depends on rank within the tier. A project at the top of Tier 2 (close to 200M ASTR staked) earns toward the higher end. A project just above the 80M threshold earns toward the lower end.

Tier 3 Projects (10 slots)

  • Threshold band: 30M - 80M ASTR
  • Expected reward range: ~$500 - $2,500 per month (at $0.01/ASTR)

Same principle: more staked ASTR means higher rank and higher rewards within the tier.

Important Notes on Reward Estimates

  • These ranges assume $0.01/ASTR. Actual USD value varies with token price.
  • Rewards are paid in ASTR, not USD.

:gear: How Rank-Based Rewards Work

Understanding the reward calculation helps projects and stakers know what to expect.

Step 1: Tier Qualification

A dApp qualifies for a tier when its total staked amount crosses the tier threshold, provided that available slots exist within that tier:

  • 30M+ ASTR → Tier 3
  • 80M+ ASTR → Tier 2

Step 2: Rank Determination

Within each tier, projects are ranked based on their staked amount. The system uses 11 ranks per tier.

The ranking formula:

rank_divisor = (upper_threshold - lower_threshold) / 10 rank = (stake_amount - lower_threshold) / rank_divisor

For example, in Tier 3 (30M to 80M range):

  • A project with 30M ASTR staked = Rank 0 (lowest)
  • A project with 55M ASTR staked = Rank 5 (middle)
  • A project with 80M ASTR staked = Rank 10 (highest, about to enter Tier 2)

Step 3: Weight Calculation

Each dApp receives a weight based on its rank within the tier. The weight starts at 100% for Rank 0 and increases with each rank level.

The increment per rank depends on the tier’s multiplier:

  • Tier 2 (240% multiplier): Each rank adds 14% (so Rank 0 = 100%, Rank 5 = 170%, Rank 10 = 240%)
  • Tier 3 (467% multiplier): Each rank adds 36.7% (so Rank 0 = 100%, Rank 5 = 283.5%, Rank 10 = 467%)

Higher rank means higher weight, which means a larger share of the tier’s reward pool.

Step 4: Reward Calculation

The tier’s total budget is divided among all qualified dApps based on their weights:

  1. Add up the weights of all dApps in the tier
  2. Calculate reward rate = tier budget ÷ total weight
  3. Each dApp’s reward = their weight × reward rate

This ensures the entire tier budget is distributed proportionally. Projects with more staking support (higher rank) receive a larger share.

App Reward Formula

Full Formula

dApp\_reward = tier\_allocation \cdot \frac{base + rank \cdot \frac{multiplier - base}{10}}{\max(filled\_slots \cdot base + ranks\_sum \cdot \frac{multiplier - base}{10}, \ max\_slots \cdot (base + 5 \cdot \frac{multiplier - base}{10}))}

Where:
- base = 100%
- multiplier = tier rank multiplier (240% for Tier 2, 467% for Tier 3)
- rank = dApp’s rank within the tier (0-10)
- filled_slots = number of dApps currently in the tier
- ranks_sum = sum of all ranks of dApps in the tier
- max_slots = maximum slots for the tier (6 for Tier 2, 10 for Tier 3)
- 5 = average rank (middle of 0-10 range)


Example for Tier 2 (6 dApps, 240% multiplier)

Assume the tier budget is $21,000/month and all 6 slots are filled with dApps at various ranks:

dApp Rank Weight
Project A 10 240%
Project B 8 212%
Project C 6 184%
Project D 4 156%
Project E 2 128%
Project F 0 100%
Total 1,020%

Reward rate = $21,000 ÷ 1,020% = $20.59 per 1%

dApp Weight Reward
Project A (Rank 10) 240% $4,941
Project B (Rank 8) 212% $4,365
Project C (Rank 6) 184% $3,789
Project D (Rank 4) 156% $3,212
Project E (Rank 2) 128% $2,636
Project F (Rank 0) 100% $2,059

The top-ranked project earns 2.4x more than the bottom-ranked project, matching the 240% multiplier.

What Happens to Unfilled Slots

If fewer than 16 projects qualify, the unused allocation is not minted. It doesn’t redistribute to other projects - it simply isn’t created.

Note: Full technical details on reward formulas and edge cases will be available in Astar’s official documentation.


:red_question_mark:What Happens If a dApp Doesn’t Qualify

If a dApp does not reach the 30M ASTR threshold:

For the dApp: No dApp rewards. The project is still listed but does not receive emissions.

For stakers: No impact on staker rewards. Stakers still earn base + adjustable staking rewards regardless of whether their chosen dApp qualifies for a tier.

This separation is important: staking to a project is never “wasted” from a staker reward perspective, even if the project doesn’t hit tier thresholds.


:desktop_computer: Portal UI Changes

Main List View (Simplified)

The main dApp Staking page will show:

  • All 16 dApps
  • Sorted by staked amount (highest first)
  • Displayed info: staked amount, staker count, category, project name

Not displayed on main view: Tier labels, dApp reward amounts

This removes the tier comparison that caused confusion. Users see a ranked list of projects by community support.

dApp Detail Page (Full Information)

When viewing an individual project page:

  • Current tier and rank
  • Estimated dApp rewards
  • Staked amount

This keeps detailed information accessible without cluttering the main experience.


:counterclockwise_arrows_button: Yearly Cycle: What Changes for Users

Current Model (Three Periods Per Year)

Today, dApp Staking runs in cycles with Voting and Build & Earn periods. Users must:

  • Restake or re-vote three times per year
  • Track bonus periods to maximize rewards
  • Perform maintenance actions to avoid missing incentives

New Model (One Cycle Per Year)

Under the new model:

  • Stake once per year
  • Maintain position until the next yearly inflation recalculation
  • No bonus tracking required (bonus allocation is now 0%)

The yearly reset aligns with when the inflation system recalculates. At that point, dApp Staking positions reset and users restake for the new cycle.


:clipboard: Summary of Parameters

Parameter Current New
max_registered_apps 500 16
slotNumberArgs [1000, 50] (dynamic) [0, 16] (fixed)
dApps listed ~72 16
Active tiers 4 2
Tier 1 slots 5% (~3) 0
Tier 2 slots 20% (~12) 37.5% (~6)
Tier 3 slots 30% (~18) 62.5% (~10)
Tier 4 slots 45% (~27) 0
Tier 1 threshold ~307M (3.57%) ~200M (~2.32%)
Tier 2 threshold ~76M (~0.89%) ~80M ASTR (~0.93%)
Tier 3 threshold ~20M (~0.23%) ~30M ASTR (~0.35%)
Tier 4 threshold ~1.7M (~0.02%) 0M (~0%)
Tier 1 reward share 25% 0%
Tier 2 reward share 47% 70%
Tier 3 reward share 25% 30%
Tier 4 reward share 3 0%
tier_rank_multipliers* NA [0, 24_000, 46_700, 0]
Restaking frequency 3x per year 1x per year

*Values are expressed in bips, where 10,000 = 100%. The multipliers are [0%, 240%, 467%, 0%]. For clarification: 10,000 (100%) indicates that dApps receive only base rewards with no rank-based multipliers, while 0 indicates no rewards.


:date: Timeline

Assuming referendum cycles commence on Sunday (as anticipated), the following outlines the expected timeline for all governance procedures and the complete activation of Tokenomics 3.0 and the dApp Staking revamp.

Governance Process

Two referendums will be executed:

  1. Tokenomics parameter updates
  2. dApp Staking implementation (runtime upgrade)

Referendum 1: Tokenomics Parameters

Milestone Date
Main Council External Proposal Saturday, February 21
Voting period Sunday, February 22 - Sunday, March 1
Enactment Tuesday, March 3 (2-day delay)
Inflation recalculation Sunday, March 8

Referendum 2: dApp Staking Runtime Upgrade

Milestone Date
Main Council External Proposal Saturday, February 28
Voting period Sunday, March 1 - Sunday, March 8
Runtime upgrade Week of March 9

Target go-live: March 9-15

Testnet Rollout

Network Timeline
Shibuya upgrade This week (Thursday)
Shiden upgrade Next week

:speech_balloon: Questions and Feedback

We welcome questions on:

  • Threshold levels and whether they’re appropriate
  • Reward distribution between tiers
  • The rank-based reward calculation
  • UI changes and what information should be visible
  • Any other aspect of this implementation

This is a follow-up for community discussion. Final parameters will be confirmed before governance submission.


Gaius_sama :astr:

Astar Foundation

5 Likes