Skip to main content
An order is your instruction to trade a market. You pick an outcome (YES or NO), whether you are buying or selling it, a price, and a size. Most orders are buys: you buy the outcome you believe in. You sell only contracts you already hold. This page covers how orders work in practice. For the underlying model see Core Concepts.

What you specify

Every order has:
On the API these map to the order fields market, side ("yes"/"no"), direction ("buy"/"sell"), ord_type ("limit"), volume, and price. See the API Overview for the exact request shape.
Price and size must match the market’s precision — they are rejected, not rounded. A limit price carries at most the market’s price precision (whole cents on a standard market: 0.27 is valid, 0.275 is refused), and volume at most its size precision. An order finer than the market allows is rejected before it is placed, so round to the market’s precision yourself rather than relying on the server to.

Limit orders

A limit order sets the exact price you’re willing to pay and rests in the order book until someone trades against it (or you cancel it).
  • Pros: exact price control, no slippage; a resting order can earn a maker rebate when it’s the side that gets filled.
  • Cons: it may not fill if the price never reaches your limit.
A post_only limit order is rejected if it would immediately take liquidity — use it when you only want to rest in the book and never cross the spread.

Market orders are signed limits

Every order you place is signed by your own key, and the signature commits to a specific price — that is what lets the exchange match your order without ever holding your funds. “Spend $10 at whatever it costs” is not something a key can sign, so a Market order in the app is a marketable limit:
  1. You name a max spend. The app walks the order book and works out how many contracts that buys at the resting prices.
  2. It signs a limit at the worst price the sweep reaches, plus a small slippage bound. That price is a ceiling, never a target: the exchange fills you at the book price or better, and anything left of your max spend is not taken.
  3. It is sent immediate-or-cancel: whatever the book can’t fill the moment your order arrives is refunded straight away, never left resting at the ceiling. A market order either fills now (all or part) or gives your money back.
  4. The signature expires after 120 seconds, long enough to approve it with your passkey. An order is never matched within 30 seconds of its signature expiring — the trade has to settle on-chain first — so one that arrives later than that is refused rather than filled.
The confirm screen states the exact ceiling and quantity before you sign. A market sell is the mirror image: it signs a floor, and fills at the book price or higher. If you would rather name the price yourself, a limit order at or through the best resting price does the same job: a buy at 0.62 when the best ask is 0.60 fills at 0.60, not 0.62.

The combined order book

Calibri runs one combined book per market, priced in YES terms. There is no separate NO book: a NO order at price p sits in the book at 1.00 − p. Every order is one of four kinds, and each kind sits on one side of the book:

Buying YES is selling NO

The two orders in each column are the same trade. A YES and a NO contract together always pay out exactly 1.00, so holding YES is the same position as being short NO:
That is why a resting Buy YES at 0.60 shows up for someone buying NO as NO on offer at 0.40. They can take it even though you hold no NO to hand over — see how a fill works below.

Who can fill your order

Your order fills against anything resting on the other side of the book at your price or better: Orders on the same side compete with yours instead. A resting Sell NO at 0.40 is a second bid for YES at 0.60; it cannot fill a Buy YES. What a fill does depends on the two orders’ directions: On a new market nobody holds contracts yet, so the only way to fill a buy is a buy of the other outcome. When the app says “No YES sellers or NO buyers yet”, the ask side is empty: nobody is selling YES and nobody is buying NO. A limit order is how you go first — it rests on the board until one of them arrives.

Fees

You pay a single taker fee only when your order takes liquidity (a market order, or a limit order that crosses the spread and fills immediately). Resting orders that get filled are makers and pay no fee. The fee is charged once, at the moment of the fill — never again at settlement. It follows a price-dependent bell curve rather than a flat percentage; see Fees for the exact formula and how the applicable rate is shown for each market.

How your order reaches the market

Every order is EIP-712 signed by your wallet — or by your passkey — and relayed on-chain by Calibri. The operator pays the gas, so signing costs you nothing. Signing is what authorises the order against your Safe; nothing can be placed on your behalf without it. See Signed orders for the exact struct and Your wallet options for what does the signing in each setup.

From fill to position

Once an order fills:
  • A contract is created between your side and the matched counterparty. Your position is the set of contract legs you hold (net YES, net NO, or flat).
  • To close a position before resolution, sell it: a Sell order offers contracts you hold. It locks those contracts, not cash — a sell that takes liquidity pays its taker fee out of the sale proceeds — and only the quantity not already offered on another resting sell can be sold (sellable_qty on /account/positions). In the app, use Sell on the holding.
  • Buying the opposite side does not close the first position — it opens a second, separately collateralised one, locking more money rather than releasing any. Sell the contracts you hold instead.
  • Open (unfilled) limit orders can be cancelled while the market is open; the collateral they locked is released back to you.
At resolution, winning contracts pay 1.00 USDC per share and losing contracts pay 0, with no settlement fee.

Next steps

Fees

How the taker fee is computed and shown per market.

How markets are resolved

What decides the market you are trading.

Terms of use

The rules you accept by trading.

Core concepts

Contracts, positions, and the market lifecycle.

Signed orders

Build and sign an EIP-712 order.

API Overview

The exact order request and response shapes.