RGP2.2: Returning Forfeited Staking Rewards

Authors

@gadget

Summary

Proposal to finalize the redistribution of forfeited staking rewards.

If supported by the community, this proposal will go to snapshot voting early next week.

Background

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

Methodology

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.

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 distribution list text file can be found here. A full json summary of the rewards can be found here.

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.

FAQ

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).

8 Likes

This sounds great, I agree we should return the non-claimed RBN to the community.

However, is this not also a good chance to level off bigger vs. smaller holders?
Instead of making it proportional to each RBN earned from a vault what about doing an equal distribution or based on the # of weeks staking in the vault?

“RGP2.2 - aka Ribbon Hood”?

1 Like

This method factors in # of weeks staked because it relies on the earned() amount, which grew every week.

Additionally, I think in this case the more fair approach is to mirror the original distribution as closely as possible. Stakers staked with the expectation that the forfeited RBN would be distributed in this fashion, and retroactively changing that would hurt the community’s faith in governance’s word/promises.

5 Likes

Sounds logical, totaly agree to redistribute forfeited staking rewards!

1 Like

Agree with you!

Considering the way of first RBN airdrop, this is matched the view of our community I think.

Makes a lot of sense, fully onboard with this.

I am fully on board with this

Agree! And will there be any more rounds of liquidity mining program?

That’s sound fair, lets vote it

I like the idea of redistribution. I wouldnt be opposed to each address getting an equal portion though.

A great proposal @gadget, and very much in favour of this. Will vote accordingly ser! :sunglasses: :v:

This proposal suggests (1) that those folks would have kept staking and (2) there would have been no new folks staking.

If we are to incentivze via an airdrop it should be done based on those that have interacted with the protocol since the LM contract ended, rather than those that previously were staking for LM rewards.

Very much in favor of this!

Just for full disclosure by address it’s also:

ETH Covered Addresses: 591
WBTC Covered Call Addresses: 204
USDC Put Addresses: 441

This adds together for a total of 1,236 addresses.

RGP rewards 730 addresses, so roughly 59.06% of addresses get a bonus while 40.9% of addresses get nothing.

I think it’s probably clear I am one of the 40.9% addresses getting nothing and since I won’t have much RBN to vote “NO” then it won’t matter, but just to give full data out for all the other “little people”, here it is.

@elliottmatt I think the intention of the capped LM program was to reward and incentivise the early community. Those willing to take exposure to vaults, stake for the long reward period without withdrawing should be rewarded as it was laid described initally. In this vein, it makes sense to follow through with the distribution.

As for flattening out the distribution curve, I imagine there might be further rounds of LM or other unique fair distribution methods for RBN users.

@gadget great proposal. Nice to see the LM program’s forfeit mechanism being used.

I will be voting yes on this proposal in lieu of an alternative that uses these forfeited funds for some sort of community grants or other ecosystem building activities. I’m not sure what activities could further support the protocol but it’s always nice to have a fund to reward active community contributors.

And I’ve been here for a while. I was lucky enough to get the initial drop. And I did the math to how much I would get and it’s probably pennies if not single-dollars worth meaning that the gas to claim it probably wouldn’t even be worth it. It’s just the matter of fact that RGP is already creating the have and have-nots. It doesn’t set a good precedent.

You will not need to spend any gas to claim your extra rewards. The ribbon team is using disperse to send it directly to you, and we are covering the gas fee for this TX.

I would argue that it’s hard to claim that this RGP is “creating the have and have-nots” since it is not changing the % distribution users’ have. Any other proposal would be taking rewards defacto promised to stakers that staked more and redistributing it to users who staked less. Redistribution of RBN to smaller holders is a viable discussion point, but I would argue not on a RGP meant to address a technical shortcoming of a contract for an already passed LM program.

Did you deduplicate by the number of addresses who are in 2 or 3 vaults? These numbers seem off.

I did not. I just did a pure array.length call on them. That’s a good disclosure I didn’t think about.