Short answer: Kalshi's Bitcoin 15-minute market (series ticker KXBTC15M) asks one yes-or-no question: will Bitcoin's price at the end of this 15-minute window be at least what it was at the start? The "price" is not a Coinbase or Binance quote. It is the average of 60 one-second readings of CF Benchmarks' Bitcoin Real Time Index (BRTI) taken in the last minute of the window. This guide walks through the contract rules, the ticker names, how the target price is set, the price grid, fees and breakeven, and what that mechanism means for anyone trading or automating it.
DeskBot is independent software and is not affiliated with or endorsed by Kalshi or CF Benchmarks. Everything below describes how the contract works. It is not a trading tip or a prediction of results. Trading involves risk and you can lose money.
Every rule quoted here comes from Kalshi's own public market data (the /series/KXBTC15M and /markets endpoints of the Trade API) as it read on October 13, 2026. Kalshi can change contract terms, so check the live market page or the series' contract terms PDF before you trade.
The contract in one sentence
Here is the rule for one real window, as Kalshi publishes it (paraphrased): the market resolves Yes if the simple average of the sixty seconds of CF Benchmarks' BRTI before 7:15 PM EDT is at least the simple average of the sixty seconds of BRTI before 7:00 PM EDT. Otherwise it resolves No.
Three details in that sentence do most of the work:
-
"At least." Kalshi lists the strike type as
greater_or_equal. If the closing average exactly equals the opening average, Yes wins. A tie is rare with prices rounded to the cent, but it is not a coin flip. - Averages, not a single print. Both the start and the end value are 60-second averages, not the last trade at a single instant.
- BRTI, not an exchange. Kalshi's own rules text says checking Google or Coinbase may help guide a decision, but the settlement number is CF Benchmarks' Real Time Index. The final value is rounded to two decimal places.
Each contract has a notional value of $1.00. A Yes contract pays $1.00 if the market resolves Yes and nothing if it resolves No; a No contract is the mirror image. Your price is your cost, so a Yes bought at 20¢ risks 20¢ (plus fee) to collect $1.00.
Reading the tickers
Kalshi organises markets as series → events → markets. For Bitcoin 15-minute contracts:
-
Series:
KXBTC15M, titled "Bitcoin price up down", category Crypto, frequencyfifteen_min. -
Event: one per window, for example
KXBTC15M-26OCT131915. Read it as year 26, October 13, 19:15, which is the window's close time in US Eastern time (7:15 PM EDT). -
Market: the tradable contract inside the event, for example
KXBTC15M-26OCT131915-15. The trailing number matches the minute of the close (-00,-15,-30,-45).
On the market we checked, the window opened at 23:00 UTC and closed at 23:15 UTC. The market was created the previous day, so upcoming windows are listed before they start. The market's title is plain: "BTC price up in next 15 mins?"
If you are writing code, pull markets with series_ticker=KXBTC15M&status=open rather than building ticker strings by hand. Time-zone and daylight-saving edge cases are much easier to get right when you read open_time and close_time from the API. Our Kalshi API tutorial in Python shows the basic calls.
Where the target price comes from
The market page shows a "Target Price" (Kalshi's field name is floor_strike). That target is the opening 60-second BRTI average, which is the same calculation as the previous window's final value. You can see the chain in the public data:
- The 6:45–7:00 PM window (
KXBTC15M-26OCT131900-00) settled with a final value of $83,448.30. It resolved Yes. - The next window, 7:00–7:15 PM (
KXBTC15M-26OCT131915-15), showed a target price of $83,448.30.
So each window starts exactly where the last one finished. Before the opening average is known, the No side's subtitle reads "Target price: TBD". Once it is set, the question is just whether BTC's last-minute average will be at or above that number fifteen minutes later.
Why the 60-second average matters
Because the final value is a simple average of 60 readings, each second of the final minute carries 1/60 of the weight. That has two mechanical effects anyone trading the last minute should understand:
- The outcome firms up during the final minute. Thirty seconds into the averaging window, half of the final value is already fixed. A late move in BTC only changes the remaining share of the average, so a $60 spike in the final ten seconds moves the final value by only about $10 (10/60 of $60).
- A single wick does not decide the market. One bad print on one exchange is diluted twice: first by the index (BRTI aggregates several constituent exchanges), then by the 60-second average.
The practical consequence is that the spot price on your screen in the last minute is not the settlement price. If spot is $20 above the target with 15 seconds left but the average so far is below it, the market can still settle No. A bot that only compares the live price with the target is reading the wrong number.
The price grid: not every cent is the same
Kalshi lists this series with a tapered_deci_cent price structure. In the market we checked, the tick sizes were:
| Price range | Tick size |
|---|---|
| 0¢ to 10¢ | 0.1¢ |
| 10¢ to 90¢ | 1¢ |
| 90¢ to $1.00 | 0.1¢ |
So near the extremes you can quote 4.3¢ or 96.7¢, while in the middle prices move in whole cents. If your code rounds every price to a whole cent, it will mis-quote the tails, and an order at an invalid tick will be rejected.
Fees and breakeven, with worked numbers
Kalshi's API lists this series with fee_type: quadratic and a fee_multiplier of 1. Under Kalshi's published fee schedule, the taker fee for an order that fills immediately is:
fee = round up( 0.07 × C × P × (1 − P) )
where C is the number of contracts and P is the price in dollars. Orders that rest on the book and are filled later pay the maker rate, which uses 0.0175 in place of 0.07. Kalshi's schedule lists no settlement fee. For the full breakdown see Kalshi fees explained and maker vs taker fees.
Breakeven is the win rate at which you neither make nor lose money on average: (price + fee per contract) ÷ $1.00. Before rounding, taking liquidity:
| Entry price | Taker fee / contract | Breakeven win rate |
|---|---|---|
| 20¢ | ≈ 1.12¢ | ≈ 21.1% |
| 35¢ | ≈ 1.59¢ | ≈ 36.6% |
| 50¢ | 1.75¢ | 51.75% |
| 65¢ | ≈ 1.59¢ | ≈ 66.6% |
| 80¢ | ≈ 1.12¢ | ≈ 81.1% |
Worked example: you buy 10 Yes contracts at 20¢ as a taker. Cost is $2.00. The fee is 0.07 × 10 × 0.20 × 0.80 = $0.112 before Kalshi rounds it up. If Yes wins you receive $10.00, a profit of about $7.89. If No wins you lose about $2.11. To break even you need to be right a little more than one time in five, about 21.1% of the time, over many trades. The table shows why "it wins most of the time" means nothing on its own: at 80¢ you need to win more than 81% of trades just to stay level.
Two costs the table leaves out: the spread (buying at the ask, not the midpoint) and rounding the fee up, which hurts small orders most. Both raise the real breakeven. Our breakeven win rate guide runs more cases.
Settlement timing and early close
The window we checked closed at 23:15:00 UTC. Its predecessor's settlement timestamp in the API was about five seconds after that market's close, so results usually post within seconds. Your bot should still wait for the market's result field to change rather than assuming a fixed delay. Two more fields are worth knowing:
-
can_close_early: true. Kalshi reserves the right to close the market before the scheduled time. Code that assumes it can always trade until the last second needs a fallback. -
Expiration vs close. The API lists an
expected_expiration_timea few minutes after close and alatest_expiration_timea week later. The second is the outer limit Kalshi allows for determining the result (for example, if the index source is disrupted), not the normal timing.
The series also carries trading prohibitions. People employed by the source agencies, and anyone holding material non-public information about the underlying, are not permitted to trade the contract.
What this means if you automate it
Ninety-six windows a day (if a series lists around the clock) is far more than anyone can trade by hand, which is why the Bitcoin 15-minute market is a common first target for automation. The mechanics above turn into a short checklist for any bot, ours included:
- Read
floor_strikefrom the API every window. Don't compute your own target from an exchange feed. - Price the last minute against the running 60-second average, not live spot.
- Respect the tapered tick grid when you quote.
- Include the taker or maker fee and the spread in every breakeven check before an order goes out.
- Treat early close and delayed settlement as normal cases, not errors.
- Judge results on a large sample against breakeven, not on a single good afternoon.
For a broader pre-flight list, see the Kalshi trading bot checklist and how to automate Kalshi trades safely.
Try it on paper first
DeskBot for Kalshi runs on your own Mac or Windows PC and reads Kalshi's public 15-minute markets, including Bitcoin. It connects to your own Kalshi account with your own API key. DeskBot for Kalshi is $19.99 a month, and your first month is $1. You choose the settings and whether it trades. Paper results are not live results, and nothing guarantees profits, returns, win rates or income. Trading can lose money.
FAQ
What is KXBTC15M on Kalshi?
It is the series ticker for Kalshi's Bitcoin 15-minute "price up or down" markets. Each event in the series is one 15-minute window. Its market resolves Yes if BTC's closing 60-second BRTI average is at least its opening 60-second average.
What price does Kalshi use to settle the Bitcoin 15-minute market?
CF Benchmarks' Bitcoin Real Time Index (BRTI). Kalshi collects 60 one-second readings in the final minute before the window closes and averages them, rounded to two decimals. It is not the price on any single exchange.
How is the target price set?
It is the 60-second BRTI average before the window opens, which is the same number as the previous window's final value. In the windows we checked, the 7:00 PM final value of $83,448.30 became the 7:15 PM window's target exactly.
What happens if the price ends exactly at the target?
The market resolves Yes. The rule is "at least" the opening average (strike type greater_or_equal).
How much are fees on Kalshi's Bitcoin 15-minute markets?
The series uses Kalshi's standard quadratic fee with multiplier 1: about 0.07 × contracts × price × (1 − price) for a taker, rounded up, and a lower maker rate for resting orders. At 50¢ that is 1.75¢ per contract as a taker, which puts breakeven at 51.75%.
How fast does a Bitcoin 15-minute market settle?
In the market we checked, settlement posted about five seconds after the close. Kalshi also lists a much later outer limit for unusual cases, so automated code should wait for the result field rather than assume a fixed delay.
Can I practise without real money?
Yes. Kalshi runs a separate demo environment where you can practise without real money. Our paper vs live guide explains why paper results usually look better than live ones.
DeskBot is not affiliated with Kalshi or CF Benchmarks. Contract details quoted from Kalshi's public API on October 13, 2026. Check the current contract terms before trading. Trading involves risk, including loss of money; past or paper results do not guarantee future results.