
How Orders Work
All orders on Polymarket are limit orders. A limit order specifies the price you’re willing to pay (or accept) and the quantity you want to trade.“Market orders” are simply limit orders with a price set to execute
immediately against the best available resting orders.
Order Types
| Type | Behavior | Use Case |
|---|---|---|
| GTC | Good Till Cancelled — rests on book until filled or cancelled | Standard limit orders |
| GTD | Good Till Date — auto-expires at specified time | Time-limited orders |
| FOK | Fill Or Kill — fill entirely or cancel immediately | All-or-nothing execution |
| FAK | Fill And Kill — fill what’s available, cancel the rest | Partial fills acceptable |
Post-Only Orders
Post-only orders will only rest on the book. If a post-only order would match immediately (cross the spread), it’s rejected instead of executed. This guarantees you’re always the maker, never the taker.Create and Sign
Your client creates an order object containing:
- Token ID (which outcome you’re trading)
- Side (buy or sell)
- Price and size
- Expiration time
- Nonce (for replay protection)
Submit to CLOB
The signed order is submitted to the Central Limit Order Book (CLOB) operator. The operator validates:
- Signature is valid
- You have sufficient balance
- You have set the required allowances
- Price meets minimum tick size requirements
Match or Rest
If the order is marketable (your buy price ≥ lowest ask, or your sell price ≤ highest bid), it matches immediately against resting orders.If the order is not marketable, it rests on the book waiting for a counterparty. It remains open until:
- Another order matches against it
- You cancel it
- It expires (GTD orders only)
Settlement
When orders match, the operator submits the trade to the blockchain. The Exchange contract:
- Verifies both signatures
- Transfers tokens from seller to buyer
- Transfers USDC.e from buyer to seller
Order Statuses
When you place an order, it receives one of these statuses:| Status | Description |
|---|---|
live | Order is resting on the book |
matched | Order matched immediately |
delayed | Marketable order subject to a 3-second matching delay (sports markets) |
unmatched | Marketable order placed on the book after the delay expired without a match |
Trade Statuses
After matching, trades progress through these statuses:| Status | Terminal | Description |
|---|---|---|
MATCHED | No | Trade matched, sent to executor for onchain submission |
MINED | No | Transaction mined into the blockchain |
CONFIRMED | Yes | Trade achieved finality, successful |
RETRYING | No | Transaction failed, being retried |
FAILED | Yes | Trade failed permanently |
Maker vs Taker
| Role | Description | When |
|---|---|---|
| Maker | Adds liquidity to the book | Your order rests and is later matched |
| Taker | Removes liquidity from the book | Your order matches immediately against resting orders |
$0.55 and it matches against a resting sell at $0.52, you pay $0.52.
Cancellation
You can cancel orders at any time before they’re matched:- Via API — Cancel through the CLOB API (instant)
- Onchain — Cancel directly on the Exchange contract (fallback if API is unavailable)
Requirements
Before placing orders, ensure:| Requirement | Description |
|---|---|
| Balance | Sufficient USDC.e (for buys) or tokens (for sells) |
| Allowance | Approve the Exchange contract to spend your assets |
| API Credentials | Valid API key for authenticated endpoints |
Order size is limited by your available balance minus any amounts reserved by existing open orders.
