CIP-37: Increasing liquidity for COW token via a programmatic order and an FM-AMM

CIP: <to be assigned when moved to phase 2>
title: Increasing liquidity for COW token via programmatic order framework and FM-AMM
author: Haris Angelidakis, Andrea Canidio, Felix Henneke
status: Draft
created: 2024-01-09

Simple summary

We propose that the DAO allocates 10M COW to increase COW/ETH market liquidity. To avoid price impact, half of the COW contributed will be slowly sold for ETH using a programmatic order. The ETH collected and the remaining COW will then be used as liquidity in a Function Maximizing AMM (FM-AMM): a new type of AMM accessible only by solvers trading via CoW Swap settlement contract. Our research shows that FM-AMM has unique benefits because it eliminates LVR (the excess profits arbitrageurs earn at the expense of LP in a regular AMM) and sandwich attacks, which are currently responsible for the vast majority of MEV on Ethereum. From the DAO’s viewpoint, contributing liquidity to an FM-AMM is equivalent to running a passive investment strategy, which can be helpful for treasury management.

Motivation

The lack of liquidity in the markets for COW tokens deters potential investors, who may be concerned about price volatility and price impact if they need to sell their COW. To address this concern, we propose to:

  • use our programmatic order framework to slowly sell COW for ETH at market price whenever such price is above a certain threshold,
  • use the ETH acquired together with additional COW tokens to seed a function maximizing AMM (or FM-AMM, see our research paper here), which will then continuously supply liquidity to the COW/ETH market.

According to our research, contributing liquidity to an FM-AMM is equivalent to running a passive investment strategy: FM-AMM automatically trades to allocate half of the portfolio’s value to each asset (any other sharing rule can also be implemented). Passive investment strategies are the most common strategy to reduce risks and are the dominant way to invest in traditional financial assets. For example, more than 50% of US shares are held by ETFs implementing passive investment strategies. Therefore, an additional benefit of this scheme is that it introduces an automatic treasury management solution for CoW DAO. Finally, if successful, the scheme can also serve as a template for other DAOs who may need to provide liquidity for their token while automatically managing their treasury.

This proposal aims to test the mechanism at a reasonable scale. If the test is successful, we may request additional funds to scale it up further.

Specification

We propose that the DAO allocates 10M COW to a dedicated SAFE. Using a programmatic order, every day, the SAFE checks whether the price of COW is above a given threshold (to be determined based on the market condition when the proposal is implemented). If the answer is yes, the SAFE creates a partially fillable limit order to sell 20.000 COW for ETH on behalf of the DAO. The proceedings are forwarded to the smart contract charged with running the FM-AMM. As soon as the order is executed, 20.000 COW are also forwarded to the FM-AMM. Hence, every day on which the price of COW is above the threshold, FM-AMM receives 20.000 COW and an equal value in ETH. If the market price of COW is always above the threshold, then the initially allocated amount will be disbursed over approximately 9 months.

FM-AMM will start contributing liquidity to CoW Swap batch as soon as its TVL is sufficiently large. The exact implementation of the FM-AMM will be determined at a later stage, and will probably change as its TVL increases. At least initially, we plan to follow an initial prototype available here. In it, the smart contract pulls the price of COW from an oracle and then chooses the amount of COW to sell x by solving

max_x {(X-x)(Y+p*x)}

Where p is the price of COW in ETH (from the oracle), X and Y are FM-AMM reserves in COW and ETH, respectively. FM-AMM then creates a partially fillable limit order to sell x COW (or sell p*x ETH). Solver competition then determines the price at which this order is executed.

This implementation does not require any change for CoW protocol, nor for solvers. However, it implicitly assumes that the liquidity in FM-AMM is small relative to the market, and hence the oracle price is a good estimation of the price in the solver competition. But if FM-AMM is large, then its decision to trade will have an impact on COW price. Hence, the price before FM-AMM trades (as determined by the oracle) may be very different from the price determined contextually to FM-AMM trading (as determined in the solvers’ competition).

A more sophisticated implementation can eliminate the dependency on the oracle, by asking solvers to propose a sell amount x and a buy amount y (both of which can be negative) for FM-AMM. The winning solver is the one providing more surplus to FM-AMM, where surplus is here calculated as:

(X-x)(Y+y)-X*Y.

We note that already now, certain order types require solvers to specify both sell and buy amounts (i.e., partially fillable limit order). Hence, the above implementation differs from the already supported order types primarily in the way surplus is calculated. We believe it can be easily included in our current infrastructure, but the exact details will be determined at a later stage.

7 Likes

Hi! Thanks for the proposal. I think we could split the post in two parts, as the FM-AMM is a very interesting innovation on itself. Moooo! :cow::rocket:

Now, on the liquidity part - it’s true that COW’s liquidity could be better.

One remark : currently, a large portion of the liquidity is held in a COW/GNO pair on Balancer. Given that most of the trades in/out of COW do not end or start with GNO, this creates a large bottleneck, as the GNO/ETH pool is 80/20, with an increased slippage.

From Karpatkey’s report, I believe that the DAO owns around 2.5M$ worth of POL in this pool.
https://reports.karpatkey.com/?dao=4&month=12&year=2023

Maybe we could reallocate those assets?

  • Using the idle (st)ETH the DAO has, the COW/ETH pool could be reinforced
  • Instead of selling COW, we could sell the GNO for ETH using the same process as outlined in the post.

I understand that, COW being a spinoff of Gnosis, it made sense at some point to have a common liquidity, however now, as the protocol grows, this arrangement shows its age. Unless I’m wrong, I don’t think Gnosis needs COW to ensure its liquidity as well, so a pivot here would be simple to accept for everyone.

Another remark - is the ETH gathered this way going to reach the Balancer COW/ETH pool, or is it going to stay in the FM-AMM contract (pool? How do we call this?) ?

2 Likes

Hi @Yakitori , thanks for your comment. You are correct that the proposal has two elements:

  1. deploy additional liquidity
  2. focus on the COW/ETH market and use an FM-AMM

Also, one could tackle point 2 without necessarily deploying additional liquidity. However, we worry that doing so will not bring about the dramatic improvement we want. For example, currently, purchasing more than, say, USD 20-30k worth of COW in a single trade will likely have a price impact. Our goal is to achieve a situation in which trades of that size have minimal or no impact. To do so, we think it is necessary to deploy additional liquidity.

But your point is well taken: we should consider moving some of the COW/GNO funds into the FM-AMM once it is running.

Concerning your last remark, the ETH gathered by selling COW via the programmatic order will stay in the FM-AMM pool. In other words, we are proposing to deploy additional liquidity to be used exclusively within the FM-AMM pool.

1 Like
  1. Is this new product (for lack of a better term) owned by the DAO? If so, how will it be monetized?

  2. I would be against selling COW at these levels. Additionally, setting some price ceiling would be a bad signal to the market. I would be against any proposal that facilitates this.

  3. I agree with Yakitori that perhaps we change our POL from COW/GNO to COW/ETH. Currently the protocol owns at least 14k GNO and 1.2K ETH.

That being said, it sounds like you’ve developed something valuable and I look forward to seeing how it can be implemented. Congrats!

4 Likes

Hi @0xrbp , thanks for your comment!

  1. The liquidity on FM-AMM can only be accessed by trading on the Cowswap batch. Hence, we expect FM-AMM to add illiquidity and volume to the batch. So, in the beginning, the monetization is indirect and is via the fees that traders on CoWSWap pay (or will pay, see this CIP). This, of course, can change in the future.
  2. What levels are you referring to? The proposal is to programmatically sell at market price as long as the market price is above a pre-determined floor. So, no ceiling is involved.
  3. It is a valid point, and something worth discussing once FM-AMM is up and running: at that point, it may make sense to turn COW/GNO on POL into COW/ETH on a FM-AMM.

And thanks for the encouragement!

GM. Cryptocondom here. COW is my second largest position. I have been a COW accumulator since 2022 and a long term vocal supporter of the protocol.

First, thank you Andrea for taking the time to design such a novel AMM. Your paper was great.

In regards to the current proposal, I absolutely agree that liquidity is an issue for the COW-ETH pair. Whales and funds who recognize the innovation of Cowswap often tell me that they avoid an investment in COW because of our low liquidity. Adding POL to the LP is both reasonable and forward-thinking.

However, the current proposal for liquidity, as it presently stands, is not appropriate imo. Specifically, the CoWamm proposal is effectively selling cow for eth to fund paired liquidity. By launching a one sided position with 10m COW, we are temporarily placing a ceiling on the price vs allowing price discovery in what is arguably one of the most exciting times in cow’s young life…and in a time where we are grossly undervalued compared to the quality of content, revenue production and volume of our project compared to competitors

If our mc was ANYWHERE near fair value, the liquidity portion of the cow amm proposal would be reasonable. However, at present, at barely a $50m mc, I think that the OP should revise this proposal to change the requested amount of 10m COW be decreased or equivalently paired with eth instead.

As several other forum posters have noted (Yakitori et al)…the dao has plenty of eth in the form of several low volume LPs which are not well utilized (GNO-ETH for example). Removing liquidity from these LPs to pair with COW POL would not only solve our liquidity issue but also eliminate the price ceiling we would otherwise be placing on our token appreciation.

In the future, additional COW could also be used for cex listings/etc which would also facilitate growth + liquidity of the project as we continue to expand our services and token utility.

Final thoughts:

  1. COWswap definately needs to grow its liquidity to attract whales and institutional investors who require larger position size
  2. the COWamm is innovative and exciting. deployment is reasonable but not at the current liquidity provision request

Recommendations:

  1. So as not to limit appreciation of the COW token at a time when we are already GROSSLY undervalued, OP should modify this proposal to change the liquidity provision to 10m cow + ETH liquidity pulled from one of our other low volume, highly liquid eth lps (cough gno-eth cough)
18 Likes

GM,

Thank you for communicating this interesting proposal. However, I am sharing the idea put forward by CC.
Liquidity is important but it does not feel right to sell COW for ETH at the current levels. Price action is unfortunately still the best marketing. Putting a celling on the price via constant selling would detrimental to attract new investors creating a negative loop.

6 Likes

+1 for echoing CC’s thoughts. Putting a ceiling on token price is not the optimal method to increase liquidity; pulling the ETH from the GNO pair much more preferable.

4 Likes

Thanks @dkpdkp @cryptocondom @cedric7609 for all your comments!

Let me clarify that we do not propose to have a ceiling. Instead, we will sell a small amount of COW at market price each day for a period of 9 months to 1 year, for a total of 5M COW. The resulting ETH together with an additional 5M COW will be used as liquidity into a FM-AMM.

So, the proposal creates an additional small and temporary sell pressure on COW, which we are not particularly worried about because:

  • it goes together with a number of initiatives aimed at permanently reducing the issuance of new COW or generating buy pressure for COW. For example, this proposal introduces a new protocol fee paid in COW tokens. Also, a different proposal that we will post in the next couple of days will save at least 4M COW yearly (if approved).
  • the prospect of having a much more liquid token may attract new investors, therefore generating buy pressure
  • if other DAOs decide to adopt the same model, we should see much higher volumes on CoWSwap, and, hence, much higher fees.

To summarize, I think the long-term implications of the proposal for the price of COW are unambiguously positive. There is some uncertainty in the short run, but in my view, with a very high probability, the positive impact will dominate also in the short run.

With respect to using other funds. The DAO’s treasury management has two main objectives: to provide liquidity for COW and to diversify risk. This is why, necessarily, some of the DAOs positions don’t involve COW and do not play any role in its liquidity.

Concerning the funds that are already allocated to provide liquidity for COW. They can for sure be used better. But our opinion is that, solely by redirecting existing liquidity, we still won’t reach a situation where “whales and funds” feel comfortable investing in COW. For that, we need additional resources. That is to say: currently, anyone aiming to buy 10/20k USD worth of COW in a single order will probably have some price impact; repurposing existing liquidity may increase these thresholds by 50%; our goal is to increase these thresholds by an order of magnitude, precisely to attract “whales and funds”.

1 Like

Thanks Andrea for the details.

I think that even with the good points you made, it’s still preferable to use some of the ETH to reinforce the pool.

Selling would dilute holders at a low price and without a strong buyback inflow it would weight on the price, that is already very volatile.

Regarding the treasury management, as I explained, there’s nothing that mandates that we keep the GNO liquidity, that yields currently a low APR of 2%. We could simply remove it, store/stake the GNO and add the idle ETH instead.

This:

  • Would improve instantly the liquidity
  • Wouldn’t alter the overall asset allocation. Anyway, Gnosis’s treasury is mainly ETH (ex GNO) so we’re not very diversified in general !
  • Wouldn’t necessarily decrease the current farming. We can move the liquidity to an stETH (or similar) /COW pool to make up for it.

We could also consider incentivizing liquidity (and farming it ourselves) on Hidden Hand, as currently Aura has a 120-125% efficiency.

Selling 5M $COW would yield 1.5M$ of ETH, which is ballpark what we have, liquid, in the treasury. So why not use it? As you said, the buyback mechanisms would yield 4M COW per year - why would we fumble a year of revenue to allow funds to whale in? This isn’t in the interest of COW members.

5 Likes

With respect, this is a terrible rebuttal to the concerns raised. If you’re proposing we not sell the 10m COW except 9months to a year…then it does absolutely nothing to absolve the concerns we have regarding COW liquidity.

COW needs liquidity NOW not a year from now sir. Adding ETH from our GNO LP absolves this problem. Selling COW so slowly that we still have no liquidity does not address the problem you porpose to solve with CoWamm.

17 Likes

CC is spot on. Liq is needed now

7 Likes

As a $COW whale myself, I wouldn’t mind a dip in price right now but a deeper liquidity. I am a long term holder and think the project will do better with increased liquidity now and not in 10 months

3 Likes

Agree with CC selling at these prices wouldn’t make sense

8 Likes

Adding liquidity is a good step but using only tokens at a ceiling isnt. Just pair the $cow with eth from treasury and let price discovery emerge.

6 Likes

It looks like Eth in the treasury is earning 3-5% ish. I’m not sure how much yield the CoWamm would earn, but the opportunity cost of using the treasury eth for the CoWamm seems minimal. Ultimately, we probably need a TWAP to increase liquidity as well, though.

I’d say use the treasury eth to trial the CoWamm. This increases liquidity and demos the CoWamm sooner than a TWAP would.

After some time with the CoWamm we can re-evalute doing a TWAP.

4 Likes

I think @cryptocondom is spot on with this one

6 Likes

Also, I’m not sure how close we are to the fee switch, but selling any treasury cow before that seems really inefficient and should be a last resort imo.

We would certainly get more eth for that cow after the fee switch…

2 Likes

The cow is one of my blue chips . I am so sure of it that it represents 33% of my portfolio. I bought it for the last 6 months, and I have been a user of the protocol for more than a year. Probably the best swap in the space, extremely good technique and great growth potential.

However, it is a pain in neck to buy coin itself because there is no liquidity, which causes a large slippage and unrealistic price movement. It is very disapointing that you dont recongise huge potential and needs of investors and future holders. Its not just price movements that matter, trust in the protocol itself is important, and this is achieved through technique, income, but also liquidity.

That’s why i full support @cryptocondom proposal.

Let the $cow out of box :heart_hands:

6 Likes

Full support to @cryptocondom.

4 Likes