dApp Staking Period 006 Bonus Incident: Post-Mortem

What Happened

Referendum #70 (Update Tokenomics 3.0 Inflation Parameters) executed at block #12,528,000 on March 6, 2026. The referendum set bonusPart = 0 as part of the planned Tokenomics 3.0 inflation parameter update.

The intention was clear: this change was meant to take effect from Period 007 onwards. Period 006 bonus rewards were never meant to be touched.

The problem is timing. The referendum executed before Period 006 closed. When the protocol took its end-of-period snapshot to calculate and store the bonusRewardPool for Period 006 payouts, it read the already-modified bonusPart = 0 parameter. The result: bonusRewardPool = 0 was stored permanently for Period 006.

1,693 users did not receive bonus rewards they were legitimately owed.

Due to Astar’s lazy minting design, the Period 006 bonus tokens were never minted and do not exist anywhere onchain.

Root Cause

The snapshot logic for bonusRewardPool reads the bonusPart parameter at the time of period close, not at the time of period start. This means any governance referendum that modifies inflation or period-level parameters mid-period can produce the same class of bug.

This is not a one-off oversight. It is a protocol-level gap.

The correct process should be straightforward in principle: snapshot logic should read bonusPart as it existed at the start of the period being closed, not at the time of closing.

Why This Wasn’t Caught

Referendum #70 was a major inflation update. It went through standard testing on Shibuya. However, this specific edge case, a referendum that modifies inflation parameters while a period is already active, was not covered in the test scenarios.

Going forward, referenda that modify inflation or period-level parameters will require an explicit review of period timing implications before on-chain submission: which period is currently active, when it closes, and whether the referendum execution window overlaps with an active period snapshot.

Resolution

We are compensating all 1,693 affected users in full via a Main Treasury proposal.

Key figures:

  • Intended bonus pool: 26,860,830.759504626 ASTR
  • Total to be distributed: 26,664,819.79 ASTR
  • Dust (stays in treasury): ~196,010.97 ASTR
  • Eligible users: 1,693
  • Distribution method: Proportional to eligible voting power staked during Period 006
  • Source: Astar Foundation archival data; full payout breakdown available on request

The intended bonus pool was 26,860,830.76 ASTR, calculated against totalVpStake, the total ASTR staked since the start of the voting period. The actual compensation requested is 26,664,819.79 ASTR. The difference of ~196,010.97 ASTR is dust: it represents the portion of totalVpStake contributed by users who unstaked before the end of the build&earn period, making them ineligible for the bonus. Their stake was counted in the pool calculation but they do not qualify for a payout. Since the bonus pool was never minted, this dust will not be taken out of treasury and stays there.

Treasury compensation is the correct path here for two reasons. First, it avoids minting new tokens, which aligns with Tokenomics 3.0’s supply reduction goals. Second, it enables faster execution: the proposal routes funds to the Foundation developer wallet, followed by automated batch distribution.

Technical Reference

  • Affected period: 006
  • Referendum execution block: #12,528,000
  • Transition block hash: 0xb7836a4f6da6c1989704a0a475b60b7f636ad7fbca9a5d8196785e149030aefa
  • Snapshot block hash: 0x879b117471b444bbdb9a7471d5803d56328971aaf34cbd4dc208919000735fa7
  • Bonus pool source block hash: 0x2ee9e804862ecda0c8c68419d3847b16110d75aa664e510bf2209742a7b2a84a
  • Intended bonus pool: 26,860,830.759504626 ASTR
  • Total eligible voting power staked: 1,152,470,060,011,652,093,864,480,943 (~1.15 billion ASTR)
  • Scanned keys: 13,567 | Eligible entries: 2,858

The treasury proposal is being opened today and fast-tracked with a 7-day voting window, with enactment scheduled before the next spend period on Wednesday, March 25. Distribution to affected users is targeted for Thursday, March 26 or Friday, March 27. Questions and feedback welcome here.

:link: Treasury Proposal: Untitled - treasury proposal #31


Gaius_sama, Astar Foundation :astr:

8 Likes

Thank you for the explanation.

It makes sense to cover it from the treasury, since we should avoid newly issuing tokens for compensation (creating a precedent of minting new ASTR through governance would not be desirable).

2 Likes

Thanks for the explanation, Gaius, it’s really important that it happened. I appreciate the fact that no new Astar will be minted to reimburse and that the foundation’s wallet will be used instead. Personally though, even though I’m one of those entitled to the bonus—and it’s a decent amount—I’d be inclined to vote No. Instead, I’d like to make a counter-proposal: I suggest that nobody claims the bonus and that every Astar allocated for it gets permanently burned. It would be a powerful signal of unity, trust, and determination: accepting a mistake and turning it into an incredibly strong collective action. I understand that a proposal like this can’t come from you—you’re rightly trying to fix things with your own funds—but we’re a family and problems are faced together. I appreciate the gesture and propose another one.

1 Like

Thank you for the detailed explanation.

This was just an unintended incident, and users will understand.

Using the Treasury to reward users is reasonable, especially as Astar is focusing on its Tokenomics 3.0 upgrade to reduce inflation.

1 Like

Thank you very much for the explanation and for all your efforts in addressing this.

I think the overall approach looks good.

By the way, since I am also included in the scope,
would it be possible to provide a list that confirms all individuals who are covered?

Sorry to repeat myself once again, but since I haven’t received any responses, I’d like to explain my idea more clearly.We are all aware that there was a technical error with the tokenomics update: the bonus accrued in the previous period (the one tied to the old staking mechanism and period-end bonus) was not minted because, starting today, the period-end bonus no longer exists. The foundation has decided—rightly—not to mint new coins to fix this, but to use its own funds to compensate those who were entitled to it. That’s already a good sign of responsibility.Now we get to the key point: approximately 26 million ASTR are involved in this compensation (an amount the foundation is willing to pay out of its own pocket).My proposal is not “give it to us” nor “don’t give it to anyone.” It’s something bigger and, I believe, much more powerful for Astar’s future.I propose that we, as a community, collectively decide to forgo that individual bonus on the condition that the entire sum—those 26 million ASTR—not be distributed to users, but instead be burned by the foundation.This is not about the money itself: 26 million ASTR won’t single-handedly change the price or the destiny of the token (whether distributed or burned).

It’s about symbolism, about message, about collective pride.Imagine the impact of such an announcement:The foundation made a mistake → instead of hiding it or doing the bare minimum, it turns it into an act of strength.

The community, instead of arguing over “my bonus,” chooses to sacrifice something personal for the greater good.

We transform a technical bug into a conscious deflation of ~26M ASTR, funded by the foundation, without touching future inflation or supply.

We send an incredibly strong signal to the market: “Here we don’t think only about immediate gains. Here people truly believe in the long-term project. Here the community is willing to give up something to make Astar scarcer, stronger, more credible.”

This is not just a burn: it’s pure credibility.

It’s the kind of narrative that attracts attention, that gets Astar talked about outside our circle, that creates genuine organic hype, that makes external investors say: “These aren’t the usual crypto kids chasing airdrops. These people have vision.”Many say: “Okay, don’t mint new coins, but if the foundation is putting up its own funds, give them to us.”

I understand the instinct—it’s human. But I ask you to look beyond: for a relatively small amount compared to Astar’s market cap and potential, we’re passing up a historic opportunity to prove that this ecosystem is different.I’m saying this even against my own interests: I would have a fairly substantial bonus to claim right now—at current prices we’re talking around $500 in ASTR.

Yet I’m happily willing to give it up if it means burning the entire sum.

And you?This is not charity: it’s investing in the pride of being part of something bigger.

It’s moving from “project with a mistake” to “project with a community that knows how to look ahead.”Let’s touch their hearts and their pride, not just their wallets.What do you really think?

Let’s not ignore this one this time. Let’s disc

uss

1 Like

Hi @tksarah! Your request is something you can check yourself, as this is public protocol information. I don’t think posting all those addresses here is the best approach, but you can review it on Polkadot.js.

I can also take a look at your individual case if you still need support.

@Marroz, while your idea would be ideal, I don’t think the rest of the community would agree.

The Governance proposal, which clearly states the intention to receive the funds and distribute them to affected users, shows strong approval. Of course, it’s possible that no one considered your idea, so your proposal would need to gain broader support through governance.

Btw these are not Astar Foundations funds but Astar Collective funds from Main Treasury since this was not minted by protocol, so the intention is to use the already minted tokens that we have in the treasury.

I won’t argue against your idea to avoid influencing other members’ opinions, but as a consistent observer of the community, I see it as challenging.

You’re right… I noticed it myself too. The vast majority of the users who would have been entitled to it don’t agree at all with what I proposed.

To be completely honest: it was clearly a provocation.

But if I’m being brutally sincere, I would have preferred to get a real response from at least one of those 1600+ interested people.

Anything at all, even harsh: “Look, I prefer the bonus and that’s it. Who cares about the symbolic gesture, who cares about the future, who cares about the message we’re trying to send.”The Foundation definitely made the best choice, no question about it.

But as a community… it hurts to say it… we still have a very, very long way to go.

1 Like