DeFi Intel

Trade with CoW Swap (Coincidence of Wants)

DifficultyIntermediate Estimated time20 minutes Last updated2026-07-28

How to use CoW Swap: gasless swaps, MEV protection via batch auctions, and limit orders — plus exactly how the protocol charges you, and the cases where a different venue is the better tool.

What CoW Swap actually is

CoW Swap is the trading interface built on top of CoW Protocol. It is not an automated market maker and it does not hold its own liquidity pools. Instead it is an intent-based exchange: you do not submit a swap transaction, you sign a message describing the outcome you want. In CoW Protocol's own terminology that signed message is an intent (also called an order), and it carries fields such as sellToken, buyToken, sellAmount, buyAmount, the order kind (sell or buy), partiallyFillable, a receiver address, and validTo — the timestamp after which the order expires.

Because that intent is a signature rather than a transaction, placing an order normally costs you no gas and cannot fail on-chain at your expense. A third party called a solver takes on the job of finding execution and paying the gas to settle it. The settlement contract, GPv2Settlement, is deployed at the same deterministic address on every supported chain, and the token-moving helper contract is GPv2VaultRelayer — that relayer, not the settlement contract, is the address your ERC-20 approval is granted to.

CoW Protocol's core contracts are deployed across a wide set of EVM networks, including Ethereum mainnet, Gnosis Chain, Arbitrum One, Base, Optimism, Polygon, BNB Chain, Avalanche, Linea and others, plus Sepolia for testing. The exact chain list changes as new deployments land, so treat the network selector inside the app as the authoritative list rather than any article — including this one.

How the batch auction works

Orders are not executed one by one in the order they arrive. They are collected off-chain into a batch auction. Solvers — independent, bonded actors who compete for the right to settle — look at the whole batch at once and submit bids: proposed settlements for individual orders or for groups of orders together. The protocol picks the combination of winning bids that maximises the surplus delivered to the orders in the auction, and filters out batched bids that would deliver a worse result to any order than an available non-batched bid.

Three properties fall out of that design, and they are the actual reason to use CoW Swap rather than a router:

The trade-off is that you give up certainty of immediate execution. A router transaction either reverts or fills within one block. A CoW Swap intent sits in an auction until a solver finds a settlement that satisfies your limit — which is usually seconds, occasionally minutes, and for an aggressively priced limit order possibly never.

What you'll need (prerequisites)

Two of those deserve a note. The wallet must be able to produce an off-chain signature: an EOA signs with EIP-712 (preferred, because your wallet can display the full order fields) or eth_sign. A smart-contract wallet such as a Safe cannot do either, and instead signs via ERC-1271, or uses PreSign — an on-chain call to setPreSignature, which does cost gas. If you are setting up from scratch, our guides to MetaMask, Rabby and Safe cover the wallet side.

The native gas token matters less than people expect but is not optional. The swap itself is gasless, but the first ERC-20 approval for a given token is an ordinary on-chain transaction you pay for, and selling native ETH (rather than WETH) always requires an on-chain transaction. Keep a modest buffer of the chain's native token.

Recommended for this tutorial

Tools and accounts referenced in the steps below:

Secure your DeFi wallet with Ledger

Step-by-step

  1. Step 1: Connect a self-custodial wallet

    Open CoW Swap's official site and verify the URL character by character — cloned front-ends that harvest approvals are a persistent problem across every DEX. Click Connect wallet and choose your wallet (browser extension, hardware, WalletConnect, or a smart-contract wallet such as Safe). Connecting is a read-only handshake and does not move funds.

  2. Step 2: Select the correct network

    Switch your wallet to the chain you intend to trade on and confirm the app's network selector agrees. CoW Protocol runs the same contracts on many EVM chains, so an order signed on the wrong chain will simply sit against liquidity you did not mean to use. The token lists, fee tiers and available solvers all differ per chain.

  3. Step 3: Fund the account and pick your tokens

    Select the sell and buy tokens. If you plan to sell native ETH, be aware this uses the separate eth-flow path: it wraps and places the order in a single on-chain transaction that you pay gas for, and that gas is not refunded if the order later fails to fill. If you swap ETH regularly, wrap once into WETH and trade WETH thereafter — one wrap is usually cheaper than repeated eth-flow transactions.

  4. Step 4: Approve the vault relayer

    The first time you sell a given ERC-20, you must approve GPv2VaultRelayer to move it. The interface will detect whether the token supports gasless (permit-style) approval — USDC, DAI and COW among others do — in which case the approval is another signature rather than a transaction. Otherwise it is a normal transaction that costs gas. The app defaults to an unlimited allowance to avoid repeat approvals; set an exact amount instead if you prefer to cap your exposure, and read the spender address on the confirmation screen before signing.

  5. Step 5: Review the quote and sign the order

    Enter the amount and open the order details. Check the slippage tolerance the interface has applied (the default has historically been 0.5%; whatever value is shown is the one that binds you), the estimated fee, and the receiver address — it should be your own address or the zero address, never anything you do not recognise. Click Swap and sign in your wallet. You are signing an intent, not broadcasting a transaction. A solver then settles it on-chain.

  6. Step 6: Track, and verify on-chain

    The app shows a notification when the order executes, and your recent activity is available by clicking your address in the top right; full order history is on CoW Explorer. Once filled, open the settlement transaction on the chain's block explorer and confirm the balance change matches what you expected. Save the transaction hash — under most tax regimes each swap is a disposal and you will need the record.

How CoW Swap fees are actually charged

This is the part most guides get wrong, because CoW Swap does not bill you the way an AMM does. There is no separate fee transfer and no fixed percentage on every trade. Per CoW Protocol's governance documentation, protocol fees are charged in the surplus token — the buy token for sell orders, the sell token for buy orders — and they are applied by adjusting the executed amounts, not by taking a second transfer out of your wallet.

The documented fee policies are:

Because the surplus and quote-improvement components depend on the price a solver actually achieves, the exact euro or dollar amount cannot be known before execution. The fee rate is shown in the interface before you sign, and the executed amounts are visible afterwards on CoW Explorer. Fee parameters are set by CoW DAO governance and have changed more than once; verify the current numbers in the interface and in the protocol docs rather than trusting a figure written down at any point in the past.

Order types beyond the simple swap

Market order (swap). Fill as soon as a solver can beat your minimum. This is the default tab and behaves closest to a familiar DEX swap, minus the mempool exposure.

Limit order. You set a price and a validity duration, and the order rests until a solver can fill it or it expires. Placing and cancelling limit orders off-chain is free. CoW Swap sets limit orders to partially fillable by default, so a large order can be worked down as liquidity appears; you can switch to fill-or-kill in the swap panel settings. The interface shows an "Executes at" column and a traffic-light indicator for how close each open order is to its execution range. Note the fee model above: on an out-of-market limit order, the protocol takes a share of the surplus rather than charging you up front, which is why limit orders can be placed without paying anything.

TWAP. A large order split into equal parts executed at intervals, to reduce market impact. TWAP on CoW Swap requires a Safe wallet — plain EOAs are not supported — and older Safes may need their fallback handler upgraded first. You set price protection, the number of parts and the total duration; part duration and per-part amounts are derived. Minimum order sizes apply and differ by chain, and each part settles on-chain, so more parts means more total settlement cost.

Cross-chain swap (swap and bridge). Sells your token on the source chain, then routes the proceeds through a bridge provider to a different chain. Funds pass through your CoW Shed account proxy, so a failed leg leaves assets recoverable in your proxy rather than lost. The quote breaks out the bridge provider's fee and an estimated bridging time separately from the swap. Bridging the same token between two networks is not supported, ENS names are not accepted as recipients, and once the bridge leg has started it cannot be cancelled — only the swap phase can be soft-cancelled.

Security and pitfalls

Troubleshooting

When not to use CoW Swap

CoW Swap is a strong default for size on liquid pairs, and a poor choice in several specific situations:

FAQ

Is CoW Swap really gasless?

The swap is. You sign an off-chain intent and a solver pays the settlement gas, pricing that cost into your execution. You still pay gas directly in four cases: a first-time ERC-20 approval on a token without permit support, selling native ETH via eth-flow, orders signed with PreSign, and on-chain cancellations.

What are the fees for CoW Swap?

Protocol fees are charged in the surplus token by adjusting the executed amounts, not as a separate transfer. The documented policies are 50% of surplus on out-of-market limit orders and 50% of quote improvement on market orders — both capped at 0.98% of volume — plus a volume component (2 bps for standard assets, 0.3 bps for correlated pairs such as stables). Integrators may add a partner fee. Governance changes these, so read the rate shown in the interface before signing.

Can I cancel an order?

Yes, until it settles. Off-chain cancellation is free but not instant, so an order can still be matched in the gap. On-chain cancellation costs gas and also races the settlement transaction. Once a settlement is confirmed it is irreversible like any on-chain trade.

How does CoW Swap protect against MEV?

Three mechanisms. Uniform clearing prices mean every trade of the same directed pair in a batch settles at the same price, so ordering within the block carries no advantage. Your intent never enters the public mempool. And Coincidence of Wants matches opposing orders peer-to-peer, bypassing AMM pools entirely. This is protection against sandwiching and front-running — it is not protection against setting a bad slippage tolerance or buying a bad token.

Which chains does CoW Swap support?

The GPv2Settlement and GPv2VaultRelayer contracts are deployed at deterministic addresses across a broad set of EVM networks — Ethereum, Gnosis Chain, Arbitrum One, Base, Optimism, Polygon, BNB Chain, Avalanche and Linea among them, plus Sepolia for testing. It is EVM-only; there is no Solana or Bitcoin support. Use the app's network selector as the current list.

Why has my limit order not executed?

Almost always because it is out of market: no solver can settle it profitably at your price. The interface shows an "Executes at" price and a traffic-light indicator of how far away you are. Limit orders are partially fillable by default, so you may also see a partial fill sitting open while the remainder waits.