Use cowswap's partially fillable limit order when getting, say, 40% of a trade now beats waiting for all of it. Set the worst price you will accept, then let pieces fill while the order stays open. If every token must move together, choose fill-or-kill instead.
What happens when only part of an order fills?
A partial fill trades some of your stated amount and leaves the rest open. This may feel familiar if you have used limit orders on a centralised exchange. The difference is that your untraded tokens stay in your wallet.
Say you offer to sell 10 ETH for at least 3,000 USDC per ETH. CoW Swap might sell 4 ETH first, then 3 ETH later. Each fill must meet your minimum price after costs; the remaining 3 ETH can wait until the order expires.
You sign the order with your wallet to set its terms. Solvers, which are traders competing to arrange orders, look for a way to fill it. They may match it with another trader or use on-chain liquidity, meaning tokens available in trading pools. Orders are grouped into batch auctions, which also help protect trades from bots that profit by moving ahead of them.
Which case calls for partial fills?
Choose by asking whether a smaller trade is useful on its own. Imagine two people selling 10 ETH at the same minimum price. One wants to reduce their ETH holdings over the week; the other needs exactly 30,000 USDC for a payment tomorrow.
The first person can use the proceeds from each fill and keep waiting for the rest. The second may be stuck with too little USDC to make the payment. They need the whole trade, or a separate plan for any shortfall.
That difference decides the setting. If smaller fills help, choose cowswap with partial fills enabled; if the full amount is essential, switch CoW Swap to fill-or-kill. Fill-or-kill means the order trades in full or does not trade at all.
Next, decide how long you can wait. A limit order sets your worst acceptable price, but it does not promise a fill. Give it an expiry that matches your deadline, then check whether your target price leaves room for the trade's costs.
What can make the last piece hard to fill?
Every separate fill has an execution cost, including the network fee for recording it. Placing a limit order costs nothing, but a solver needs a price that covers settlement costs. That is why an order may wait even after the market briefly touches your limit price.
Small leftovers are the edge case to watch. If 9.8 ETH of a 10 ETH order fills, selling the last 0.2 ETH may cost too much relative to its value. The leftover stays in your wallet; it is not a promise of a later fill.
The trade also needs the unsold tokens to remain available. Spending them from your wallet can prevent the open portion from filling. If you need a precise final balance, check the remaining amount and decide whether to place a fresh order.
How do you place and check the order?
Open Limit orders, connect your wallet, and choose the tokens and amount. For a sell order, enter the lowest price you accept per token and set an expiry. Review the partial-fill setting before you sign; it is enabled by default for limit orders.
Your first trade of a token may require approval, which lets the settlement contract spend that token for signed orders. Approval can require a network transaction and gas, the network's transaction fee. Signing the order itself does not send that transaction.
Before signing, check the token pair, amount, minimum price, expiry, and receiving wallet. Once signed, the terms cannot be edited. You would need to cancel the order and place a new one.
Watch the filled and remaining amounts under open orders. The “Executes at” price shows where the market needs to be under current costs; it can differ from your limit price. You can request a free off-chain cancellation, though a fill may settle before that request takes effect.
I would allow partial fills when each piece advances the trade and a small remainder is acceptable. Choose fill-or-kill when the full amount must arrive together.