Proposal to finalize the redistribution of forfeited staking rewards.
If supported by the community, this proposal will go to snapshot voting early next week.
As decided by governance in RGP-2, stakers that prematurely unstaked their vault tokens forfeited 100% of rewards earned up until that point. Due to technical limitations of the staking contract, these RBN are not automatically distributed to the remaining stakers’ balances.
The breakdown of forfeited rewards by vault is:
ETH Covered Call: 9,867.18 RBN WBTC Covered Call: 5,336.78 RBN USDC Secured Put: 172,308.93 RBN
This RGP is proposing that each vault’s forfeited RBN be redistributed pro-rata to stakers proportional to their earned RBN. This would mean that for each RBN a user earned from a vault, they would receive an additional:
ETH Covered Call: 0.0032128476456115608 WBTC Covered Call: 0.0017512777501521766 USDC Secured Put: 0.044392746204270646
The team first recovers 179,751 RBN (forfeited RBN rewards) from the staking contracts using the recoverERC20 function.
Then, for each vault
1. Compile all `Stake` events generated between blocks 12530000 and 12850000 2. For each unique address, get `earned()` RBN in context of block 12850000 3. Sum all earned rewards (`totalEarnedRewards`) 4. Subtract `totalEarnedRewards` from the RBN allocated to the vault (`forfeitedRewardsgg`) 5. Divide `forfeitedRewards` by `totalEarnedRewards` (`bonusRBNperEarnedRBN`) 6. For each unique address, multiply its `earned()` rewards by `bonusRBNperEarnedRBN`
The list generated by step 6 represents each stakers’ bonus RBN.
A distribution list was created by combining each individual vaults list. Additionally, this final distribution list was filtered to users receiving at least 1 extra RBN reward to facilitate gas efficient distribution.
A total 179,751 RBN will be redistributed to 730 stakers. The mean distribution 246.23 RBN and the median distribution is 15.63 RBN.
The RBN will be directly sent to users’ addresses using disperse. This means that users will not need to spend any additional gas to claim their bonus rewards.
Why are users from the USDC vault getting so much more than the other 2?
The USDC vault had the highest rate of prematurely unstaking, likely due to users withdrawing during the weeks ETH approached the strike price of the puts.
Why have a 1 RBN threshold?
We will be directly transfering extra RBN is stakers’ addresses through a public tool called [disperse] (disperse.app). Due to maximum tx gas usage, there is a hard cap on the number of receipents. 1 RBN is the nearest round number that allowed us to fit within this cap.
Won’t this leave too little RBN in the staking contract to allow the final stakers to claim their rewards?
No. We are only removing RBN that is not claimable by any user due to its forfeited status. Additionally, because we are filtering on users that will receive >1 RBN, we are able to round down on the amount of RBN we are withdrawing from the contract, ensuring that we won’t have a dust problem (by over withdrawing by 1 wei).