Solver rewards
The protocol is currently subsidizing the solver competition on all chains it operates on, by rewarding solvers on a weekly basis (currently, every Tuesday) with rewards paid in COW. Solvers are rewarded based on their performance as solvers (i.e., when participating in the standard solver competition) as specified by CIP-20, CIP-36, CIP-38, CIP-48 CIP-57 and CIP-67. Solver rewards for participating in the price estimation competition and providing quotes that are needed for the gas estimates and limit price computations of market orders are specified in CIP-27 and CIP-36.
For the interested reader, the main source of truth for the weekly payments to solvers is this Dune dashboard. The dashboard is populated with data aggregated by scripts within the solver-rewards repository.
Solver competition rewards (CIPs 20, 36, 38, 48, 57, 67)
Solver rewards are computed using a mechanism akin to a Vickrey–Clarke–Groves mechanism (a generalization of a second-price auction to combinatorial auctions). First, each solver proposes multiple solutions. Each solution contains a price vector and a list of trades to execute, which can be used to compute the solution's score. The protocol then selects the winning solutions (and winning solvers) using a fair combinatorial auction, which first filters out the solutions deemed unfair and then selects the combination of fair solutions that maximizes the total score of the auction (see here for more details).
From the protocol's perspective, a solution executed on chain must equal the solver's initial commitment.
The payment to the winning solver is
Here is the sum of the scores of all winning solutions in the auction and is the sum of the scores of solver 's winning solutions that reverted. Finally, is the total score of a counterfactual auction in which all bids from solver are removed from the set of bids that survive the fairness filtering.
The payment calculation can result in a negative figure, in which case the solver is required to pay the amount to the protocol.
The payment is capped from above and below using the function that is chain-specific, and is determined by the following values:
- Ethereum mainnet, Arbitrum, and Base chain: and ,
- Gnosis Chain: .
- Avalanche: , .
- Polygon: , .
- Lens: