Contract Addresses
All CoW Protocol smart contract addresses deployed across supported networks.
Core Contracts
All core contracts are deployed at identical addresses across all supported networks using CREATE2 deterministic deployment.
| Contract | Address |
|---|
| GPv2Settlement | 0x9008D19f58AAbD9eD0D60971565AA8510560ab41 |
| GPv2VaultRelayer | 0xC92E8bdf79f0507f65a392b0ab4667716BFE0110 |
| GPv2AllowListAuthentication (Proxy) | 0x2c4c28DDBdAc9C5E7055b4C863b72eA0149D8aFE |
The GPv2AllowListAuthentication implementation is at 0x9E7Ae8Bdba9AA346739792d219a808884996Db67.
Supported Networks
CoW Protocol is deployed on the following networks:
| Network | Chain ID | Type |
|---|
| Ethereum | 1 | Mainnet |
| Gnosis Chain | 100 | Mainnet |
| Arbitrum One | 42161 | Layer 2 |
| Base | 8453 | Layer 2 |
| Optimism | 10 | Layer 2 |
| Polygon | 137 | Sidechain |
| BNB Smart Chain | 56 | Sidechain |
| Avalanche C-Chain | 43114 | Sidechain |
| Linea | 59144 | Layer 2 |
| Sepolia | 11155111 | Testnet |
Deprecated Networks
| Network | Status |
|---|
| Rinkeby | Deprecated - not recommended for new integrations |
| Goerli | Deprecated - not recommended for new integrations |
Integration Example
import { domain } from "@cowprotocol/contracts";
// Ethereum Mainnet
const mainnetDomain = domain(1, "0x9008D19f58AAbD9eD0D60971565AA8510560ab41");
// Gnosis Chain
const gnosisDomain = domain(100, "0x9008D19f58AAbD9eD0D60971565AA8510560ab41");
// Arbitrum One
const arbitrumDomain = domain(42161, "0x9008D19f58AAbD9eD0D60971565AA8510560ab41");
Best Practices
- Store addresses in configuration files rather than hardcoding them
- Use environment variables for different networks
- Validate addresses before executing transactions
- Always verify contract addresses through official channels before integrating
Last modified on March 4, 2026