Hello everyone,
this post will be continuation of the topic first presented here.
EDIT: It’s not expected that anyone from community would need to claim rewards for others. It would all be handled by a bot.
The Problem
Once dApp staking v3
launches, dApps staking v2
will become obsolete. Any unclaimed rewards will be lost, they won’t be migrated over. It simply doesn’t make sense to migrate rewards since we’re enabling a whole new tokenomics model, and old rewards simply don’t fit into the scheme.
However, this isn’t a cause for alarm since it was requested and agreed that we should provide a mechanism for claiming pending rewards for stakers, and ensuring no staker rewards are lost.
The basic solution has been implemented & tested immediately and works fine.
However the major problem is:
- ~6 million unclaimed era rewards on Astar
- ~2 million unclaimed era rewards on Shiden
This means we need to execute at least 6 million claim_staker
transactions to claim all pending rewards just for Astar.
This is clearly a lot. These transactions aren’t free (and they shouldn’t be) as they consume block resources. It might take around a whole week of constantly sending transactions to claim all pending rewards.
The more transactions we send, the more the gas fees will rise (documentation). The more congested the network is, the higher the tip users need to pay.
These things aren’t a problem, it’s normal for blockchain. And the gas fee increase won’t be substantial, Astar will remain a cheap network. Once migration is finished, the fees will go back down.
Solution
The proposed solution here is to allow another account to claim rewards for someone else, but the staker account would reimburse the caller for the minimum transaction fee. Best to explain this via example:
Alice
has 10000 unclaimed era rewards, and 10000claim_staker
calls are required to claim all of those rewardsBob
decides to claim rewards on behalf ofAlice
Bob
signs & sends the transaction, paying the transaction fee & the tipAlice
’s reward for the claimed era is 5 ASTR, and the configured minimum fee is 0.05 ASTRAlice
receives 4.95 ASTR into her account, andBob
is reimbursed for 0.05 ASTRAlice
’s balance has increased, without her taking any real actionBob
’s balance has been slightly decreased since he paid the transaction fee & the tip which is slightly higher than the reimbursed amount
The solution isn’t completely fair to Bob
, but his losses aren’t big. Alice
earns her rewards without having to claim them herself.
Alice
’s free balance IS NEVER TOUCHED. Her total balance (and free balance) cannot decrease.
Alternative(s)
First possible alternative would be to simply allow 6 million unclaimed eras to be burned. Whoever didn’t claim them will be at a loss. This would be very ill received by the community, stakers, and considering all things would be unfair.
Another alternative would be to make the delegated claim call free but that is also wrong since these transactions will consume lots of resources, and resources need to be paid for. It would also allow someone to create two separate accounts and use this opportunity to claim their own rewards for a limited period, for free.
Perhaps there are other alternatives, but the solution presented (with reimbursement) seems most fair to me.
Request For Comment
dApp Staking v3 launch is very near (most likely within 2 weeks time), and there are huge amounts of unclaimed rewards. This discussion needs to happen fast so please provide feedback, and other ideas if you have them. And do it soon please
Update: Way Forward
Thank you all for the comments, feedback and suggestions.
As we don’t see any blocking concerns with the proposed approach, we will proceed with it. The aim is to have dApp staking v3 on Astar in 2 weeks, and to achieve that, we need to move forward now.
The solution has been implemented & thoroughly tested.
Here are some additional pieces of information about the process:
Shiden Fee
Reimbursement fee for delegated claiming will be 0.000_579_268_481_141_871 SDN
since that’s the minimum possible fee that needs to paid in order to claim one era.
Astar Fee
Reimbursement fee for delegated claiming will be 0.057_950_348_114_187_155 ASTR
since that’s the minimum possible fee that needs to paid in order to claim one era.
Claiming Process
- Bot will handle the transaction sending, it won’t be done manually
- Shiden delegated claiming will most likely start on 31st of January, while Astar will start on 1st of Februrary
- Users DO NOT NEED TO DO ANYTHING, but they can still interact with dApps staking same as today (claiming, staking, unstaking, etc.)
- Few days before the launch, we’ll enable decommission mode (prevents new eras from happening), and ensure all pending rewards have been claimed (no one will loose on any rewards)
- Once all pending rewards have been claimed, we’ll proceed with dApp staking v3 launch
- Foundation will cover the cost of transactions & tipping
One positive effect for all users, lot of fee burning.
Please stay tuned for more info via our socials. Guides & more info will be shared any time now.
Update2: Results
All staker rewards on Shiden have been claimed.
Delegated claim on Astar is progressing and should be done by 12th of February, just in time for the upgrade to dApp staking v3.
Foundation founded an account with some SDN/ASTR to get it going:
As explained above, the delegated claim fee was set low enough so it doesn’t even cover the lowest possible fee for claiming a single era.
However, since the bot batches transactions, the inclusion fee is paid only once for many claim calls, thus reducing the overall cost of the batch transaction. As a result, the bot account ended up with more SDN/ASTR than it started out with.
Keep in mind that these bots executed over 2 million calls for Shiden, and over 6 million calls for Astar (still ongoing).
Once the accounts have been used to complete the entire delegated claim process & migration from v2 to v3, we will:
- return the initial funds back to their owners (279 SDN and 10,000 ASTR)
- whatever remains in the account will be deposited into the treasury account