Price-time priority
Orders match best-price-first. Among orders at the same price, the one that arrived first trades first. Two consequences worth designing around:- Improving your price jumps the queue. A better price is always ahead of a worse one, regardless of when either arrived.
- Amending loses your place unless you are shrinking. Priority survives only when
priceis unchanged andqtydoes not increase. Size down and you keep your spot; change the price or add size and you go behind everyone already resting there. If being early at a price matters, get there first — there is no other way to the front.
Whole-cent prices
Prices are integers from 1 to 99 cents. There is no sub-penny pricing, so the book has exactly 99 usable levels and ties at a price are common — which is why arrival order matters as much as it does. 0¢ and 100¢ are settlement values, not prices.Matching has already happened when you get a response
POST /v1/orders returns after your order has been matched. The status in the
response is the outcome, not an acknowledgement — see
Order lifecycle.
Complementary matching
Abuy no at 40¢ and a buy yes at 60¢ are opposite sides of the same trade and will
match each other. One market, one book, two ways of naming a position. If this is new,
read Binary markets first — a bot
that models yes and no as separate books quotes against itself.
Self-trade prevention
Your own orders never trade with each other. When an incoming order of yours would match your own resting order, the venue decrements and cancels instead of filling:- both orders are reduced by the overlapping quantity
- no fill is generated and no trade prints
- matching continues past the skipped order
canceled with nothing
traded.
Fees
Fees are charged on the price you named, not on the canonical price: abuy no at
35¢ is charged against 35, not against 65.
The curve is parabolic. With r the market’s fee rate, q the quantity, and p your
price in cents:
Each market publishes
maker_fee_rate and taker_fee_rate as decimal strings —
"0.0007" is 0.07% — and they are strings precisely so float parsing cannot mangle
them. Read them off the market rather than assuming a venue-wide rate; they differ by
market and maker is not always the same as taker.
Fees are small in the current paper-money beta. At a
"0.0007" taker rate, 100
contracts at 50¢ rounds up to 1¢ in total. Treat the per-market rate fields as the
source of truth rather than hard-coding a number, and do not build a strategy whose
edge depends on fees staying at beta magnitude.Time in force
gtc rests, ioc takes what is there and cancels the rest, fok fills entirely or
does nothing at all — consuming no liquidity when it cannot.
Omitting the field gives gtc. See
Binary markets.