Reward parameters are defined inDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/cowprotocol/solver-rewards/llms.txt
Use this file to discover all available pages before exploring further.
src/config.py as frozen dataclasses. They govern how much COW and native token each solver receives per accounting period and per quote provided.
RewardConfig
Address of the COW token used for reward payments. Uniform across all networks:
0xDEf1CA1fb7FBcDC777520aa7f396b4E015F497aBOn networks where COW is not natively deployed (Avalanche, Polygon, BNB, Linea, Plasma, Ink), a dummy address 0x0000000000000000000000000000000000000006 is used for the on-chain token field in PaymentConfig, while actual COW transfers still go through the mainnet Safe.Fixed COW reward paid per valid quote, expressed in token atoms (18 decimals). Uniform across all networks:
6 × 10¹⁸ atoms = 6 COWUpper bound on the per-quote reward denominated in the network’s native token atoms. The actual reward is the minimum of this cap and the COW-equivalent value. Varies by network — see the full table in Network configuration.
Fraction of solver rewards retained as a service fee before distribution.
Fraction(15, 100) = 15%RewardConfig.from_network() factory
Quote reward cap values by network
| Network | quote_reward_cap_native (atoms) | Human-readable |
|---|---|---|
mainnet | 7 × 10¹⁴ | 0.0007 ETH |
gnosis | 15 × 10¹⁶ | 0.15 xDAI |
arbitrum | 24 × 10¹³ | 0.00024 ETH |
base | 24 × 10¹³ | 0.00024 ETH |
avalanche | 6 × 10¹⁵ | 0.006 AVAX |
polygon | 6 × 10¹⁷ | 0.6 POL |
bnb | 1 × 10¹⁵ | 0.001 BNB |
linea | 3 × 10¹³ | 0.00003 ETH |
plasma | 6 × 10¹⁷ | 0.6 XPL |
ink | 3 × 10¹³ | 0.00003 ETH |
ProtocolFeeConfig
Address of the Safe that receives protocol and partner fees. The same address is used on all supported networks:
0x22af3D38E50ddedeb7C47f36faB321eC3Bb72A76BufferAccountingConfig
Buffer accounting determines which bonding pools receive buffer funds that are swept during settlement accounting.
List of bonding pool addresses that receive buffer surpluses. Not network-specific — the same list applies on every chain.
| Address | Name |
|---|---|
0x5d4020b9261f01b6f8a45db929704b0ad6f5e9e6 | CoW DAO bonding pool |
0x0deb0ae9c4399c51289adb1f3ed83557a56df657 | Rizzolver bonding pool |
0x7719c9c0d35d460b00487a1744394e9525e8a42c | Fractal bonding pool |
PaymentConfig
PaymentConfig consolidates all data needed to propose and sign Safe transactions.
safe-eth-py EthereumNetwork enum variant for the target chain. Used when instantiating the Safe client.Address of the COW token contract on the target network. Set to
0xDEf1CA1fb7FBcDC777520aa7f396b4E015F497aB on mainnet, Gnosis, Arbitrum, and Base. A dummy address (0x0000000000000000000000000000000000000006) is used on networks where COW is not deployed.EIP-55 checksum address of the mainnet Safe holding COW tokens. Read from the
PAYOUTS_SAFE_ADDRESS_MAINNET environment variable.EIP-55 checksum address of the Safe on the target network holding native tokens. Read from the
PAYOUTS_SAFE_ADDRESS environment variable.Private key used to sign Safe transactions.
None when PROPOSER_PK is unset or empty, which triggers dry-run mode.Integer offset added to the current mainnet Safe nonce to allow multiple chains to queue transactions simultaneously without collisions. See Nonce modifier system.
URL of the Safe transaction queue for the COW payment safe (always on mainnet). Format:
https://app.safe.global/transactions/queue?safe=eth:<address>.URL of the Safe transaction queue for the native payment safe on the target network. Format:
https://app.safe.global/transactions/queue?safe=<short_name>:<address>.Checksum address of the wrapped native token (e.g. WETH, WXDAI, WAVAX).
Address of wrapped ETH on the target network. Equals
wrapped_native_token_address on ETH-based chains; differs on Avalanche, Polygon, BNB, Gnosis, and Plasma.Minimum native token payout in wei. Transfers below this threshold are dropped. See the full table in Network configuration.
Minimum COW token payout in atoms. Transfers below this threshold are dropped.
URL of the Notion page documenting how to verify solver payouts. Included in Slack notifications:
https://www.notion.so/cownation/Solver-Payouts-3dfee64eb3d449ed8157a652cc817a8c