Skip to main content
Every price on the wire is an integer pip. A pip is 0.01¢ (0.0001).‘0.0001). `1 = 10_000 pips. Old cent-era ticks (1–99`) are rejected — they are never reinterpreted as cents.

Place an order

Limit and market orders, max_cost in pips, idempotency.

Units

Cash, max_cost, balances, fees, deposits, and withdrawals are pips, rendered as decimal strings. Quantities are whole contracts (shares). Winning contracts pay 10_000 pips ($1). Losing contracts pay 0.

Conversion

Buying YES at 4700 costs 4,700 pips (47.00¢) per contract and pays 10,000 pips if YES wins. Sending tick: 47 is bad_price_tick.

Rest grid (live: narrow)

The venue admits rests on a named tick policy. Production is narrow. That grid is always live. You can rest 380 (3.80¢) or 9610 (96.10¢) without waiting for a mode change. Interior 4710 (47.10¢) is always rejected.
Do not send cent-era ticks. 1–99 fail bad_price_tick. The cheapest on-grid wing tick is 10 (0.10¢), not 1.

tick_size on every book

REST GET /v1/markets/{id} / GET /v1/markets/{id}/orderbook and WebSocket book snapshots include:
Place against wing_lo, wing_hi, and tick_step. Ignore unknown extra fields.
Off-grid new orders reject with 400 bad_price_tick. If a later coarsen cancels a rest that is no longer on the live grid, the placement/cancel outcome is status: "canceled" with reason: "tick_size" (execution outcome, not an HTTP error).

Reciprocal book

Bids only, both sides. A YES bid at t is a NO ask at 10000 − t.
See Orderbook responses.

How a round settles

Rounds are aligned to the wall clock, not to open_ts + cadence. The cadence is per series — 60 seconds, 5 minutes, or 15 minutes — and the asset is BTC, gold, or WTI crude depending on category. A 60-second round:
  1. Open — the scheduler opens in the first few seconds of a Unix minute (:00). strike is the asset’s oracle price at open (units of 1e-8 USD).
  2. Trade — status: "trading" until the wall clock enters the next Unix minute.
  3. Freeze — status: "frozen". Resting orders are cancelled (reason: "freeze"). settle_price is a TWAP of the sequenced oracle over the last twap_window_secs seconds (default 10).
  4. Settle — winner is "yes" if that TWAP is strictly above strike, otherwise "no" (exact equality → "no"). YES holders of a winning contract receive 10,000 pips; losers receive 0.
yes_payout on the round row is still 0 or 100 — cents of a $1 contract, not a pip tick. Find the live slot with GET /v1/markets?status=trading, then GET /v1/rounds/{market_id}. GET /v1/rounds?limit=1 is newest round_number first and is not guaranteed to be trading. See Rounds and markets.

Fees

Maker/taker fees use pip ticks:
Peak Q is at p = 5000 (50.00¢), matching the old whole-cent fee at 50¢.

Place against the grid

Market buys require max_cost in pips (decimal string). A budget of $5.00 is "50000". worst_tick defaults to 9999 on buys and 1 on sells. Full placement walkthrough: Place your first order. The Python SDK exports TICK_SPAN, cents_to_tick, on_grid, and implied_ask.