What a crypto price contract actually settles on
Not the price on your exchange: an index or an oracle report, a window the terms name, and a rule for the minute the source goes quiet.
Not the price on the exchange you watch. Kalshi's bitcoin contracts settle on CF Benchmarks' BRTI, an index built from several exchanges' order books, averaged over the 60 seconds before the stated time, and its terms resolve affected strikes to No if no data is available. Predict.fun's up and down rounds compare two Chainlink BTC/USDT reports, and if no report arrives, an admin role can pause the contract and close rounds at prices it supplies.
Three things sit between being right about where bitcoin goes and being paid for it, and none of them is the price on the exchange you watch. There is a reference that is not a trade: an index built from other people's order books, or a median of reports from an oracle network. There is a window rather than an instant. And there is a written rule for the moment the reference says nothing at all, which on the venues read here is either an automatic No or a decision by whoever holds an admin key.
This page reads the documents for two venues with short-dated bitcoin contracts: Kalshi's filed terms and the index methodology they point to, and Predict.fun's developer documentation and the independent audit of the contracts it describes. It is a sibling of the pages on sports contracts, temperature markets and election contracts; the machinery differs, and the question is the same.
How it works
On Kalshi the chain from an order book to a settled contract has five links, each one in a public document.
- Several exchanges keep order books. CF Benchmarks' BRTI page says the index "aggregates order data from Bitcoin-USD markets operated by major cryptocurrency exchanges" that meet its constituent criteria. The methodology is explicit that it uses resting orders and not fills: the indices "are calculated from order book data, as opposed to, for instance, trade data".
- The index is calculated from all of them at once. For BRTI the methodology's parameter table gives a calculation every 200 milliseconds, and its specification a standard dissemination of "approximately every second".
- Books that look wrong are dropped. A constituent whose book is more than 10 seconds old is disregarded for that calculation. So is one whose mid-price deviates from the median of all the constituents' mid-prices by more than 5%, the parameter set for BRTI, and it stays out until it is back within half that distance.
- The contract averages the index. Kalshi's terms define the underlying as the spot price of
one bitcoin "according to a simple average of the CF Bitcoin Real-Time Index ('BRTI') for the
minute (60 seconds) prior to
<time>", and name CF Benchmarks as the source agency. - Kalshi settles no later than the day after expiration, "unless the Market Outcome is under review pursuant to Rule 7.1".
The price is an index, not a trade
Nobody trades at BRTI. It is a number computed from what several venues are offering to buy and sell at a given moment, after the screens above have removed the books that are late or out of line. A print on one exchange, a wick on one chart or a fill that never touched the consolidated book does not reach it directly. CF Benchmarks describes BRTI as a registered benchmark under the UK benchmarks regulation, and names Kalshi, CME Group and ForecastEx among the venues that use it for settlement; only Kalshi's terms were read for this page.
Which exchanges count is a published list that changes. The constituent-exchange document carries a version history of additions and suspensions, and the methodology says the list and the criteria for inclusion are published on the administrator's website.
The instant is a minute
Kalshi's two sets of crypto terms read for this page, the BTC terms and the short-dated terms filed in its contract-terms store as CRYPTO15M, both define the price at a stated time as a simple average of the index over the 60 seconds before it. A spike in the last few seconds moves a sixty-second average by a fraction of its size. The terms do not say how many index values the average takes; the methodology's own figures, a calculation every 200 milliseconds and a standard publication about once a second, give two different answers, and neither document settles which one the average uses.
Both sets of terms close the door on later corrections in the same words: "Revisions to the Underlying made after Expiration will not be accounted for in determining the Expiration Value."
When the index says nothing
The methodology has a name for it, a calculation failure. If every constituent's book is too late or flagged as erroneous, or "any other reason or circumstance" prevents an orderly calculation, "then the CME CF Cryptocurrency Real Time Index for that Calculation Time is not published."
The contract terms answer what that does to your position, and the answer is not a refund.
- CRYPTO15M: "If no data is available or incomplete on the Expiration Date at the Expiration Time, then affected strikes resolve to No." The terms do not define incomplete.
- BTC: expiration moves to "the first minute after
<time>that data is available", for up to a week after the contract's date, and "If no data is available on the Expiration Date at the Expiration Time, then the market resolves to No."
A strike that asks whether the price will be above a level and a strike that asks whether it will be below it both resolve No under those clauses. The rulebook's general fallback, Rule 6.3(c), which settles at the last traded price or a fair allocation set by an Outcome Review Committee, reaches cases where the contingency "is not explicitly addressed in the Contract terms". These terms address it.
Kalshi's Rule 7.2 adds one more door: if a source agency "is unavailable or undergoes significant modifications", the exchange may designate a new source agency and underlying after the first day of trading, and announce it on its website.
Two venues, two machines
Predict.fun runs rounds, not strikes. Its documentation, last updated on 6 May 2026, describes "recurring up/down price-prediction" markets in which each round is "a fixed-duration window with a known start price". The round resolves Up if the end price is higher than the start price, Down if it is lower, and Flat if they are equal. Rounds are pre-created, "typically 24 hours ahead", and when one closes, its end price "propagates automatically as the next round's start price".
The reference is an oracle report, in a stablecoin pair. The stream the page lists is
BTC/USDT, not bitcoin in dollars. The report format Chainlink documents for crypto streams
carries a price field defined as the "DON consensus median price", the median across the
oracle network's nodes, with two timestamps: the earliest and the latest time at which the price
is valid. Predict.fun accepts a report through two paths. Its own backend may submit a report only
when those two timestamps are equal, with no buffer; Chainlink's runtime environment may deliver a
report whose timestamps differ, and "The protocol accepts a maximum buffer of 5s."
When no report arrives, a role decides. "If no reports can be retrieved within the 5s buffer, an account with EMERGENCY_CLOSE_ROUND_ROLE can call emergencyCloseRounds to settle rounds manually. This function is only callable when the contract is paused." Cyfrin's audit of the same contracts, dated 25 April 2026, sets out who that is and what it can do:
- The top admin role "is held by the multi-sig" at a published address on BNB Smart Chain, and can grant itself the pauser and emergency roles, which at deployment were assigned to nobody.
- While paused, the emergency path "permits settlement of open rounds using admin-supplied int192 end prices". A guard prevents overwriting a round the Chainlink workflow has already written; "for rounds not yet settled by the CRE, no oracle cross-check applies."
- An emergency end price becomes the next round's start price, and the start price of a new or re-enabled series "is not oracle-verified at creation time".
- In the auditors' words: "Users should understand that the emergency close mechanism is a documented recovery capability, not an oracle-verified settlement path."
The audit covered the Chainlink integration only, over four days, and describes itself as "time-boxed" and limited to "the in-scope code". Of the 30 issues it lists, 20 are marked resolved and 10 acknowledged, the propagation of an emergency end price into the next round among the latter. It is a statement about that code on those dates.
So the two venues fail in opposite directions. On Kalshi a missing index resolves the affected strikes to No by a clause filed in advance, and no person chooses the number. On Predict.fun a missing report hands the round to whoever holds an admin role, after a pause, with a price that person supplies. Neither failure settles on the price you were watching. The general version of who decides, across every kind of venue, is on who decides the outcome.
What you can do about it
Name the reference and the pair before you read the price. BRTI is bitcoin in US dollars from a list of constituent exchanges; Predict.fun's stream is bitcoin against USDT. A move in the stablecoin against the dollar moves one reference and not the other, without anybody being wrong about bitcoin. A price gap between two venues on the same hour is a rules question first, the general case of why the same contract costs two prices.
Line your chart up with the window. On Kalshi the number is a sixty-second average ending at the stated time, not the last trade before it. On Predict.fun it is one report at the start of the round and one at the end. A chart of a single exchange shows neither.
Check whether the exchange you watch is in the index. CF Benchmarks publishes its constituent list and its version history. If yours is not on it, its price reaches the contract only through its effect on the others; if it is on it, its book can still be dropped for lateness or for straying more than 5% from the median.
Know which side carries the outage. On the Kalshi terms read here, a missing or incomplete index pays No on every affected strike. A Yes position on any strike carries that clause; a No position does not.
On an on-chain venue, read the admin before the oracle. The audit names the multisig address and the roles; whether the adapter is paused, and who currently holds the emergency role, is on-chain state anyone can read. An oracle report is only as final as the path around it.
Read the series terms through the API, not the title. Kalshi publishes per-series terms and settlement sources through its API; reading a market's rules from the API shows where. The Kalshi card carries the venue's fees and availability, and the prediction market venues listing the rest.
Tools this bears on
Cards in the catalogue where what is above changes the decision.
Kalshi
A CFTC-designated exchange for event contracts, settled in dollars against named sources.
Per-trade fee
Kalshi API
REST, WebSocket and FIX access to a CFTC-regulated event exchange.
Per-trade feeFree tier
ForecastEx
Economic and climate contracts on a CFTC exchange that pays interest on your collateral.
Per-trade fee
FAQ
Does a Kalshi bitcoin contract settle on Coinbase's price, or any one exchange's?
No. Its terms name CF Benchmarks as the source agency and the CF Bitcoin Real-Time Index as the underlying: a simple average of that index over the 60 seconds before the stated time. The index is calculated from the order books of several constituent exchanges, and a single exchange whose price strays too far from the others is left out of it.
What happens to a Kalshi crypto contract if the index is not published at settlement time?
The short-dated terms Kalshi files as CRYPTO15M say that if no data is available or it is incomplete at the expiration time, affected strikes resolve to No. The BTC terms move expiration to the first minute data is available, up to a week, and resolve the market to No if there is still none. On those terms a strike above and a strike below both pay No.
What does Flat mean on a Predict.fun price market?
It is the third outcome of an up or down round. Predict.fun's documentation says a round resolves Up if the end price is higher than the start price, Down if it is lower, and Flat if the two are equal, all read from Chainlink Data Streams reports for the BTC/USDT pair.
Can anyone change the price a Predict.fun round settles at?
In the normal path, no: the round closes on a verified Chainlink report. Cyfrin's audit of 25 April 2026 records that the admin multisig can pause the contract and then settle open rounds with prices it supplies, and that only rounds already written by the Chainlink workflow are protected from being overwritten. Predict.fun's documentation calls this path a last resort.
Sources
- CRYPTO15M contract terms and conditions — KalshiEX LLC, read
- BTC contract terms and conditions — KalshiEX LLC, read
- KalshiEX LLC Rulebook, version 1.29 (Rules 6.3 and 7.2) — KalshiEX LLC, read
- CME CF Bitcoin Real Time Index (BRTI) — CF Benchmarks Ltd, read
- CME CF Cryptocurrency Real Time Indices Methodology Guide, version 17.0 — CF Benchmarks Ltd,
- Chainlink Price Markets — PDF Labs Limited (Predict.fun),
- Report Schema: Crypto Advanced (v3) — Chainlink, read
- Predict.fun Chainlink CRE Integration Audit Report, version 2.1 — Cyfrin,
The catalogue next door
This page is background, not a listing. The products it bears on are in Prediction Market Venues, each filled in against the same schema, with the fields to narrow it yourself.
Last updated . Corrected in place: this is a reference page, not a dated post.