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

  1. 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

  2. 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

  3. 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

  4. 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

  5. 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

  6. 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"

  7. 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.