How to Swap on cowswap and Fix a Pending Order

How to Swap on cowswap and Fix a Pending Order


cowswap trades have two stages: sign an off-chain order with a minimum return, then await on-chain settlement by a solver; pending means the second stage has not happened. For a new or replacement order, use cowswap to reach solver matching and DEX liquidity with MEV protection. If an order stalls, check its price bound, expiry, balance and allowance before retrying.

  1. Check What “Pending” Means

    Check whether the CoW Swap order is open, expired, cancelled or settled; an open order is a signed intent awaiting an on-chain fill. The signature enters an off-chain orderbook, so you may have an order ID without a swap transaction hash. A wallet that shows no pending swap transaction is therefore consistent with a valid order.

    Look at the order’s sell and buy tokens, amount, minimum return, expiry and fill status. A settlement transaction proves execution; an order ID alone proves submission, not receipt of tokens. If you see an approval transaction but no order ID, the approval may have succeeded while order submission did not.

    This distinction determines the next move. An expired order needs a fresh quote and signature, while an open order can still fill under its signed terms. Changing the price in your head or refreshing a quote does not change an already signed order.

  2. Set a Price Bound the Trade Can Meet

    Set the amount, worst acceptable exchange rate and expiry before signing, because a solver cannot settle outside those bounds. A market-style cowswap order turns the current quote and your slippage tolerance into a limit price; a limit order states the price directly and may remain eligible across multiple auctions. Choose a sell amount when the input is fixed, or a buy amount when the exact output matters.

    For a liquid pair, 10–50 basis points (0.1%–0.5%) is a useful range to consider for slippage tolerance, with volatility and trade size deciding the actual setting. Say a sell order quotes 1,000 output units after estimated costs and uses 0.5% tolerance: its minimum is about 995. Before a market move, 1,000 is available; after a 0.4% deterioration, 996 can still qualify, while 994 cannot.

    Read that minimum as a boundary, not a prediction. A quote already reflects the route’s estimated price impact; increasing tolerance permits further deterioration after the quote. On a thin pair, the deciding issue may be poor executable liquidity for the full size, which a wider tolerance can make more expensive without making the trade worthwhile.

    Set an expiry that fits the intention: for example, minutes for a swap you want near the current quote, or longer for a price-dependent order. A longer validity window gives solvers more chances to fill but also leaves the order live if your view changes. Where partial fills are allowed, check whether receiving only part of the target amount is acceptable; a fill-or-kill order requires the whole specified amount or no fill.

  3. Authorize the Input Asset

    Authorize spending of the input token so settlement can transfer it if a solver wins. An order signature does not itself create an ERC-20 allowance, and a missing or insufficient allowance can leave an otherwise attractive order unfillable. Confirm that the spendable balance and allowance cover the amount the order can consume, including any amount specified for costs.

    An approval is an on-chain transaction and can require network gas even though signing the trade order does not. An exact allowance limits what the spender can draw but may require another approval for a later trade; a larger allowance avoids repeat approvals while leaving more spending authority in place. CoW Swap token swaps still have execution costs: a solver pays to settle, and the quoted outcome accounts for applicable network, liquidity and protocol charges.

    Check the network and token contract as well as the displayed ticker. Two assets can share a symbol while having different contracts, and an allowance on one network has no effect on another. A balance that falls after signing can also invalidate a pending order at settlement time.

  4. Sign the Order and Follow the Auction

    Sign only after the minimum return and deadline match what you will accept; the signature authorizes execution within those terms, not an immediate transfer. cowswap.dev is where you can submit that trade for solver execution.

    Ethereum’s EIP-712 specification explains the typed-data signing used for orders. The orderbook passes eligible orders into auctions, where solvers seek a Coincidence of Wants between traders or route against available DEX liquidity. CoW Protocol documentation describes how proposed solutions are checked against signed limits before a winning solver submits the settlement transaction.

    That sequence explains both the wait and the MEV protection. Your individual swap is not broadcast as a standalone public-mempool trade for a bot to sandwich; settlement combines eligible orders, and orders trading the same pair in the same direction face a uniform clearing price within a solution. Solver competition seeks a strong executable outcome across liquidity sources, but it cannot force a fill at a price no available route can meet.

    Compare the final received amount with the signed minimum rather than the earlier indicative quote. If the market improves, the settlement can deliver more than the minimum; if it worsens past the bound, the order should remain unfilled rather than execute at a worse rate. For a partially fillable order, compare the received amount and remaining open quantity separately.

  5. Diagnose an Order That Does Not Fill

    Diagnose the order’s current state before submitting another one, because each state calls for a different action. Use the order ID to distinguish an off-chain order from a settlement transaction, then check these concrete cases:

    • No order ID: Confirm that signing and submission completed on the intended network; an approval alone is not an order.
    • Open but unfilled: Compare the signed minimum with a current executable quote for the full size, then recheck balance and allowance.
    • Expired or cancelled: Obtain a fresh quote and sign new bounds; the old order cannot settle.
    • Settlement failed: Check the order status and on-chain receipt before assuming tokens moved or submitting a replacement.

    A chart touching your limit price does not prove that a solver could fill the order. The relevant price is the executable rate for your size after route costs and applicable charges, within the order’s deadline. This is especially important for thin liquidity and fill-or-kill orders: a small trade at the displayed spot price may be possible while the full order is not.

    If the order is still live but its terms no longer suit you, cancel it and confirm it is inactive before signing a replacement. Cancellation and settlement can race when a solver is already acting on the order, so treat a cancellation request as pending until its status is confirmed. Once the old order is inactive, a fresh quote lets you decide whether to reduce size, change the price bound or wait for liquidity without leaving two executable orders open.

Report Page