This guide walks you through installing the solver rewards pipeline, configuring your credentials, and generating your first payout transfer file.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.
Prerequisites
Before you start, make sure you have:- Python >= 3.10 installed
- A Dune Analytics account with an API key
- Access to the CoW Protocol analytics database (
ANALYTICS_DB_URL) - An Ethereum node URL (and a mainnet node URL if running on L2)
Installation
Install dependencies
Run This creates a
make install to create a virtual environment and install all requirements:venv/ directory and installs everything from requirements.txt.Configure environment variables
Copy the sample environment file and fill in your credentials:Open See Configuration for the full list of environment variables.
.env and set at minimum:.env
Run the payout script
Generate transfer files for the default accounting period (last 7 days):The script will:
- Query Dune Analytics for the block interval
- Fetch solver and partner data from the analytics database
- Compute rewards, reimbursements, and fees
- Write two CSV files to the
out/directory - Print a summary to the console
CLI options
The full list of options for the main payout script:Common workflows
The pipeline should not be run immediately after an accounting period ends. Wait for on-chain data to finalize — including
prices.usd, ethereum.transactions, and CoW Protocol event data — before executing the script.Using Docker
If you don’t have Python 3.10+, use the Docker image:Next steps
Configuration
Full reference for all environment variables and network-specific settings.
Generating payouts
Detailed guide to all payout modes: CSV, auto-propose, and dry-run.
Validating payouts
Steps to verify payout results before Safe execution.
Reward mechanism
How rewards, fees, and slippage are calculated.
