Before any multisig transaction is signed or executed, the computed transfers must be manually validated. This page describes the full validation workflow.Documentation 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.
Validation workflow
Wait for data to finalize
Do not run the payout script immediately after the accounting period ends. Several data sources need time to settle:
prices.usd— token price feedsethereum.transactions— on-chain transaction data- CoW Protocol event data
Run the script and read the console output
Run the payout script for the relevant period:The console prints two things immediately:This is produced by
- The Dune dashboard URL — pre-filtered to the exact accounting period.
- The transfer summary — total native token and COW funds required.
Transfer.summarize() across all COW and native transfers combined.Cross-check against the Dune dashboard
Open the dashboard URL printed to the console. It follows this pattern:Verify that the per-solver amounts shown on the dashboard match what the script computed. Discrepancies may indicate stale data, incorrect period bounds, or an edge case in reward computation.
Check for overdraft cases
An overdraft occurs when a solver’s negative slippage exceeds their native token payout for the period — meaning the protocol effectively owes the solver less than their slippage cost. The script handles this by recording the shortfall in the overdrafts contract (
0x8Fd67Ea651329fD142D7Cfd8e90406F133F26E8a) rather than generating a negative transfer.Review the console output and any overdraft entries before proceeding. If the overdraft is unexpectedly large, investigate whether the slippage data is correct.Post the transaction to Safe
Once the numbers are verified, post the multisend to Safe. You can do this in two ways:Automatically (recommended for routine runs):This posts three separate Safe transactions:
The proposer account that should submit is:Manually (via Safe CSV import):Import the generated CSV files from
| Transaction | Safe | Network |
|---|---|---|
| COW token transfers | PAYOUTS_SAFE_ADDRESS_MAINNET | Mainnet |
| Native token transfers | PAYOUTS_SAFE_ADDRESS | Target network |
| Overdrafts update | PAYOUTS_SAFE_ADDRESS | Target network |
out/ directly into the Safe airdrop app. The COW CSV goes to the mainnet Safe, the native CSV to the network Safe.Review the Safe transaction queue
After posting, verify the pending transactions in the Safe UI:
- COW transfers (mainnet):
- Native transfers and overdrafts:
Notify the team and collect signatures
Post in the #dev-multisig Slack channel with a link to the pending transaction queue. When Follow up to ensure all required signers execute the transaction. The preferred execution account is
--post-tx is used (without --dry-run), the script sends this notification automatically:0xd8Ca5FE380b68171155C7069B8df166db28befdd.Summary of transactions
Every payout week results in up to three multisend transactions:COW transfers
ERC-20 COW token transfers to solvers. Always posted on mainnet regardless of the target network, since COW is an Ethereum mainnet token.
Native transfers
Native token (ETH, xDAI, etc.) reimbursements posted on the target network.
Overdrafts update
Calls
addOverdraft on the overdrafts management contract (0x8Fd67Ea651329fD142D7Cfd8e90406F133F26E8a) for any solver whose slippage exceeded their payout.