Staking Discussion: Reward Swap Discount

Staking Parameter: Reward Swap Discount

Motivation

With the initial launch, the majority of rewards will flow into pools on completion of sales. Since most sales are in ETH at the moment, ETH is what will be sent to the Reward Accumulator contracts.

As Rarity Pools deal solely with RARE, a mechanism is required for this ETH to be converted into RARE. Enter the reward swap discount to incentivize users to swap their RARE in exchange for the ETH.

The swap price is calculated with a price oracle and the discount percent gives the swapper a slightly better deal than they would otherwise get if they purchased the ETH at the spot price from the oracle.

The current value we have for the discount is 10%.

For a more detailed explanation please see the white paper.

Example

Say 1 ETH flowed into the reward accumulator and to keep the math simple, say the RARE price for 1 ETH was 100 RARE (100 RARE / 1 ETH). Using the current discount value, I would be able to swap 90 RARE for that 1 ETH, 10 % cheaper than the spot price of 100.

Discussion

  • What is the proper value for the discount percentage?
  • @Brennan favors a more dynamic method for the discount while I favor it as static, here’s an opportunity to discuss the pros and cons of both!

I like static because it might enable me to make some extra profit if I happen to get some rewards.
I guess this might figure into when one would want to unstake and incur that 1% burn fee. If there is a 10% discount someone might be able to unstake sooner and still come out ahead.
But you might need a way to adjust the percentage manually if it becomes over utilized in a manner that crashes the token or kills the liquidity. Not sure how that would happen but I always think of unforeseen consequences.
What happens if people (bots) start getting flash loans of RARE and then instantly exchanging it on this RARE discount market? I suppose if they did it not fast enough the price would crash on them. Maybe that is not an issue because the price oracle can keep up in real time.

Great points @BardIonson.

What happens if people (bots) start getting flash loans of RARE and then instantly exchanging it on this RARE discount market? I suppose if they did it not fast enough the price would crash on them. Maybe that is not an issue because the price oracle can keep up in real time.

In this scenario I don’t see much of an issue because they are actually behaving in the manner we are wanting to incentivize.

We need someone to come in and swap the ETH out for RARE so it can be ascribed to rewards in the pool.

Another interesting point is that the only market manipulation in the interest of a bad actor is to drive the price of RARE up so that they get a better deal when swapping out the ETH. So in the case of a flashloan they would be disincentivized to manipulate the market since they still need to pay back the loan in RARE.

Any issue with the price oracle is definitely a concern.

Our current implementation is using uniswap V3 but we may want more options or even something like chainlink

The situation I guess we’re trying to avoid is that for humble sellers accumulating small amounts of ETH from their sales to the pool, it takes a lot for the reward swap to be worth it. And thus if the % is low, then reward swaps will rarely be incentivized to happen.

Let’s say this arbitrage opportunity costs 0.015 ETH in gas.
And assuming a 1% pool-reward rate:

1.5 ETH in sales means you’d need 100% reduction for a reward-swap to break even.

At a 10% discount the seller would need to make 15ETH in sales in order to accumulate enough ETH it the pool to make a reward-swap break even

Am I calculating this right?

I backtested some of this. And so far in 2023, the top 102 (9% of sellers) have made more than 15ETH in sales.

At a 15% discount you’d support 179 (16% of sellers) making 10ETH in sales.

Seems like the problem with going too high then is that the pool itself gets that much less of a claimable reward in RARE.

This is making me think that part of the 45m RARE SIP earmarked for airdrops should go to subsidizing reward accumulators.

2 Likes

really great points keegan. Another thought would be to implement a multi reward swap function where you could do the swap with multiple pools thus saving gas on the price spot look ups.

I did a test tx to get exact gas and it’s 376671 to perform the swap so your estimate is pretty solid assuming 30 Gwei gas price.

Rewarding swappers would also be a great way to further distribute RARE to participants.

Ok that makes sense.

You should assume 200 gwei and 10,000 USD per ETH.

If the system doesn’t work under those conditions, then eventually it won’t work.

1 Like