CoW Swap deeplinks: swaps and limit orders
Create prefilled CoW Swap trade links for swaps and limit orders. A link opens a form. It does not sign or place an order.
More link examples
https://swap.cow.fi- CoW Swap main page (swapis default page)https://swap.cow.fi/#/swap-swappagehttps://swap.cow.fi/#/limit-limitorders pagehttps://swap.cow.fi/#/100/swap-swappage on Gnosis chain networkhttps://swap.cow.fi/#/100/limit/WXDAI/COW- Create alimitorder to sellWXDAIforCOWhttps://swap.cow.fi/#/1/swap/WETH/COW?sellAmount=100- Swap100 WETHforCOWhttps://swap.cow.fi/#/1/swap/WETH/COW?buyAmount=10000&recipient=vitalik.eth- Buy onswapsending the outcome to a custom recipient (can be either address or ens)https://swap.cow.fi/#/100/limit/WETH/WXDAI?sellAmount=2&buyAmount=6000- Create a limit order to sell2 WETHfor6000 WXDAI
Query Parameters
The default page is swap. The swap and limit pages accept amount and recipient parameters.
Limit-order links also use orderKind to distinguish exact-sell and exact-buy orders.
Unsupported parameters do not configure form settings.
URL links format
Swap
https://swap.cow.fi/#/<chainId>/swap/<sellTokenSymbolOrAddress>/<buyTokenSymbolOrAddress>?recipient=<recipient>&sellAmount=<sellAmount>&buyAmount=<buyAmount>
Limit
https://swap.cow.fi/#/<chainId>/limit/<sellTokenSymbolOrAddress>/<buyTokenSymbolOrAddress>?recipient=<recipient>&sellAmount=<sellAmount>&buyAmount=<buyAmount>&orderKind=<sell|buy>
Global parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
theme | String | (determined by browser) | Sets theme to dark or light mode. |
Swap / limit parameters
The app accepts partial links and uses defaults for omitted fields. For a complete limit-order request, supply the chain, token pair, both amounts, and order kind.
| Parameter | Type | Default | Description |
|---|---|---|---|
chainId | Integer | 1 - Ethereum Mainnet | Supported blockchains |
sellTokenSymbolOrAddress | Token symbol or address | Wrapped native token symbol for the current network (for Mainnet: WETH) | Sell token symbol or address |
buyTokenSymbolOrAddress | Token symbol or address | Buy token symbol or address | |
recipient | address | undefined | Recipient address or ENS name. URL-encode the value. |
sellAmount | Integer or Float | undefined | Sell-token amount in human units |
buyAmount | Integer or Float | undefined | Buy-token amount in human units |
orderKind | sell or buy | sell when both amounts are supplied | For limit orders: fixes the sell amount or buy amount, respectively. |
Only one of sellAmount or buyAmount can be set for the swap page. If both are set, only sellAmount will be used.
Each chain has a native token and it's wrapped version. Native tokens are needed to pay any applicable transaction fees.
Native and wrapped tokens per chain:
- Ethereum Mainnet:
WETH- wrappedETH - Gnosis chain:
WXDAI- wrappedXDAI - Arbitrum one:
WETH- wrappedETH - Base:
WETH- wrappedETH - Avalanche:
WAVAX- wrappedAVAX - Polygon:
WPOL- wrappedPOL - BNB:
WBNB- wrappedBNB - Linea:
WETH- wrappedETH - Plasma:
WXPL- wrappedXPL - Ink:
WETH- wrappedETH - Sepolia:
WETH- wrappedETH
Create a limit-order deeplink
Build the URL
The query parameters belong after the hash route.
Ethereum mainnet uses chain ID 1. Gnosis Chain uses 100.
Other chain IDs appear in the supported blockchain deployments.
sellAmount and buyAmount use human token units, not integer base units.
For example, sellAmount=0.125 means 0.125 sell tokens, regardless of the token's decimal count.
Use positive decimal amounts without thousands separators.
For complete limit-order links, supply both amounts and an explicit orderKind.
| Request | sellAmount | buyAmount | orderKind |
|---|---|---|---|
| Sell an exact amount | Fixed sell amount | Minimum receive amount | sell |
| Buy an exact amount | Maximum spend amount | Fixed buy amount | buy |
With both amounts supplied, orderKind defaults to sell.
Convert the price into amounts
Deeplinks accept token amounts, not a price. Convert the limit price into the minimum receive or maximum spend amount.
Exact-sell example
Request: “On Ethereum, sell exactly 4 WETH for USDC at a minimum of 2,500 USDC per WETH.”
The minimum receive amount is 4 × 2500 = 10000 USDC.
Open the exact-sell limit order
Exact-buy example
Request: “On Ethereum, buy exactly 4 WETH with USDC, paying at most 2,500 USDC per WETH.”
The maximum spend amount is 4 × 2500 = 10000 USDC.
The sell token is USDC. The buy token is WETH.
Open the exact-buy limit order
If the price uses reverse units, divide the fixed amount by that price instead of multiplying. Preserve the requested precision and the minimum receive or maximum spend bound.
Expiry and partial fills
The limit-order deeplink format does not support expiry or partial-fill settings.
Parameters such as validTo and partiallyFillable do not configure these settings.
Configure expiry and partial-fill settings manually in CoW Swap.
Review and share
Before signing, review the chain, token addresses, amounts, order kind, recipient, expiry, and partial-fill settings in the form. Opening a link does not guarantee that the requested fields applied or that the order will fill.
CoW Swap can remove amount and order-kind parameters from the address bar after it consumes them. Share the original generated URL to preserve the requested trade fields.
Tips for AI agents
- If the chain or price bound is missing, ask for it. Do not assume Ethereum or substitute a market quote.
- If a token symbol is ambiguous, ask for its address or resolve it from reliable sources for the requested chain. Preserve supplied addresses and native or wrapped token choices.
- If the request includes expiry or partial fills, explain that those settings require manual setup in CoW Swap. Do not invent URL parameters or claim the link applies those settings.