A partially fillable order can execute less than its remaining size. A full-fill requirement rejects a fulfillment that cannot satisfy the required amount. These policies constrain quantity independently of the order's price.
Terminology varies across protocols. In 0x's versioned contract reference, a fill-or-kill function requires the requested fill amount or reverts. CoW's market-order documentation uses fill-or-kill to describe orders that solvers must fulfill in their entirety. The exact unit of completeness matters.
How a partial fill preserves terms
Take a hypothetical order to sell 100 A for at least 250 B, with proportional partial fills allowed. A 40 A fill must respect the equivalent minimum rate, so it needs at least 100 B before considering implementation-specific rounding and fee treatment. The remaining order size is 60 A.
The original limit is not a demand to receive the full 250 B after selling only 40 A. Nor does partial fulfillment authorize a weaker exchange rate. Size scales while the price constraint remains meaningful.
| Available match | Partial fills permitted | Full 100 A required |
|---|---|---|
| 40 A on acceptable terms | May fill 40 A | Insufficient |
| 100 A on acceptable terms | May fill the full order | Can satisfy quantity |
| 100 A below the limit | Price condition fails | Price condition fails |
The remaining balance is a real obligation
If the order stays valid after a partial fill, the rest can be filled later under its rules. That means a partial completion notification is not equivalent to the order being closed. Expiry, cancellation and prior fills all affect remaining eligibility.
Smallest-unit rounding can matter when the fill is tiny. Protocol arithmetic must decide how to round proportional amounts without violating required limits. A front end's rounded display is not the authoritative integer calculation.
Why the choice exists
Allowing partial fills expands the set of usable matches but can produce several settlement events. Requiring a complete amount simplifies the desired outcome but can leave an otherwise attractive partial match unused. Neither policy guarantees a better price or faster completion in every market.
Choose the interpretation that matches the actual task. Obtaining a precise quantity for one downstream action is a different requirement from gradually exchanging an inventory. Confirm how the particular protocol names and enforces that requirement before relying on its label.
Sources & verification (3)
Source-check date is recorded in the article details. URLs are provided for manual verification. Use Copy to keep this page open.
- Basic Functionality — 0x Protocol 4.1 documentation
Fill, fill-or-kill, cancel and status checks in versioned 0x Exchange Proxy.
https://docs.0xprotocol.org/en/latest/basics/functions.html - Market orders
Market intent orders target prompt execution and can have bound conditions.
https://docs.cow.fi/cow-protocol/concepts/order-types/market-orders - GPv2Settlement
Settlement checks, partial order constraints and clearing-price mechanics.
https://docs.cow.fi/cow-protocol/reference/contracts/core/settlement