Hello chefs, I want to introduce this proposal to discuss together an update to the Marinade’s Liquid Unstake pool parameters
What do you propose?
This proposal suggests a number of changes to Marinade’s liquid Unstake Pool and to the fee curve applied for Liquid unstaking. Modifying the fee curve is derived from the experiences during recent events (Nov 8)
The proposal’s goals are to make sure that it is more costly to deplete the pool, and that at the same time it is more attractive to chefs and community to add SOL when the liquidity is low. As a side effect, LPs and Marinade could capture a larger amount of fees.
This proposal has been designed to improve liquid-unstake during high market volatility
The main changes in this proposal is:
Modifying the parameters for liquid unstake fee
Actual is 0.3% to 3%, increasing linearly when the liquidity in the pool goes below 100,000 SOL
Proposal is: 0.3% to 9%, increasing linearly when the liquidity in the pool goes below 150,000 SOL
What is the rationale behind the proposal?
Recent events have shown that on if the market volatility is high enough, 3% is considered a low fee for swapping mSOL->SOL. The liquidity pool was depleted in hours and stayed at zero for three and a half days, and during that time, any SOL that was added to the liquidity pool, was instantly used to swap mSOL->SOL with a 3% fee
Do you have any data on what the exchange rate in mSOL-SOL pools on other DEXs was when Marinade’s pool got depleted? Seems like that would be a good empirical estimate of how high the max fee should be. Probably better than randomly choosing 9%?
Regarding the threshold below which fees are increased, would it make more sense to make this based on the SOL to mSOL ratio in the pool, and not the absolute amount of SOL in the pool? 100k SOL + 0 mSOL means there hasn’t been any unstaking, so no need to raise fees yet. 100k SOL + 100k mSOL means half has been unstaked, so fees should be increased. But in the current model these two are treated equally. On DEXs the rate changes dynamically according to demand, becoming worse as more people sell mSOL for SOL. In Marinade it stays constant at 0.3% until the pool reaches X SOL. During large selloffs, the rate on DEXs falls to 0.3%, then suddenly all selling starts to go through Marinade because the fee doesn’t become higher than 0.3% until the SOL reserves are sufficiently depleted. This seems like a missed opportunity (Marinade is offering too favorable a price) and it would make sense to make it responsive to demand at all points on the SOL reserve curve.
Btw the Marinade’s DeFi page shows the $ TVL for the pool but not how much SOL it contains or the current fee. If the idea is to incentivize deposits based on the fee, perhaps it would be good to show those.
I think this proposal makes a lot of sense and is directionally good, like Durden mentioned.
I also think that his suggestion to calculate the fees of this pool according to the mSOL/SOL ratio is really interesting, but I think that such a change would require a contract update, whereas changing only the parameters can be done without any change to the contract but by using the operational multisig. I also think you’re on point with basing the fee update on the last liquidity crunch instead of going with 9%.
Maybe we can consider having a change of parameters first, and put in the roadmap this change for the next contract upgrade to be planned? That sounds like a reasonable way forward for me.
I’m also taking notice of your last comment on the DeFi page Durden, will see if we can improve that.
Really good points. Thanks Durden.
I’m asking flipside if they can help with computing the exchange rate in mSOL-SOL pools on other DEXs was when Marinade’s pool got depleted. It’s not clear if that’s easy to get. In any case, 3% is low by all estimates, 9% is not based on hard data, but is better than leaving it at 3%.
We will try to get the hard data, but if we can not I intend to advance with the proposal anyway
What DEX’s pool is this? Is the price in dollars? What we want is the price of mSOL in SOL. We basically just need a line graph of the mSOL:SOL rate during that time period to see how bad the rate got.
That’s across all DEXes that Flipside tracks. Price in dollars, but not sliced across time.
What we want is the price of mSOL in SOL. We basically just need a line graph of the mSOL:SOL rate during that time period to see how bad the rate got.
Consider these two quick drafts, both SOL-denominated:
Nice. So if I’m reading it correctly the discount got as bad as ~10% (although the trade that took it to 10% was quickly bought back up). It was occasionally much worse for stSOL, with huge sells with a >40% discount, but those were quickly bought back up too. Since the rate remained stable as low as 8% but sells at a 10% discount or worse were quickly bought back up, 9% or 10% seems like a reasonable max unstake fee!
It was actually much, much worse for stSOL - I found trades well below 0.25, but since I didn’t have time to weigh the average across time by the number of tokens in the transaction, I decided to cut out any outliers below 0.5 (forgot to mention that).
I dont think the ratio really matters here if just trying to optimize for unstake liquidity in absolute terms.
I’m ok with this proposal but it feels like it will mostly just squeeze out an extra few bucks for the during emergency/bankrun scenarios rather than actually improve unstake liquidity. but seems good to make an extra few bucks so sure.
Sorry I’m a little late to the party but I put together a Flipside dashboard tracking Marinade’s Instant Unstake pool balance. It also compares mSOL unstake prices and fees in it vs other pools for the week of Nov 8-14 when the liquidity went dry. I hope you will find it useful.