Skip to main content
This page lists platform execution contracts and solver addresses used by existing integrations. For settlement contracts, see Relay Protocol Addresses. Always use the transaction targets returned by your quote rather than sending funds to an address from this reference.
Please note that not all deployed contracts have the same address across all chains. Please check carefully to ensure you are using the correct contract address for the chain you are using.

Solver Addresses

These addresses identify solvers in existing integrations, not a protocol-wide operator or a universal deposit destination. Retrieve current chain data from Get Chains; use the signature validation guide when checking an order commitment.

Contract Versions

Migrating to the new router

Relay switches to the v3.2 Router and ApprovalProxy on Monday, October 26, 2026 at 10 AM ET.
  • Both the v3 and v3.2 pairs stay live during the transition. If you validate transaction targets or approval spenders against known addresses, allow both pairs.
  • Get Chains already returns the new pair under contracts["v3.2"]. At the switch, contracts.erc20Router and contracts.approvalProxy change to the v3.2 addresses, and the Mainnet Contracts table below updates with them.
  • Token approvals do not carry over from the v3 ApprovalProxy, so a returning user approves the v3.2 ApprovalProxy once.
  • ERC-3009 permits on the v3.2 ApprovalProxy need a second signature, which clients opt into. See Gasless Swaps.
  • If you call the v3.2 ApprovalProxy directly: permitTransferAndMulticall (ERC-2612) no longer has a nonce in its permit struct, and permit3009TransferAndMulticall takes an extra multicallSignatures argument. transferAndMulticall, permit2TransferAndMulticall and the Router’s multicall keep their signatures, and the Permit2 witness now includes msgValue.
  • ABIs for the v3.2 contracts are available on request.

Mainnet Contracts

Testnet Contracts