Last updated: April 15, 2026
This page describes how Prediction Circuit handles wagering mechanics as implemented in our backend services: escrow, fees, matching, and settlement. Numeric rules come from the live server logic (including the order-book and wager resolution flows). Platform configuration (fee percentages, limits, and multipliers) can change over time; what follows is the structure of the math, not a guarantee of current parameter values.
The order book lets you bid for YES or NO contracts at a limit price between $0.01 and $0.99 per contract, in $0.01 ticks. Multi-outcome markets require an outcome ID on each order so liquidity is scoped to the correct option.
When you submit an order, the system locks enough collateral to cover the worst case if your order trades:
Total escrow for the order is that per-contract amount times the order size (quantity). The system also reserves an estimate for the taker fee (see below) so you cannot over-commit your balance.
These words describe roles in a single trade, not “good vs bad” participants. Every fill has exactly one maker side and one taker side for that fill.
On Prediction Circuit’s matching engine, the new incoming order that walks the opposite side of the book is the taker for each slice of volume it fills. Each resting order it hits is the maker for that slice. The fill price for that trade is always the maker’s limit price (the price that was already on the book).
If your own order only sits on the book and someone else hits it later, you were the maker for those fills. If your order comes in and matches right away, you are the taker (for that order’s executed portion). A large taker order can match many maker orders in sequence; each piece is a separate fill with its own maker/taker fees.
Fee quote in the app assumes you are taking liquidity (it estimates taker fees). If you end up as a maker because your order rests first, you are not charged the taker fee on that volume; maker fees follow the separate maker schedule (often zero depending on configuration).
Incoming orders walk the opposite side of the book (best prices first). The fill price is the resting (maker) order’s limit price. Each fill is recorded with that price, quantity, and separate taker and maker fee amounts.
Fees use a quadratic-in-price schedule (same family as Kalshi’s formula). With:
Taker and maker fees are computed independently from the same fill. Maker fee uses its own k; if maker k is zero, makers pay no fee. Configuration is loaded from the database (ob_taker_k, ob_maker_k, min/max fee in cents, rounding mode).
The public fee quote endpoint combines escrow and estimated taker fee into a total cost for a hypothetical taker trade at a given price and size.
After the market outcome is known, each filled order-book contract pays $1 per contract to the winning side (in the market’s currency — e.g. USDT notionally pegged to $1). Concretely, for a fill at price P with quantity Q:
Trading fees were already collected at fill time; settlement does not re-apply that fee on top of the redemption.
Any unfilled portion of resting orders is refunded at the same per-contract escrow rate (YES → P, NO → 1−P) when the market is resolved.
You can post a simple wager on an open market: you pick YES or NO and stake an amount. Another user matches by putting up the counter stake. When the wager is fully locked, both sides’ funds stay in escrow until resolution.
For locked peer wagers, the resolver computes a gross payout pool from both stakes, takes a platform fee from that pool using basis points (fee_bps), and credits the net amount to the winner.
The default fee percentage for new wagers comes from platform configuration (default_fee_pct), which is also used to derive fee_bps where applicable.
Open or partially filled legacy wagers can be unwound: unfilled stakes are released, and matched portions may be refunded according to the resolution job’s rules for that market state.
On supported markets you can take a quoted side against house liquidity. At creation, the platform sets decimal odds (within configured min/max) and splits liability:
Both your stake and the house’s stake are reserved up front; the contract is immediately locked. At resolution, the same style of gross pool minus bps fee settlement applies as for other locked crypto wagers (fee taken from the winning payout).
Markets are resolved when administrators set the official outcome. Until then, orders and wagers are subject to market status (open vs resolved) checks. Void or special-case handling (where applicable) follows platform rules described in the Terms of Service.
This guide summarizes backend behavior for transparency. If any description conflicts with the Terms of Service or with a displayed fee or limit in the app, the in-product disclosure and governing terms take precedence.