getting-started
Your first DEX limit order (sell WETH at +5% via CoW)
Off-chain signed order, gas-free fills, no API keys
15 min · beginner
What you'll have when finished
- Have one signed CoW limit order live in the orderbook
- Know what each MetaMask popup does
- Understand surplus refunds and why CoW gives them
Before you start
- First-time sell-token = TWO MetaMask popups (Approval costs gas, Signature does not)
- Limit price direction can confuse — for sells, your limit must be HIGHER than current price
- CoW does NOT support Polygon — pick Velora if you need Polygon
Walkthrough
-
Have a small amount of WETH on Base
You need WETH (wrapped ETH) on Base — not native ETH. CoW only fills ERC-20 ↔ ERC-20. If you only have native ETH, wrap a tiny amount via any DEX (Uniswap Base has a wrap button) or via the WETH contract directly. 0.005 WETH is enough for a learner order.
Success criteria: MetaMask shows ≥ 0.005 WETH on Base AND ≥ ~$0.50 ETH for the approval gas
-
Open DEX Limit Orders + connect wallet
DEX Trade → DEX Limit Orders. Click Connect Wallet (RainbowKit modal opens). Pick MetaMask. After connection your address shows in the green "Connected as 0x..." banner.
Success criteria: Green Connected banner is visible with your wallet address
-
Pick CoW Protocol + Base network
Protocol picker: leave CoW selected (the default, badge "No KYC · No key"). Network dropdown: pick Base. Sell = WETH. Buy = USDC. The page automatically prompts to switch your wallet network to Base if you are not already on it — approve the switch popup.
Success criteria: Protocol = CoW, Network = Base, Sell = WETH, Buy = USDC, no chain-mismatch warning visible
-
Set sell amount + limit price
Sell amount = 0.005. Look up the current ETH price (search "ETH price" or read it on DEX Swap). Add 5% to it. Example: ETH is $3,000 → limit price = 3150. Enter 3150 in the Limit price field. The preview line says "You'll receive ≥ 15.75 USDC when filled".
Success criteria: Preview line shows the expected USDC amount you would receive at your chosen limit price
-
Pick expiry = 7 days
A 5% move usually happens within a week. 7 days is the right horizon — long enough that the order has a real chance to fill, short enough that you can cancel and re-price if conditions change. Click 7 days.
Success criteria: The 7 days pill is highlighted
-
Click Create + sign in MetaMask
Click Create limit order. First MetaMask popup = Approval transaction (gas cost ~$0.50 on Base). Sign it and wait ~15-30 seconds for confirmation. Second MetaMask popup = EIP-712 typed-data signature (NO gas — just signs the order data). Sign it. Backend then submits the signed order to the CoW orderbook.
Success criteria: Toast appears: "Order posted to CoW Protocol. Fills at 3150 USDC/WETH"
-
Find your order in the list + read the CoW Explorer link
The order list below shows your new row with Status = Open. Click the row to expand. Click the External link icon — opens CoW Explorer for that order. Bookmark this page. When ETH reaches your target, a solver picks up the order and fills it, gas-free for you. You will see the row transition to Partial fill or Filled.
Success criteria: CoW Explorer shows your order with status Open and your sell-amount / buy-amount values
What's next
You now have one signed CoW limit order live. If ETH never hits your target in 7 days, the order auto-expires — no action needed from you. If you want to cancel earlier, the Cancel button on the row submits an off-chain cancellation (free). For Polygon limit orders, repeat this guide but pick Velora instead of CoW — same UX, different network coverage.