[BIP-295] Fee Discount for CowSwap Solvers


Balancer contributors have recently been exploring ways to increase non-toxic flow through the protocol. One opportunity which has presented itself is to leverage our close partnership with CowSwap to implement a fee discount when solvers route trades through Balancer liquidity. This would be done by granting the role for calling setSwapFeePercentage to the GPv2Settlement contract - then solvers would pass in interactions which lower the fee on the pool, execute the swap, then return the fee to the previous value. The swap fee could be lowered in this manner by around 50-75% to enable a significant increase in “good flow” to Balancer pools.

Most of Balancer’s protocol fees are generated from yield rather than swaps. There is a chance this proposal leads to more swap fees but even if it does not, one of the most important goals for the Balancer ecosystem is to grow our DEX volume market share. This is likely one of the best chances we have to move the needle on that on Ethereum.


The Maxis will retain the ability to call setSwapFeePercentage on all pool factories so if something unexpected happens and fees are dramatically lowered or raised globally by accident it can be fixed very quickly by the Maxis. Governance can also revoke this role at any time in the future through a future BIP.


If approved, the DAO Multisig eth:0x10A19e7eE7d7F8a52822f6817de8ea18204F2e4f will interact with the Authorizer 0xA331D84eC860Bf466b4CdCcFb4aC09a1B43F3aE6 and call grantRoles with the following arguments:

Roles: 0x3697d13ee45583cf9c2c64a978ab5886bcd07ec2b851efbea2fced982b8f9596,0xc065d550fa98abc242b6baf98e7b2063590675f1ddd81bdb9ea8d8f5c5d52f98,0x7b09f4b61ccfe85436161b0223489b187d9f9158c542b5e6105df147afc78aca,0x15d3918ca8f9895d8906a780f5f402d32707bada7b1b5e7b21b7351257103a35,0xcf5e03a737e4f5ba6d13e23f893a1e0255b362d8ce22e9568e1565fcf92789c7,0x6c3a14f10cbcc5a3f4d0e4e8ad279e7a842735ab188e2b13fb84c6542cc3320c,0x78e9adfe5f05d7114a59d0870d78971192f871f57bb36e2aff2edbe75d425844,0xdee20d81c6075dcc437dbaaf02d316ab255cfcae4a154e04b17abdebc70a5b48,0xd8638fc873fb8c5c0e67c437099a19eb0546fb439dab8babff44196f11d44831,0x1a88f724f61d4985675e65a2ba85b2a985d250dac00d27e06303f4cdabc906ae,0xa5547190e3d59f2bfeb4174ca3454b2f2acaeed644bc7ad7018014516f73f2bd,0x0acc45f3ac7c04369514ee383aad82d5c1eef484fbf9ca5f6d87ad5c5859da40

Which correspond to the roles for calling `setSwapFeePercentage` on the following pool factories

WeightedPool v1


Stable Pool v1


Stable Pool v2


WeightedPool v2

ComposableStablePool v2

WeightedPool v3

ComposableStablePool v3

WeightedPool v4

ComposableStablePool v4

Account: 0x9008D19f58AAbD9eD0D60971565AA8510560ab41

Which corresponds to the address for Cowswap’s GPv2Settlement contract


I like this idea, but would like to see the implementation side of things before putting my support behind granting the permission. Is anything implemented for this yet, or is it still in the idea phase?


Big fan of this idea and collaboration with CowSwap. This can be a game changer for Balancer.

A PoC is being worked on and will hopefully be ready to be shared here by next week @gerg.

1 Like

if I understand the chat correctly with cowswap this doesn’t require any POC work, just their solvers to be aware of this functionality which they can communicate on our behalf about. so theoretically this could be in force as soon as the permission is granted next week

1 Like

I am a huge fan of this approach and think it will give us a well threaded needle for driving up more volume we would have never won. I understand to some degree the thought process behind non-toxic order flow, but to me this solution is really meant for us to increase overall trading fees by becoming more competitive than other dexes. My personal opinion on this v1 approach is that it is good to have a standard 50-75% discount, and is a huge step in the right direction, but i would prefer Balancer has a specific permissioned group of solvers or some type of incentivization loop where the highest swap fee possible is set to win the order, without going over the standard fee set on the pool. Easier said than done of course, and maybe some philosophical hurdles on this, i just feel we are leaving some fees on the table with this approach.

I heavily commend the teams working on this though because it is a rapid turn around and i think the impact will be great for both Balancer and Cowswap. Thank you everyone :smiley:

this is a cool idea indeed. i’m also not sure what the max discount amount would be most prudent, but i do think the DAO should put up a stronger front in terms of only granting gauges for pools that have the DAO as owner. the thinking is that those pools will have the most TVL and cowswap wouldn’t be able to set the swap fees without the DAO being the owner.


looks like a cool idea; though if we go with this logic, why should balancer only give CowSwap solvers the fee discount, but not reduce the swap fee overall for such pools?

Maybe someone else has a better answer to that. Mine would be that invites additional flow, both toxic and non toxic. We’ve proven lowering fees leads to less swap fee apr generally. Our fees are already very low in most cases. I don’t see globally lowering fees further would help much.

We have a better chance of seeing positive results (more volume while swap fee apr stays the same or increases) if we come up with ways to increase non-toxic flow only. Not easy to do of course.

1 Like

Agree that the volume isn’t the only deciding factor, one could argue in fact to raise the swap fee in general, while giving “retail traders” (such as those using CowSwap) a deeper discount. Curious to see how this “fee discrimination” works out.


There is a case where the swap fee should go up for solvers too if the goal is best price for balancer LPs. Balancer and cowswap are not exactly aligned on give and take imo. They can lower fees to give better prices but should also do us a solid and hold or raise when we have the best price already. We leave money on the table with this discount sweeping across everything if we would have won the order anyway. I hope over time we can push for an optimization.

The first step is measurement. Once this is up and running we should ensure that we have a good dune dashboard and/or more advanced analytics to understand the fee-changes cowswap is making, and provide as much data as possible to enable insights as to if cowswap is doing us a solid.

In terms of trusting the CoW:

I’ve been using cowswap for a long time to sell things from multisigs. There’s a signer delay, so setting real tight slippage tolerances can make many trades not go through.

In all of time I have found that one can set quite high tolerances (5% slippage for example) and cowswap doesn’t take advantage (trades come back with 4-6% more than the minout).

While this isn’t very data driven, it’s a good indication that our bovine frens are not the most greedy.