Standardize ragequit proposals and make it a feature and not a bug

Hmm, the way I am thinking is to use your system with both reward-weighted and time-weighted fee, but add a flat fee to it. This is to further disincentivize people from ragequitting. My personal opinion is that ragequitting should be a extraordinary measure, and it potentially opens up more risk. So the flat fee is a direct extra tax for that risk which all have to pay regardless of the two other weights. This will ensure more liquidity is available, and the system overall becomes more robust in my opinion.

Maybe my philosophy and understanding of the topic is insufficient, and I might be wrong. But these are my current thoughts on the matter. If I am wrong, I am open to learning and understanding why.

You know…
@Sharkysnakefish

I recant my statement.

I just realized I was wrong:

You cant add to an LP position once it has been locked on Frax, you can only create a new LP.

That being said… the more I think about it, the more I want to REDUCE the unlock fee. Not increase it.

Charging all the FXS ever rewarded, for instance, when as I mentioned earlier the protocol is paying for the utility of liquidity and the associated fees, seems to be too much.

The protocol doesnt lose all the time it had been “loaned” the liquidity, lnor the fees generated from it.

Its only fair then that the user also walks away with something, right?

I also disagree with “unlocks should only happen in extraordinary cases”… I thought thats why we were here, in this proposal, to change?

Currently, unlocks only happen under rare circumstances. I believe they should be much more casual, baked right into every single pool in Frax, no governance proposals, just the user and their choice about paying a fee.

I feel in one form or another unlocks need to be integrated into Frax. Crypto changes extremely fast and 4years is an extreme duration to be locked in no matter what

I would also like to note.

Unlocks have only ever been so important to Frax specifically because of the $FRAX stablecoin and its collateral ratio.

Thats why I “mandated” CR health checks not once, but twice, straight into my equations

Because CR is the most important thing we have.

That being said, if CR is provably safe then unlocks should be an option for anyone at any time

In my opinion

“Currently, unlocks only happen under rare circumstances. I believe they should be much more casual, baked right into every single pool in Frax, no governance proposals, just the user and their choice about paying a fee.” Actually this makes a lot more sense. I also agree on the need to integrate something, and that crypto changes fast and 4 years is a long time.

To sum up, I think your arguments are sound and I support your proposal. I will change it up later today when I have time.

Due to shortcomings in the website design, we have to upload a new proposal. We will amend our current proposal with feedback given here. If someone have any input, feel free to comment and discuss here until the new proposal is live.

2 Likes

I’m locked for over 2 years in some Convex FRAX pools that now have very low rewards and I would like to leave them. When I joined, I thought we were offered to lock for 3 years because the pool would keep on getting incentives. If the protocol decides to stop incentivizing, it should be possible to leave with no penalty. This is very different from a user just wanting to leave a pool while they are still getting rewards.

Making people either stay or pay an outrageous fee like the ones proposed in the first post is a lose/lose situation, even if it may seem fine short-term. Not only those users are unlikely to keep using FRAX products or recommend them to others, but their liquidity is often trapped in pools with low volume, which is also a scenario that doesn’t benefit the protocol.

Another possible solution could be to migrate people from 3 years Convex FRAX products to more reasonable 1-year ones (so if you already stayed 7 months in the pool you’d still have to wait 5 in the new one, instead of 2 years and 5 months). I don’t know if this is technically possible.

Here it is.

My finished version of the Algo, including a discount for cvxFXS/veFXS stakers.

“USD value of LP position” × Multiplier = “virtual USD Value of Boosted Position”
L M B
“LP Staked + Boost [FraxStats]” × “LP Price [FraxStats]” = “virtual USD Value of entire Pool”
P A N
note [FraxStats] refers to the value indicated by app.frax.finance for the equivalently named statistic of any given gauged LP pool during any given period.

G = “virtual USD Value of Boosted Position” ÷ “virtual USD Value of entire Pool”
B N
G = decimal percentage (virtual) USD Value of position relative to (virtual) boosted value of entire pool
A = LP Price [FraxStats]
D = LP Amount Staked per position
L = USD Value of LP Position
L = A x D
M= (veFXS-stake-weight-boost + time-lock-boost)
M = Multiplier
P = “LP Staked + Boost”[FraxStats]
B = “virtual USD Value of Boosted Position”
B = L × M
P × A = “virtual USD Value of entire Pool”
P x A = N
G = (B ÷ N)
G = (L × M) ÷ (P × A)
R = FXS allocated to pool per epoch [FraxStats]
F = FXS Price per epoch [FraxStats]
F = cumulative avg FXS price of relative epochs (use 3 daily averages [morning/noon/night])
E = F^y × veFXS (user staked)
M = “FXS rewarded to LP Position per Epoch”
M = G × R
V = “USD Value of FXS rewarded to LP Position per Epoch”
V = M × F
V^n = M × F per epoch
^n = sequential numerical identity of epoch, NOT an exponent (used only as epoch identifier)
^y = most recent ^n
T = “Total USD Value of FXS received per (lifetime of) position”
T = (V^n) + (V^n) … + (V^y)
C = Function derived from
value of Collateral Ratio %
If C=0 unlocks are not permitted.
C =
{ CR% ≥ 103% =1
CR% ≤ 103% = 0}

Y = Days Remaining til unlock of LP Position
U = “USD Value of LP Position” – T
U = L – T
U = amount due to users after unlock, [post-fxs-repay, pre-fee] (no discount applied)

D = USD fee discount for cvxFXS and veFXS stakers
D = (((days-since-veFXS(or cvxFXS)-lockup ÷ (365.25 × 4)) × 50)%) × E
D ≠ >(50% × T)
X = Amount Owed minus Discount

X= ((“Total USD Value of all FXS rewarded to LP” + “0.06844627% of (U) per Day of Lock Remaining[2.5% a year]”) minus D) × function of C

X = ((T + ((((Y/1461)×10)%)U)) - D) × C
Z = L – X
Z = Amount received by User post fees + deductions

Loop (Z - X) back through CR calculation to ensure CR% ≥ 103% before finalizing unlock

Ugh. I was up late trying to get this finished.

Im going to have to amend value X to account for a potential negative value returned in X.

Written as is it will not work.

My mistake.

I will have the correction up within 16hrs

1 Like

Please find Frax Core Team proposal about this subject here: [FIP - 3XX] Locked Liquidity Standard Exit