Mis-use of Marinade gauges by closed AMM

I think Lifinity’s treasury gauge and Lifinity’s 2M MNDE stack is giving it an unfair advantage in liquidity gauges. In regular DeFi protocols, MNDE rewards are distributed to users who are usually MNDE holders.

In lifinity, MNDE rewards does not drive TVL growth. Instead, Lifinity provides $900k TVL without letting external community or user participation and keeps all the MNDE rewards. I think this goes against the spirit of Marinade’s liquidity mining gauges.

According to Marinade:

“MNDE Liquidity mining serves 2 functions in Marinade:

  1. it incentivizes staking SOL and using it in DeFi integrations, being a means of acquisition and retention
  2. it spreads the ownership of MNDE around in the ecosystem to its users, decentralizing Marinade”

In essence, the whole point of liquidity mining is to expand and grow the use cases for mSOL, and distribute MNDE to the community. As Lifinity’s deposits are capped, an increase or decrease of MNDE rewards here leads to no change in TVL. Additionally, MNDE ownership does not get decentralized at all, only serving to further enrich Lifinity and provide it more voting power for a subsequent gauge.

What is worth noting, is that Lifinity did propose this arrangement in a previously passed proposal. And while there was some discourse, enough MNDE votes were received for the proposal to pass.

My thought right now is that the Marinade community did not realize the impact of passing such a proposal. I am opening this forum post to create an opportunity for MNDE holders to chime in on Lifinity’s value to Marinade, and whether it is beneficial for Marinade DAO to continue this gauge.

Given status quo, Lifinity is sucking up a significant & growing proportion of MNDE emissions, with no positive impact on mSOL demand, defi use cases for mSOL, or ability for the wider community to participate in MNDE emissions.

mSOL-USDC tvl on Lifinity is currently $922k, with 7 day trading volume of $3.2m. Orca’s trading volume on mSOL pairs is more than $3.2m in only 24 hours. 7 day trading on mSOL via Jupiter is currently $11.5m

Currently Lifinity is receiving 13,168 MNDE/week, 9.22% of total. Next weight it will receive 15,148 MNDE, 10.6% of total. Since Lifinity is compounding the MNDE emissions to add to its own voting power, it won’t take long until it controls 10m MNDE, all kept by the protocol to increase its own voting power.

The Lifinity gauge is operating outside of the guidelines and spirit of the Marinade Liquidity Gauge program. The current setup goes against the ethos of decentralizing MNDE ownership via open community participation, and does not generate additional use cases or demand for mSOL in Solana defi. Other protocols had used their own treasury funds to purchase MNDE in order to participate in this program, so that mSOL adoption in Solana DeFi could increase, and to help support the decentralization of Marinade by distributing MNDE to protocol users.

I would like to open the discussion about what actions could be taken to prevent the further mis-use of the Marinade Liquidity Gauge program.

6 Likes

Hi, @CryptoBatman!

I’m wearing my neutral Governance hat, so I’m going to take a step back and let the community discuss it, but I wanted to welcome you the forum - I see you picked an easy topic to start with.

Cheers!

3 Likes

Those are good arguments. Current situation is completely the opposite of:

  1. it spreads the ownership of MNDE around in the ecosystem to its users, decentralizing Marinade”
    for the reasons you stated.

And also "Lifinity’s deposits are capped, an increase or decrease of MNDE rewards here leads to no change in TVL "? This makes no sense for Marinade incentives.

In order to fix misuses of the gauge system, I would like to add as a general rule by gov proposal:
“One of Marinade core value is decentralization, including the spreading of MNDE ownership around the ecosystem, so we should not allow Liquidy Mining Gauges for large pools that are private by design of by lack of community participation, because that leads to a feedback loop of MNDE concentration rather than decentralization”

4 Likes

Correction: MNDE numbers in original post are /day, not /week.

thank you, i agree with this. But let’s keep it simpler:

Set 2 criteria for liquidity gauges.

“All liquidity gauges should be associated with a pool that is open, and free for users to add or remove their liquidity to.”

And also, “All liquidity gauges should distribute a majority (>50%) to at least 2 or more users. (No 1 entity, protocol or individual should receive >50% of MNDE tokens from a single gauge).” This helps to achieve the goal of decentralizing Marinade.

Liquidity gauges are not perfect but a step in the right direction!

2 Likes

I am adding just a technical comment without leaning pro or cons the proposal:

This is hard to enforce. If there is a publicly accessible pool where users pulled out their liquidity (for whatever reason) or there is a pool which is public but new and there is a first user depositing, this would mean Marinade should stop distribute the liquidity allocation. This would mean, that there needs to be a service, that checks who is the liquidity provider and how many are there and stop/start distributing MNDE allocation at that time. Also using another wallet by the same entity is hard to detect and therefore effectively avoids this rule.

Therefore I would suggest to rephrase it.

2 Likes

I agree that this setup seems to be unfair to other liquidity gauge setups, and not adhering to the principles set out by the LM program. My impression is that other protocols are using their purchased MNDE to drive tvl of mSOL and to pass MNDE to the community to help with decentralized governance, as per the aims of the program.

If the Marinade community felt the Lifinity offer was compelling to support mSOL/Marinade (as per the theme of the request for a grant) or for whatever reason, then an MNDE grant was perhaps appropriate, but I see that as a different topic to giving away MNDE to be used in liquidity gauge participation for no additional value, and in a very different setup than what was seemingly intended

2 Likes

I’d assume the solution is as simple as creating a new proposal that disables Lifinity’s participation in Liquidity Mining Gauges. Alternatively, Lifinity can commit to building a mechanism for users to claim MNDE that it acquires through the mining gauges.

2 Likes

I believe the liquidity gauges are working as intended and the way that Lifinity is operating is beneficial to Marinade.

Growth of TVL and Demand

Is there any evidence that MNDE emissions on other protocols are driving mSOL demand or growing TVL (rather than staying relatively static, as they are on Lifinity)? People seem to assume this, but I haven’t seen any data that corroborates it.

To be clear, I mean perpetual TVL growth. When a protocol initially adds MNDE emissions, of course TVL will grow – users come to take advantage of the increased APR. But does that continue forever? I don’t see why it would. Assuming MNDE emissions stay fixed at a certain amount, TVL will grow to the point of capturing the increased APR, but will stop when deposits become crowded and the APR becomes sufficiently low. In other words, TVL growth plateaus.

Viewed in this way, we can see that essentially the same thing happens with Lifinity. When our MNDE emissions began, our mSOL TVL instantly grew by $500k, and that’s where it plateaued. The only difference is that our TVL is not subject to market forces like on other protocols, where if the value of MNDE increases TVL will tend to increase, and if the value of MNDE decreases TVL will tend to decrease. Lifinity provides a stable amount of assets regardless of the price of MNDE.

Participation and Reward Usage

To say that we don’t allow the external community to participate is inaccurate. Our protocol simply works differently than other DEXs. Usually, LPs are external to the DEX and provide the assets to provide liquidity with. In Lifinity’s case, the protocol provides the assets used to provide liquidity, and token holders are the indirect LPs. Thus, the way to participate in liquidity provision for many of Lifinity’s pools is by acquiring its native tokens.

Saying that the protocol “keeps all the MNDE rewards” is also misleading. While Lifinity doesn’t distribute MNDE to LPs like other DEXs do, the MNDE becomes part of the protocol-owned liquidity (POL), which ultimately belongs to token holders. If token holders want us to switch to distributing MNDE, we have the infrastructure in place to do that.

In fact, Lifinity is able to distribute MNDE to an extremely wide user base. Imagine if Raydium or Orca distributed MNDE to all RAY or ORCA holders rather than just a limited set of LPs. That is what Lifinity does – when the time comes to distribute our MNDE, it will go to a much larger group of people than just LPs.

By the way, we first proposed being rewarded based on the volume we generate since that seemed to make the most sense (rewards are commensurate to utility provided). Marinade told us that this wouldn’t work because of the already implemented gauge system and that we should ask for a grant instead (which we did).

We had also mentioned prior to our proposal passing that if Marinade preferred that we don’t lock the MNDE we receive and instead distribute it to our token holders that we would do so, but no one responded with a request for us to do so. And this makes sense; what protocol wouldn’t want a guarantee that its liquidity mining (LM) rewards would all be locked instead of sold (as I believe most LM rewards are on other protocols, leading to constant sell pressure)? This is basically impossible to accomplish on DEXs with a standard LM model because all individual LPs would have to agree to have their MNDE rewards locked and used for voting by the protocol. Lifinity is uniquely positioned to do this since LPs = token holders, and this is beneficial to Marinade because, again, we lock instead of sell rewards. Further, as I’ve elaborated elsewhere, this has the potential to spark the MNDE Wars, since other protocols would have to purchase MNDE and lock it to keep their current share of MNDE emissions. Anyhow, we are still happy to switch to distributing MNDE rewards rather than locking them if this is something that Marinade wants us to do.

Volume

Regarding the cited volumes on Lifinity and Orca, right now 24h volume on Lifinity is $1,122,934 while it’s $880,847 on Orca. So it seems like you just happened to select a point in time when Orca looked better. In general, we should be looking at longer time frames to meaningfully compare volumes. We should also keep in mind that Orca has higher fees (0.2% vs 0.08%, and they will later increase fees when they add protocol fees), doesn’t concentrate its liquidity as much (average of ~10x vs 100x), and is bound to get extra volume because it is integrated into some frontends (and thus doesn’t need to compete on price like they would on Jupiter).

Conclusion

Our gauge works in exactly the same way as other protocols’ gauges do, so there is no “unfair advantage”. Our share of rewards has been increasing since 1. we lock our rewards and 2. our token holders have bought MNDE, locked it, and voted for our pool (I am aware of two such relatively large players).

If Marinade wants us to use our MNDE rewards differently than we currently do, happy to discuss!

6 Likes

My reply above addresses the points made here as well, happy to elaborate if the connection is unclear.

1 Like

We provide continuous value through providing deep liquidity for mSOL-USDC. Additionally, the creation of our custom mSOL oracle led to a mSOL-UXD pool being created and liquidity provided in it.

Not sure what you mean by “what was seemingly intended”. The purpose of our proposal was clear from the start and has been executed as outlined.

3 Likes

While that would address the case if @CryptoBatman thought that Lifinity was problematic, they do not seem to have a problem with the protocol itself - the actual issue OP describes are closed pools.

Given the overhead and time involved on onchain voting, it’s best if a proposal addresses what people believe to be the root cause. That way it’s handled for future cases as well.

I’d like to second vytick’s comment here. This would not only be fiddly to measure but non-trivial to enforce, while being trivial to get around - let’s keep in mind that in most cases nobody will know individuals or protocols, only addresses.

It would also likely have unintended consequences. Vytick already mentioned the case where a pool could suddenly have its liquidity incentives yanked because and address happened to go above 50%.

More importantly, I could also see it being a disincentive for professional market-makers coming into underserved pairs.

If you have even just $100k of liquidity to provide, it looks like the only Raydium mSOL pool you could participate in would be mSOL-USDC. Meanwhile, MNDE-mSOL only has $67K of liquidity, so any amount above $33K would mean you wouldn’t be incentivized to market-make on it.

That would skew liquidity towards pairs which are already well served, which is precisely the opposite of what mSOL or MNDE users should want.

1 Like

Makes sense, thanks for the contribution @PlayerOfBits and @vytick

A simple rule would be:

“All liquidity gauges should be associated with a pool that is open, and free for users to add or remove their liquidity to.”

2 Likes

I do understand this, but does not solve 2 crucial points:

  1. The flywheel effect of Lifinity constantly relocking more incentives, and voting for their own pool, without a corresponding increase or decrease of liquidity.

  2. The fact that if the gauge had more incentives, or less, Lifinity would provide the same $1M of TVL, and interested farmers are locked out of this vault.

Essentially, this gauge is a tool to pump your token while not a lever to increase or decrease mSOL liquidity, as more incentives means more value for LFNTY and not Marinade.

3 Likes

While it was a coincidence that Orca had more volume than Lifinity at a time, it is also important to ask why. Did Lifinity stop market making for a few days due to volatility, thus Orca had a higher volume? what are the variables that led to this happening (only the closed-source lifinity team can explain in detail).

Also, it looks like Lifinity and Orca whirlpools is neck to neck in volume (evident by this discussion), yet with nowhere near the incentives.

2 Likes
  1. So if I understand you correctly, if we distribute the MNDE so that our voting power doesn’t increase, problem solved? Regardless, I think the correct way to think about this is that it’s what Lifinity gets for not contributing to increased sell pressure on MNDE. Other protocols could keep their share of the MNDE rewards constant in lockstep with us – just have liquidity miners lock their MNDE rewards and vote for their gauge.

  2. The stable TVL is good for Marinade on the downside (if MNDE becomes less valuable, we still provide the same amount of assets, even though it will tend to decrease on other protocols) and bad on the upside (vice versa). This is the opposite of protocols with non-stable TVL. Since we can’t know whether the value of MNDE will go up or down, we can say that on average the net effect of both models is essentially the same (good 50% of the time, bad 50% of the time). The TVL of our pools are limited for good reasons as explained elsewhere (see the original proposal).

3 Likes

The mechanism by which Lifinity provides liquidity is public. You don’t need to see our code and spend hours interpreting it in order to understand the reasons why volume varied over some time period.

Obviously, we didn’t “stop market making for a few days due to volatility” - this is easily verifiable on an explorer like Solscan.

If I had to guess, the main reason is that Orca requires arbitrageurs to adjust its prices and thus may see more trading during volatility, while Lifinity uses an oracle to adjust its prices and therefore doesn’t need arbitragers’ trades to reflect up-to-date prices.

Lifinity does have more incentives, which is simply a consequence of more MNDE voting for our pool. This is how liquidity gauges work - they don’t dish out rewards according to volume generated (which, remember, is what we originally proposed, so we’re certainly not against it in principal) but purely based on MNDE voting weight. If there is a broad dislike of how gauges work, perhaps that should be discussed. But Lifinity is not “misusing” the gauges.

2 Likes
  1. For other protocol to do the same, that will require them to convince their LPs, and that’s good. Our core value is that there are a lot, a lot, of MNDE holders to convince, that’s decentralization. Other protocols transfer ownership of MNDE to their multiple LPs, and yes, that’s what we want even if it can increase MNDE selling pressure. What we do to remove selling pressure is to build utility for MNDE. Concentrating MNDE is not a sustainable way to lower selling pressure.

  2. The amount of MNDE you receive is not related to the amount of assets in the pool. The % of MNDE you receive, with the current setup, will only increase given that it is a single entity that uses the MNDE to vote on the same gauge that feeds it. It is a self-reinforcing feedback loop.
    Other protocol’s individual contributors have normally distributed interests, and most vote on different gauges. In that case we’ve decentralization because multiple individuals, while in your case we have a single entity.

Question regarding feedback loops: Has someone made the calculation? How much % of the MNDE distribution will Lifinity have in 1 year? in 4 years? how much MNDE is that estimate in 1 year, 4 years? This is considering the current incentives distribution constant and this feedback loop

2 Likes
  1. I’ve already elaborated on this earlier, but our MNDE is not really concentrated. Sure, it’s held in a single address. But the real ownership of that MNDE belongs to our thousands of token holders. After the 1 year lock period in the terms of the grant ends, token holders can vote to have that MNDE distributed to them if they want. Again, the MNDE we receive goes to a much broader group of people than any other LM gauge since it goes to all token holders and not just a limited set of LPs. Also, just to reiterate, like we’ve said from the very start, we’re happy to begin distributing MNDE rewards instead of locking them if Marinade as a whole prefers that.

  2. Yes, the amount of MNDE we receive is not related to the amount of assets in our pool. That’s how Marinade’s gauges work. We didn’t design the gauges. You talk of this aspect of the gauges as if it’s a bad thing, and perhaps it is (I’m not commenting on that right now), but regardless that has nothing to do with Lifinity. It’s about the gauges and how they work. Lifinity is simply accumulating MNDE because it likes MNDE and it’s part of the terms of the grant, and according to how the gauges are designed this happens to increase our share of rewards. Regarding other protocols voting on different gauges, what are some examples of this?

Keep in mind that any calculation of a feedback loop comes with assumptions about how other protocols will respond. Will they buy more MNDE to boost their share in response to seeing their share decrease or not?

3 Likes

Do they vote on what to do with the MNDE? can they move their share to their wallet?

Other protocols distribute the MNDE to LPs, meaning the incentives get distributed, not concentrated under the protocol decision. Other protocols have MNDE acquired in the token exchange, but they do not have a feedback loop using that MNDE to get more MNDE for themselves (because the MNDE incentives get distributed)
That’s at least what I understand, and that’s the environment that the gauges were designed to work in.

The problem here is the feedback loop, and not Lifinity in particular, any closed AMM with a gauge will present the same problem

3 Likes