CIP-3: Trading Fee discount for COW holders

CIP: 3
title: Trading fee discount for COW holders
author: @netrunner.eth, @anna
status: Active
created: 2022-02-17
requires: 
    1. CIP-draft: Enable Swapping of vCOW to COW

Update 31/03/2022

Vote passed with 41M votes in favour (399k against) and has been executed. Details available on cow.eth Snapshot here

Update 21/03/2022

This proposal has been moved to the voting phase. Voting is available on cow.eth snapshot here

Summary - Trading Fee discount for COW holders

The purpose of this CIP is to gather support within the community to pass a vote to allow a reduction in trading fees for COW holders. A token based fee discount will improve the tokens’ utility and foster a healthy ecosystem for users of the protocol, COW holders and the DAO.

Motivation

By rewarding COW token holders with a trading fee discount on the CowSwap platform, demand for COW tokens will grow and help make CowSwap a hub of activity for DeFi.

Goals:

  • Improve utility for the COW token and increase demand for it;
  • Reward DAO members for holding COW;
  • Higher demand for the token will encourage further interactions with the Cow Protocol and facilitate its growth.

Proposal

While it is envisioned to implement a more elaborate fee discount system long term, this CIP proposes to launch with a simple fee discount mechanism to accommodate “CIP-Enable Swapping of vCOW to COW” and be implemented on time in case the token becomes transferable. It will allow CowDAO to reward and incentivize long term holding of the token.

A simple tier system is proposed that would allow to reward different user groups adequately:

Tiers:
Having multiple tiers will ensure that discounts can be offered to almost everyone, but at the same time large token holders also feel appreciated. It will also help to create utility and value for the token: in theory, the more tiers (or even a dynamic fee model) would have the largest impact. The closer a user is to the lower bound of their tier, the less likely they are to sell any tokens. As a dynamic model or too many tiers are not practical for implementation, it is proposed to initially launch with 4 tiers:

  • Tier 1 1,000 COW Discount: 5%
  • Tier 2 10,000 COW Discount: 10%
  • Tier 3 100,000 COW Discount: 20%
  • Tier 4 1,000,000 COW Discount: 40%

Scope:
Note that this proposal is within the scope of what’s technically feasible to be implemented until vCOW might become swappable for COW. Eligibility criteria:

  • Simple hodling of the token in the trading wallet makes traders eligible
  • Combined balance of vCOW and COW is accounted for per network
  • Time scope of proposal: the token related fee discounts will end when any of the conditions are met: the funds dedicated for this purpose run out, or after 6 months, or when CowDAO decides to end the program. It is expected that CowDAO will evaluate the success of the fee discounts and make appropriate adjustments if needed.

Costs:
As Cow Protocol is currently only imposing a fee that’s large enough to cover users’ gas costs, any subsidies provided are directly taken from CowDAO’s treasury. To limit the expenses of this program, especially in an environment where gas costs are little predictable, it is proposed to allocate a certain amount of funding for this fee subsidy program. Specifically, it is proposed to send 60 ETH to the same Safe that is already handling the Solver reimbursements and rewards (as defined in CIP-2).
It is proposed to use CowDAO’s ETH to finance the subsidies, rather than leveraging COW Tokens, as this program aims to increase demand for COW and subsequently reduce its sell pressure.

Rough estimation of gas costs for this program:

  • Based on the airdrop distribution, there are currently ~7K accounts who fall in tier 1 (out of which 5.5K are power* CowSwap traders); ~1K accounts that fall in tier 2 (out of which 500 are power* CowSwap traders); ~40 accounts who fall in tier 3 (out of which 3 are power CowSwap traders); and ~11 accounts in tier 4 (out of which 1 is a CowSwap power trader). [*Power traders defined by accounts that were granted user options as part of the airdrop allocations.] Find the full airdrop distribution list here.
  • Over the last 30 days, solvers spent 338ETH in gas costs.
  • Assuming that 90% of Cow Protocol’s trading activity is generated via it’s power users, proportionally distributed amongst the different tiers (92% of trades at 5% discount; 8% trades at 10% discount; 0.05% trades at 20% discount; and 0.02% trades at 40% discount), the subsidy cost for a 30-days-period would equal ~20 ETH. Note that this is a very rough calculation, as many factors defining gas costs are not considered here and a proportional distribution does not fully reflect reality.
  • The subsidy needed for GnosisChain is significantly lower as gas costs are marginal. The monthly funding needed would be <2 xDAI and is not worth the tx cost for reimbursing solvers. Therefore, it is proposed that solvers are covering the cost for the fee subsidy on GnosisChain. This can be retrospectively considered when a strategy for reimbursements and rewards of solvers on other networks is being discussed.
  • As the proposed fee discount is a new program that should be re-evaluated, it is proposed to only provide funding for an estimated 3 months period: 60ETH.

This program will end if:

  • The allotted funds are fully used.
  • 6 months have passed, or
  • If CowDAO votes to modify the program.

In the latter two cases the remaining funds are to be sent back to the CowDAO’s treasury. It will lie within the responsibility of Cow Service LDA to create public tracking (likely in the form of a Dune Dashboard) of the discount related spending, to send a timely signal to the DAO when the funds are close to run out, and to stop the program if any one of the conditions to stop the fee discount are met. It is CowDAO’s responsibility to assess the impact of this program and re-evaluate any additional subsidies and adjustments to this program in the future.

Preventing users from gaming the system

When discussing fee discounts, there needs to be a common understanding of the fees that are being charged by CowDAO today. CowDAO did not yet invoke any volume based fee, instead it is simply charging users the expected gas costs for their transaction. Hence, any gaming of the fee discount tiers that would cost > x% of the gas cost of one transaction [where x is depending on the tier], is not economically viable. Therefore, it seems not yet a requirement to enforce locking of COW for eligibility to the discounts. Though, it is recommended to discuss token locks for future fee discount proposals, as any locking of COW also comes with additional economic benefits for its ecosystem.
Once CowDAO decides on taking a volume based fee, the fee discount mechanism likely has to be revised, to avoid exploits by users who are not long term holders of COW.

As mentioned, a preferable scenario for the future would be that fee discounts are facilitated only to users who are locking their COW for a certain time period. It could then also be considered to allow for fee discounts across networks, basically allowing users to hold a balance on any network(s) but be eligible for the discount on other networks as well; this is however not practical as long as tokens aren’t locked up, as users could buy&sell COW on networks with low gas costs such as Gnosis Chain to benefit from large discounts on more expensive networks. As mentioned, lock contracts are out of scope for this proposal. This proposal aims to facilitate a first, simplified fee discount mechanism to test its impact on users.

Prior to the end of this program, a NEW Trading Fee Discount proposal should be tabled by this community using data from the previous period to assess the program and inform its next phase. Also, in case CowDAO decides to invoke a volume based fee, the fee discount tiers should likewise receive another review to ensure that incentives to exploit the fee discount have not increased.

Execution

This proposal is dependent on the successful execution of “CIP-draft: Enable Swapping of vCOW to COW 8”. It is proposed to execute both proposals together in order to have discounts available once COW becomes transferable.

Safe Transaction Hash

0x84ecca5b5e2d4a6c7ecf5a2bb8c9cf73ec7546e8c8e3185e22454c5b328c817a

Safe Transaction Data

to: 0xA03be496e67Ec29bC62F01a428683D7F9c204930
value: 60000000000000000000
data: 0x
operation: 0
safeTxGas: 0
baseGas: 0
gasPrice: 0
gasToken: 0x0000000000000000000000000000000000000000
refundReceiver: 0x0000000000000000000000000000000000000000
nonce: 1

Transaction Simulation

11 Likes

The idea is cool, i’m for it.

Why 12 months? Why do we need a limit on this? I don’t see the point, we can just apply a discount until we change it, no matter if the change comes in 3months or 3 years.

For COW it would be much better if the discount only applies to people locking their tokens. Waiting 30 days to get a discount isn’t that great, it doesn’t work to attract new participants. Meanwhile if anyone can lock tokens and get the discount right away it will serve as incentive for new participants.

My assumption is: a new trader do some trades to test then if he really wants to keep using CowSwap he probably wants the discount asap (not 30 days later). That said, for how long the lock should be is something we can figure out. We can do a blind rule (all get the same discount) but we can also give more discount if people lock their tokens for longer periods. Nevertheless the longer the period less changes we can make in the future. I mean, we can’t give something and take it back without notice. In this scenario we may need to ensure people get the discount for the period committed (no matter what).

Meanwhile we should analyse some data. Forked this https://dune.xyz/queries/286183/540897 into https://dune.xyz/queries/430122?Time%20interval=Week so we can see how the weekly and monthly activity is.
So far, we have around 3k active traders per week and probably more than 10k monthly active traders. I don’t have doubts we can improve this numbers but not with a 10% discount. If we want to increase the amount of active traders we probably need to think in bigger discounts, for simplicity I would say 50% fee discount. Is it viable and for how long? Not really sure but 10% is not enough (clearly better than 0 but not good enough to attract new traders).

Personalty I will gladly take all my airdrop and lock it for one year or even more if I get a 50% discount in trading fees. It’s all about how much people believe in the COW token economics and use cases (nor exactly the same as price, price is just the result of current supply/demand and many times not relevant in the long term).

Also, I would like to see something related to solvers in this draft. Traders can’t get a discount without making sure solvers are paid. It seems trivial but we need to ensure everyone is happy with any discount mechanism. Without solvers CowSwap doesn’t work meaning everyone needs proper incentive.

5 Likes

All good points.

  • The 12 month review was put in the proposal to ensure the DAO would ensure that the program was still required and that it is of Net benefit to the DAO.

  • The intention behind the 30 day hold was to prevent abuse. For example, a trader may purchase 1x $COW token and then receive a 10% discount on their trade. Upon cessation, they immediately sell the $COW token. This is not a good outcome. However, if a user of CowSwap holds their $COW token for a period of time (e.g. 30 days or any length the DAO deems appropriate or stakes the token for example), then they can access the discount preventing abuse of the system. Hope that makes sense.

I like the idea.

However, I think we could explore working with the surplus instead of the fee to protect the solvers. $COW holders could retain the 100% of the surplus while non-holders get penalized, sending a percentage of their surplus to the solvers or the treasury.

2 Likes

Great idea! However, from a token economic perspective, I’d suggest that the discount be made in tiers based on how much the trader holds. Say 1k gives a discount of X, then 10k is discounted by 2x, 10^nK discounted by (n-1)X. This would also drive demand for the token to those who value the fee discount most (users). Of course the discount function needs to be bounded above, but I think the point is clear.

I also like the idea of having held it for a certain number of days s as you mentioned (however from a backend perspective this is slightly more difficult to compute on the fly)

5 Likes

@bh2smith’s two points are very important. I’d like to add two comments.

I think for someone to receive a discount they should be holding some type of time-locked token (e.g. veCOW).

Since the fees are proportional to the value being traded, the discount should also be proportional to the amount of tokens held, capped to a certain limit of value traded. If not, then accounts that trade millions (and can save thousands of dollars in fees) would need to own the same amount of account tokens for people that trade a few thousand dollars (and therefore could only save a few hundred from a fee discount).

For instance, holding $10k worth of veCOW should give you a 10% fee discount for trades up to $100k.

1 Like

Note that the protocol does not currently charge fees according to the trade size. Only fees at the moment are for execution costs (not proportional to the volume of the trade). So I’m not entirely sure, at least for the moment, that the discount needs to be related to the size of the trade.

Perhaps protocol fees as a function of trade size will eventually become a thing - as they would generate some revenue to be distributed to stake holders & solvers.

In either case it might make sense to put a lower bound on the trade size before discounts come into play. Since low volume trades don’t necessarily contribute to COWs :cow: :cow2:.

4 Likes

Oh I see, I did a quick test before posting this and I noticed I was getting lower fees for lower trade sizes. That could be because large volumes occasionally require more complex routes.

Thanks for the clarification. I agree that putting a low blind makes sense.

1 Like

Definitely need people LOCKING tokens away to help the growth of the protocol and its future staying power. This below may be a lil extreme in terms of % or time of lock, but you get the point. We should encourage people lock if you want the best discount and highest LP rewards (aside from the Solvers, which would prob be an entirely diff thing). Remember, if CoW Swap wants to become a major DEX player out there, there’s gotta be a reason to come and spend time in this ecosystem. The liquidity and hype will follow when volume starts coming in and the snowball effect hits.

I think we need to look at Uniswap and others to see how we can improve upon their mistakes of their LP incentive model and enhance CoW Swap with a veToken model that drives $vCoW adoption.

  • 50% trade fee discount for a 4 year lock + LP incentives + largest voting power.

  • 40% trading fee discount for a 3 year lock + LP incentives + voting power

  • 30% trading fee discount for a 2 year lock + LP incentives + voting power

  • 20% trading fee discount for a 6 month lock + LP incentives + voting power

  • 10% trading fee discount for a year lock + LP incentives, however this tier does not have voting power at all

$vCoW holders who don’t want to lock at all can stake to earn a smaller portion of the LP and trading fees dependent on their size of tokens staked. Also, this would apply to lockers as well and the size of their tokens locked. You can also get creative by adding the ability to unlock, but with penalties that get paid back to lockers.

If we train Users’ brains to always think they need to be a part of the protocol by staking or locking tokens away, then it’s a win-win for everyone.

I understand the protocol’s rev stream and volume would need to be rocking for all of the above to work but just wanted to throw my 2cents in to ensure we are at least thinking about how a $vCoW holder/locker can benefit from this cool ecosystem just buy buying and staking, at the bare minimum.

I feel being aggressive on the fee discounts w/longer lock periods will help the protocol grow, albeit possibly slower, but with more people feeling included, whether you hold a small or large $vCoW holding. And that’s the biggest thing of all - how do we ensure every person feels a part of this ecosystem?

2 Likes

Should look further into the 1inch offering when it comes to cashback/fee discount.
their model has been very succusful imho

1 Like

What do you think about a “$-box” instead of “time-box” for this fee discounts? The DAO would have to reimburse solvers for the reduced fees they will be receiving for those orders (otherwise they would have a reduced incentive to actually include these discounted orders in settlements).

This way you would change the proposal to something along the lines of “allocate X$ for additional fee subsidies for COW holders/lockers with the following rules…”. The proposal can then be renewed in order to continue the fee subsidy.

I guess some of the details will also depend on CIP-2: Solver Rewards as this defines how solvers are rewarded and reimbursed for their operational costs (i.e. gas costs).

I would vote for this.

It could be much like a bonding curve. For example, the longer one hodl the token, the less swap fee one pays?

" Tier 1; By hodling 100~? Tokens for 30 days, a traders fee’s will be reduced to (%) over time and end up at the maximum fee reduction in this tier EoM".

With the possibility of several fee reduction tiers, all depending on how many tokens one decides to hodl.

1 Like

I agree with a tiered discount. Someone who uses the platform often for large sums would wish to obtain higher tiers to save more.

I also believe anyone who fulfilled the investor option, should receive some type of discount, since they maxed out their option and agreed to sit on that investment for 4 years.

3 Likes

I pretty much agree with everything @Zapps wrote here.

Aggressive for long term lockers who align their incentive with the future of CowSwap. I’d even argue for a extremely long locking (perhaps through bond-like incentive), longer than 4 years.

I agree - locking tokens for discounts makes more sense than just holding them. Also having different tiers based on locked amount/time locked makes a lot of sense to me as well.

That being said, the amount of work-time required for having trading discounts for locked tokens instead of just tokens held is much higher (it would involve an additional smart contract with an audit). Specifically, I don’t think this is something that we can deliver in the short time until the token becomes tradable (unless we rush things along, which is never a good idea with smart contract development :stuck_out_tongue_winking_eye:). Long term, however, I 100% think that tokens should be locked/staked in order to users to be eligible for trading fee discounts.

5 Likes

It’s been a few days since there was activity on this thread. Based on the discussion thread of the CIP “vCOW to COW redemption”, it’s important to focus on adding some utility to the token before making it tradable as it will help reduce sell pressure. Lets work on that and move forward with this proposal to offer fee discount to COW token holders.
Trying to find a consensus between the different suggestions in this forum discussion and looking at what’s technical feasible in a short time period, I would suggest the following:

  • simple holding of token makes users eligible for the discount. Lets not yet make locking a requirement to reduce the burden of writing & auditing a new smart contract, and lets also not require any minimum holding time to reduce the entry barrier.
  • an address’ balance is accounted for per network (GnosisChain balance provides fee discounts for GnosisChain; Mainnet balance for fee discounts on Mainnet). Of course it would be nicer if the overall balance of an address across different networks would count, but this requires more technical ressources and the impact is not huge (not too many addresses should be affected by this).
  • lets introduce different tier levels for rewards. I would propose to start with 4 levels and then adjust it at a later stage if useful. Usually less complexity is better, but having less than 4 tier levels might be insufficient.

I am proposing the following four tiers - not necessarily convinced of them, but helpful to kick off the discussion:

Tier 1 1,000 COW Discount: 5%
Tier 2 10,000 COW Discount: 10%
Tier 3 100,000 COW Discount: 20%
Tier 4 1,000,000 COW Discount: 40%

3 Likes

Yes please, and please share a link - I was trying to dig more into it as well, but somehow couldn’t find the relevant information.

All excellent points, however I think the tiered discount system should not be used in the short term.

Many users of the protocol have not accrued the quantities of tokens suggested to access the discount. Perhaps holders over a certain quantity (e.g. 1000) get access to a 10% discount. This will help drive additional demand for the token.

There also really needs to be some sort of time held check mechanism in place otherwise the incentive will be abused.

3 Likes

If the goal is to reduce sell pressure, then having a single tier of 1K tokens is likely not enough. Users could sell everything but 1K tokens, having multiple tiers could circumvent/reduce the likelihood of such a scenario.
How about removing the 4th tier?

What do you have in mind how users would game the system? For Mainnet, high gas costs make it unfeasible to buy and sell COW for the benefit of fee discounts. On GnosisChain gas is playing less of a factor, but slippage for large trades that are needed to reach the higher tiers would also make gaming a non-sensible matter. As there’s currently no volume based fee, but the fee discount is strictly related to the gas costs, gaming should not be economical viable on neither chain.

1 Like