CIP: 21
title: Trading fee discount for COW token holders
author: middleway.eth
status: active
created: 2023-02-09
Update 2023-03-02
The proposal wasn’t able to achieve quorum and consequently the team has implemented the corresponding updates to pause COW token holder fee discounts.
Simple Summary
Fee discounts for COW token holders were introduced in CIP-3, March 2022. The allocated budget for discount is now about to get depleted (59.4 ETH used out of 60 ETH budget).
This proposal is aimed to reflect on the usage of discounts so far, discuss potential changes, and propose a new budget for discounts.
Motivation
Trading fee discounts are a very popular incentive mechanism used across the crypto industry by top CEXs and DEXs. At this point in time, it is one of the important use cases for the COW token, allowing users to realize some benefits already today.
Usage stats
Below is a table sourced from this dune query, showing the number of traders and the total dollar amount spent per discount tier.
discount_tier | num_traders | total_subsidy |
---|---|---|
0.05 | 1374 | 11217.62 |
0.1 | 1305 | 74280.23 |
0.2 | 226 | 19012.47 |
0.4 | 17 | 7143.20 |
Another query helps us to determine the percentage of CoW Swap trades that enjoy a discount due to holding COW: 21% (53k out of 249k)
Looking at the net spending on fee discounts per month, we see a clear decline from April, when the discount was introduced and until July 2022. Since July spending on discounts is ranging $1k-$5k per month.
Those metrics indicate that the fee discount is relatively widely used by many of CoW Swap users where the majority of the budget spent on lower fee discount tiers.
Specification
The fee discount is implemented by producing a lower fee quote to orders of users that hold COW tokens. Fees are collected in the sell token and are converted to ETH at the end of every week in order to cover the execution gas cost. Implementing a fee discount just means the protocol will not fully cover the gas execution cost with the collected fees from orders submitted by COW holders. The proposed budget will be used to cover the mismatch between collected fees and gas execution cost payed out to solvers. No additional technical implementation is required.
It is proposed to allocate 50k DAI as a budget for discounts to COW token holders. If the same burn rate is maintained in the future, the new budget is estimated to last 10 months or more
Rationale
It is proposed that the required 50k DAI will be withdrawn from the treasury management safe, and converted to ETH using a milkman order with Uniswap v3 price checker using DAI-WETH 0.05% fee pool, where the destination safe is the solver rewards safe.
Safe Transaction Data
{
"version": "1.0",
"chainId": "1",
"createdAt": 1676570129290,
"meta": {
"createdFromSafeAddress": "0xcA771eda0c70aA7d053aB1B25004559B918FE662"
},
"transactions": [
{
"to": "0x6B175474E89094C44Da98b954EedeAC495271d0F",
"value": "0",
"data": null,
"contractMethod": {
"inputs": [
{
"name": "spender",
"type": "address"
},
{
"name": "value",
"type": "uint256"
}
],
"name": "approve",
"payable": false
},
"contractInputsValues": {
"spender": "0x11C76AD590ABDFFCD980afEC9ad951B160F02797",
"value": "50000000000000000000000"
}
},
{
"to": "0x11C76AD590ABDFFCD980afEC9ad951B160F02797",
"value": "0",
"data": null,
"contractMethod": {
"inputs": [
{
"name": "amountIn",
"type": "uint256"
},
{
"name": "fromToken",
"type": "address"
},
{
"name": "toToken",
"type": "address"
},
{
"name": "receiver",
"type": "address"
},
{
"name": "priceChecker",
"type": "address"
},
{
"name": "priceCheckerData",
"type": "bytes"
}
],
"name": "requestSwapExactTokensForTokens",
"payable": false
},
"contractInputsValues": {
"amountIn": "50000000000000000000000",
"fromToken": "0x6B175474E89094C44Da98b954EedeAC495271d0F",
"toToken": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",
"receiver": "0xA03be496e67Ec29bC62F01a428683D7F9c204930",
"priceChecker": "0x67FE9d6bbeeccb8c7Fe694BE62E08b5fCB5486D7",
"priceCheckerData": "0x0000000000000000000000000000000000000000000000000000000063ee6e110000000000000000000000002f965935f93718bb66d53a37a97080785657f0ac000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000064000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000020000000000000000000000006b175474e89094c44da98b954eedeac495271d0f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000005"
}
}
]
}
Tenderly Simulation
Link to Tenderly simulation
(Simulation fails because there’s not enough DAI balance in the CoW DAO safe, this will change after the DAI is withdrawn from the treasury management safe)
Another tenderly simulation with state override, that is simulating successfully
Snapshot
Phase 2 Proposal: Link to snapshot