Penalty Cap Redesign
Simple Summary
This CIP changes the cap on penalties for unsuccessful settlements from a fixed absolute amount to a relative amount of proposed trade volume. The size of these relative caps is chosen to be as small as possible while still retaining a desired settlement success rate.
Motivation
The auction mechanism of CoW Protocol includes a penalty for solvers whose solutions were selected as winners but whose settlements were not successfully executed. The current monetary penalties follow the same second-price logic as rewards, with penalties being capped at a chain-specific absolute value.
One issue with the current penalty is that it serves multiple purposes within the mechanism. On the one hand, the size of penalties implies a trade-off between quality of proposed prices, which improves with small penalties, and speed of execution, which improves with large penalties. On the other hand, penalties provide a form of censorship resistance since it is costly to block the execution of an order by proposing solutions which cannot be executed.
The size of the cap was originally set in CIP-20 and tried to address both purposes. This can lead to large caps with a negative impact on execution quality for small orders, while at the same time not providing sufficient censorship resistance for larger orders. We propose to set the cap from first principles based on the trade-off of execution quality and execution speed.
This change will impact the distribution of rewards and penalties between solvers but not the aggregate total payment to solvers, due to consistency rewards as specified in CIP-85. Censorship resistance will be addressed separately in the future.
Specification
Comparing b5c361d2eaf5ac366a04258ae8128781650f77d7...12547af286d32e8875c672888f710193647140b3 · cowprotocol/docs · GitHub (PR)
Each order will have a penalty cap associated with it in each auction, expressed in the native token of the chain.
The cap for penalties for a given solver in a given auction is the sum of all penalty caps of orders which were not executed in time or not executed at all.
For partially fillable orders, the penalty cap is scaled to the executed fraction.
Example
Suppose a solver wins the right to execute three orders, two of which are not executed. Furthermore, the uncapped penalty for said solver in this auction is 0.02 ETH and the penalty caps associated with the two orders which were not executed are 0.001ETH and 0.005ETH. Then the capped penalty for the solver is 0.006ETH.
Initially, the cap for each order is chosen as a fraction of the quote for an order. The fraction depends on the chain and on whether the traded tokens are correlated.
The concrete values are as follows.
Uncorrelated tokens:
- Ethereum mainnet: 4 bps
- Gnosis: 3 bps
- Arbitrum: 1 bps
- Base: 2 bps
- Avalanche: 2 bps
- Polygon: 3 bps
- BNB: 1 bps
- Linea: 2 bps
- Ink: 1 bps
- Plasma: 1 bps
Correlated tokens:
- All chains: 0.1 bps
Additionally, the initial cap will be bounded by the equivalent of $20.
The classification into correlated and uncorrelated token pairs follows the same logic used in determining the protocol volume fee. The quote of an order is the buy amount with all volume fees deducted for sell orders and the sell amount with all volume fees added for buy orders.
Example
For an order selling 9 wstETH for wETH with a quoted amount of 10 wETH, the cap for correlated tokens, 0.1 bps of the quoted amount, corresponds to 0.0001 ETH. The cap for that order would thus be chosen as 0.0001 ETH.
The core team has a mandate to change the penalty cap per order within the interval [0bps, 10bps], if needed, to tune the trade-off between competitive prices and fast execution. Any change to the penalty cap has to be announced in advance to solvers and will be reflected in the documentation on docs.cow.fi.
Rational
The current cap for penalties was originally defined in CIP-20. Its size was based on a symmetry argument which neither addresses strategic implications of caps, nor censorship resistance. Subsequent changes to reward caps, e.g. in CIP-36 or CIP-74, did not change the general logic of the choice of penalty caps. The proposed cap in this CIP, in contrast, is derived from first principles with a focus on encouraging desirable strategic behavior of solvers.
One main driver for unsuccessful settlements is price movements of tokens. If the price moves against them enough, a solver is better off if their solution does not settle and they pay a penalty compared to their solution settling at the new price.
For a successful protocol we want to ensure swift execution of trading intents, giving bounds on settlement success rates p_success. Given such a bound for success rates, the penalty cap for an order is set such that solvers settle with probability p_success, given estimates about price movements during the window of exclusivity, i.e., the time between the /settle notification and the deadline by which solutions to an auction need to be settled. For now, we propose to use separate fixed relative caps for two classes of token pairs, correlated and uncorrelated token pairs. Caps are fitted to achieve around 92% success rate using Binance data for price movements.
The window of exclusivity used for different chains are as follows. The value for main net is based on statistical data. All other chains follow the formula floor((submission_deadline - 0.5) * block_time) with values as configured in the autopilot.
- Ethereum mainnet: 26s
- Gnosis: 12s
- Arbitrum: 2s
- Base: 7s
- Avalanche: 7s
- Polygon: 11s
- BNB: 2s
- Linea: 7s
- Ink: 4s
- Plasma: 4s
Looking at the 10 most traded correlated and uncorrelated tokens, these exclusivity times result in the caps proposed above. A notebook containing this the computation can be found on GitHub.
While we start with a fixed cap per class of token pair, an approach more tailored to the specific token pair could be used in the future. We have tested different approaches, e.g. based on price movements in the last 24h hours which result in a more stable success rate at the cost of additional complexity in computing penalty caps.
For caps in the proposed interval [0bps, 10bps], the expected impact on bidding is similar to the current mechanism. Solvers need to take the cap into account for optimal bidding, see this forum post.
Future initiatives of reducing settlement deadlines will reduce penalty caps, as expected price variations decrease given a shorter exclusivity window.
Note that the change to penalties is not intended to change the total payment to solvers. The aggregate of rewards and penalties is fixed to a fraction of protocol revenue, see CIP-85. This does not change with this proposal. What changes is implied solver behavior and distribution of rewards between solvers.
A notebook comparing current and proposed rewards can be found on GitHub.
Update 2026-08-09:
- Values for caps and exclusivity times were updated.
- A global absolute cap for penalties was added. It reduces penalty caps for large orders.
Update 2026-08-18:
- A link to a docs PR was added.

