DEV Community

Jerome Barton
Jerome Barton

Posted on

Why Has My CoW Swap Limit Order Not Filled Yet?

A limit order can stay open after spot touches your price. It needs a trade that meets your limit and covers the cost of settling the order, so the displayed market price alone does not guarantee a fill.

Your limit is a minimum or maximum, not a trigger

A limit order sets the worst price you will accept: a maximum for a buy, or a minimum for a sale. It does not promise to trade the moment a price chart reaches that level.

For example, say you set a sell order for 10 tokens at a minimum of $100 each. A market price of $100 may still be too low if executing the order would cost more than the price improvement available. The order waits until the trade can meet your limit and cover settlement costs.

The cowswap interface shows an “Executes at” price alongside your limit, helping you see the price the order currently needs. That estimate changes with network fees, order size, and market price, so check it when you need to judge how close a trade is.

Settlement costs can keep a touched order waiting

A cowswap limit order is signed in your wallet and submitted without an on-chain transaction to place it. CoW Protocol says it charges no fee for placing the order; instead, execution waits for a better price that can cover network fees.

This creates a practical trade-off: a small order may need a larger price move than a large order, because the settlement cost is spread over fewer tokens. Fees also change with network conditions. The order review and “Executes at” display are more useful than assuming one fixed percentage will always apply.

Spot prices can differ across markets, and a brief price touch may not last long enough for a solver to include your order in a settlement. Solvers are the services that find and submit trades for execution. If the price moves back before a suitable settlement is found, the order can remain open.

Partial fills can leave a small remainder

Limit orders are partially fillable by default, so some of your order can trade while the rest stays open. This helps a larger order fill as liquidity becomes available, rather than requiring the whole amount to trade at once.

For example, if buyers can take 7 of your 10 tokens at an acceptable price, those 7 may settle while 3 remain. A very small remainder may not fill if its value is too low to cover settlement costs. Check the open order’s remaining amount before placing another order, or you could sell more than intended.

You can turn partial fills off in the swap panel settings if you want the order to fill entirely or not at all. That can simplify tracking, but it may make the order less likely to complete.

Use the order panel to decide what to do next

Check “Executes at” first, then compare it with the current price and your own deadline. If the required price is still acceptable, leave the order open and check its expiry; if it is no longer acceptable, request cancellation before placing a replacement.

Off-chain cancellation is free, but it is not immediate: the order could settle before the cancellation is processed. An on-chain cancellation costs gas and can still lose a race against a settlement, so review the order status before acting again.

Keep the order if its execution price and expiry still fit your plan; cancel and reset it if either has changed.

Top comments (0)