Skip to main content

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.
ContractAddress
GPv2Settlement0x9008D19f58AAbD9eD0D60971565AA8510560ab41
GPv2VaultRelayer0xC92E8bdf79f0507f65a392b0ab4667716BFE0110
GPv2AllowListAuthentication (Proxy)0x2c4c28DDBdAc9C5E7055b4C863b72eA0149D8aFE
The GPv2AllowListAuthentication implementation is at 0x9E7Ae8Bdba9AA346739792d219a808884996Db67.

Supported Networks

CoW Protocol is deployed on the following networks:
NetworkChain IDType
Ethereum1Mainnet
Gnosis Chain100Mainnet
Arbitrum One42161Layer 2
Base8453Layer 2
Optimism10Layer 2
Polygon137Sidechain
BNB Smart Chain56Sidechain
Avalanche C-Chain43114Sidechain
Linea59144Layer 2
Sepolia11155111Testnet

Deprecated Networks

NetworkStatus
RinkebyDeprecated - not recommended for new integrations
GoerliDeprecated - 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