The BTC Up or Down 5 minutes strategy that survives the data is to price the lead instead of guessing the next candle, and to remember that in this market the lead starts before the bell. Five minutes is too short to forecast Bitcoin but long enough to measure: check where Bitcoin sits against the price to beat, look up how often a lead of that size, at that point of the window, has held, and buy only when the share costs less than that probability after the taker fee. It is the reasoning behind the Polymarket trading bot we run on these windows, and it works the same by hand or in software.
We replayed 34,559 five-minute windows (May 20 to September 16, 2026) at one-second resolution under the rule the 5-minute markets have used since August 14, 2026: a 60-second Chainlink TWAP for both the price to beat and the close. We tested the 15-minute market the same way, and the short market is not a smaller copy of it. The averaging window is a fifth of the market, the price to beat is fixed before trading starts, and a lead of a given size is worth less. Below: the numbers, what they do to the main strategies, and Python that already uses Polymarket's new price socket. Last updated September 26, 2026.
Key takeaways
- The open is not a coin flip. The price to beat is the average of the minute before the bell, so Bitcoin is already on one side of it when trading starts. The side it favored won 57.4% of windows, and 66.1% when the gap was 5 to 10 basis points.
- Five-minute windows are close calls. The median window finished 4.8 bp from the price to beat, about $36 with Bitcoin at $75,000, and 13.5% were decided by less than 1 bp, twice the 15-minute rate.
- The settlement rule matters more here. The 60-second TWAP picked a different winner than the old last-tick rule in 13.2% of windows (5.8% in 15-minute markets), and the August 14 switch from a 30- to a 60-second average changed 5.6% of results.
- Young leads are weaker. With three minutes left, a 5 to 10 bp lead held 85.6% of the time in a 5-minute window against 90.9% in a 15-minute one. By the final minute the two markets agree.
- The final minute is a fifth of the market. With five seconds left, the side spot said was winning still lost 6.8% of windows; the side ahead on the projected average lost 0.2%.
- Streaks are noise at this scale. After two same-direction windows the next one reversed 51.0% of the time, below any taker's break-even.
Table of contents
- How the BTC Up or Down 5-minute market works in 2026
- What 34,559 windows say about Bitcoin in 5 minutes
- Strategy 1: read the opening gap
- Strategy 2: price the lead, and mind its age
- Strategy 3: judge the final minute on the average, not on spot
- Strategy 4: quote instead of taking
- What does not work in 5-minute markets
- When to trade: hours and weekends
- 5-minute or 15-minute: which market to trade
- Automating the 5-minute market in Python
- FAQ
- Methodology and sources
How the BTC Up or Down 5-minute market works in 2026
Every five minutes, around the clock, Polymarket opens a new Bitcoin Up or Down market: 288 a day, each titled with its window in New York time, such as "Bitcoin Up or Down - September 26, 7:35AM-7:40AM ET". Two shares trade, Up and Down, each priced between 1¢ and 99¢, and the winning side pays $1. The 5-minute markets launched on February 12, 2026 with the same fee curve as the 15-minute ones. If you need the basics first, read how the Up or Down markets work on Polymarket; this section covers what matters for strategy.
| Rule | Value in September 2026 |
|---|---|
| Schedule | a new window every 5 minutes, 288 a day, market slug btc-updown-5m-{unix start} |
| Resolves Up when | the closing TWAP is greater than or equal to the price to beat (a tie is Up) |
| Price to beat | the Chainlink BTC/USD 60-second TWAP at the open, which is the average of the minute before trading starts |
| Settlement price | the same TWAP at the close, the average of the window's last 60 of 300 seconds |
| Averaging history | single prints until August 7, 2026, then a 30-second TWAP, then 60 seconds since August 14 |
| Taker fee | shares × 0.07 × price × (1 − price) |
| Maker fee | none, and makers share 20% of taker fees as daily rebates |
| Taker delay | 150 ms since September 4, 2026 (50 ms from August 17, 250 ms before that) |
| Order limits | 1¢ tick, minimum 5 shares |
What the 60-second average does to a 5-minute market
On August 7, 2026 Polymarket replaced the single opening and closing prints with Chainlink TWAPs. The 5-minute markets started on a 30-second average and moved to 60 seconds on August 14, per the Polymarket changelog. The market rules name one source only, the Chainlink BTC/USD 60-second TWAP stream, not Binance, Coinbase or any other venue.
In a 15-minute window that averaging minute is a fifteenth of the market. Here it is a fifth, and the price to beat is an average too, taken over the minute before the window opens. Three things follow.
- The window opens with a gap. At the bell, spot has usually drifted away from the average of the previous minute: by 1.0 bp in the median window, by more than 2.3 bp in a quarter of windows and by more than 4 bp in one in ten. Strategy 1 is about that gap.
- Each close is the next open. The 60 seconds that settle one window are the same 60 seconds that set the next window's price to beat, so the two numbers are identical.
- The rule decides more windows. In our replay the 60-second TWAP and the old last-tick rule named different winners in 13.2% of 5-minute windows, against 5.8% of 15-minute windows. The August 14 change alone, from 30 to 60 seconds, flipped 5.6% of results. A backtest or a rule of thumb from before mid-August describes a different game.
The fee, 288 times a day
Polymarket's fee schedule charges takers on crypto markets shares × 0.07 × p × (1 − p), where p is the share price. That is 1.75¢ per share at 50¢, or 3.5% of the stake, falling toward zero at the extremes. Makers pay nothing. When the 5-minute markets launched the peak was 1.56%, a number many guides still quote. Your break-even is the price plus the fee:
| Buy price | Fee per share | Win rate needed to break even |
|---|---|---|
| 50¢ | 1.75¢ | 51.75% |
| 55¢ | 1.73¢ | 56.73% |
| 60¢ | 1.68¢ | 61.68% |
| 84¢ | 0.94¢ | 84.94% |
| 88¢ | 0.74¢ | 88.74% |
| 90¢ | 0.63¢ | 90.63% |
| 95¢ | 0.33¢ | 95.33% |
| 98¢ | 0.14¢ | 98.14% |
The 15-minute guide has the full fee table and a Python helper. What changes at five minutes is the count. A taker who buys a $50 coin flip at 50¢ in every window pays $1.75 a window and $504 a day, against an expected return of zero. Most 5-minute windows deserve no trade at all.
What 34,559 windows say about Bitcoin in 5 minutes
Method in one paragraph. We took Binance spot BTCUSDT one-second closes for the same 120 days as our 15-minute study, May 20 to September 16, 2026, and cut them into the 5-minute windows Polymarket uses. The price to beat is the mean of the 60 seconds before a window opens, the settlement price the mean of its last 60 seconds, and a tie goes to Up. That gives 34,559 windows. Binance is a proxy for the Chainlink stream rather than a copy of it; the limits are listed under Methodology.
- Up won 49.3% of windows, Down 50.7%.
- The median move from the price to beat was 4.8 basis points. A quarter of windows moved less than 2.0 bp, a quarter more than 9.8 bp, and one in ten more than 17.1 bp.
- 13.5% of windows were decided by less than 1 bp, about $7.50 at $75,000, and half by less than 5 bp.
The table to keep open is the next one: at a given point of the window, given how far Bitcoin is from the price to beat, how often did the side in front go on to win? Up and Down leads behaved the same (75.3% against 75.9% with three minutes left), so they are pooled.
| Time into the window | under 1 bp | 1 to 2 bp | 2 to 5 bp | 5 to 10 bp | 10 to 15 bp | over 15 bp |
|---|---|---|---|---|---|---|
| At the bell (5:00 left) | 53.3% | 58.9% | 62.1% | 66.1% | 70.9% | 73.5% |
| 1:00 in (4:00 left) | 56.2% | 61.5% | 70.9% | 77.9% | 83.6% | 87.4% |
| 2:00 in (3:00 left) | 57.4% | 67.6% | 75.8% | 85.6% | 89.9% | 93.2% |
| 3:00 in (2:00 left) | 62.5% | 71.3% | 83.5% | 92.3% | 95.6% | 98.2% |
| 3:30 in (1:30 left) | 65.4% | 77.1% | 88.4% | 95.6% | 98.2% | 99.6% |
| 4:00 in (1:00 left) | 71.0% | 85.3% | 94.3% | 98.6% | 99.7% | 99.9% |
| 4:30 in (0:30 left) | 79.9% | 95.8% | 99.3% | 99.9% | 100% | 100% |
One basis point is 0.01%. Every cell holds at least 83 windows and most hold several thousand. Read it like this: three minutes into a window, with Bitcoin 5 to 10 bp above the price to beat, Up won 92.3% of the time. If Up is offered at 88¢, you are buying 92.3¢ of value for 88.74¢ after the fee. At 92¢ you are overpaying.
Strategy 1: read the opening gap
This strategy exists only because of how the 5-minute market is built. The price to beat is the TWAP at the bell, the average of the 60 seconds before the window. If Bitcoin climbed during that minute, spot at the bell is already above the average, and Up starts the window with a lead nothing inside the window has earned.
| Gap between spot and the price to beat at the bell | Side in front won | Windows |
|---|---|---|
| under 1 bp | 53.3% | 16,877 |
| 1 to 2 bp | 58.9% | 7,647 |
| 2 to 5 bp | 62.1% | 7,784 |
| 5 to 10 bp | 66.1% | 1,923 |
| 10 to 15 bp | 70.9% | 244 |
| over 15 bp | 73.5% | 83 |
Across all windows the side in front at the bell won 57.4% of the time. Most gaps are small: 29% of windows open with a gap of 2 bp or more, and 6.5% with 5 bp or more.
Worked example. Bitcoin sits 3 bp above the price to beat at the bell, a lead that has held 62.1% of the time. If Up is offered at 55¢, its break-even after the fee is 56.73%, an edge of 5.4¢ per share. At 60¢ the break-even is 61.68% and the edge is 0.4¢, not worth the risk. At 62¢ it is minus 1.5¢. The gap is an edge only while the order book has not priced it, and in an active hour the first quotes after the bell usually have.
Volatility shrinks it as well. With a 2 to 5 bp gap, the side in front won 67.2% of the time in calm hours and 59.6% in volatile ones (we split at the median volatility of the previous hour, 3.9 bp per minute). In a volatile hour a gap is mostly a burst that the next minute takes back.
To trade the gap you need the price to beat at the bell, before the market page shows it. The TWAP stream in the Python section delivers it in the same second.
Strategy 2: price the lead, and mind its age
The core method from the 15-minute guide carries over: your edge per share is the win rate from the table minus the price plus the fee, and you want a margin of about three cents, because the table is an average and your fills will be worse than the mid. Two things are different at five minutes.
Why the same lead is worth less in 5 minutes
| Time left | Lead | 5-minute window | 15-minute window |
|---|---|---|---|
| 5 minutes | 2 to 5 bp | 62.1% | 74.0% |
| 5 minutes | 5 to 10 bp | 66.1% | 86.1% |
| 3 minutes | 2 to 5 bp | 75.8% | 81.1% |
| 3 minutes | 5 to 10 bp | 85.6% | 90.9% |
| 2 minutes | 5 to 10 bp | 92.3% | 95.0% |
| 1 minute | 5 to 10 bp | 98.6% | 99.2% |
A textbook random walk does not care how old a lead is, only how big it is and how much time is left. Bitcoin does. In a 15-minute window with five minutes left, a 5 to 10 bp lead has survived ten minutes of trading. In a 5-minute window with the same five minutes left, the lead is the opening gap, often a burst from the last seconds before the bell. Two things likely explain the difference: short bursts partly reverse, and big early leads cluster in volatile moments, when leads hold less often anyway. The gap between the two markets shrinks as the window runs and is gone in the final minute, where both settle on the same kind of average. The practical rule: do not price a 5-minute window with a 15-minute table, or with a model fitted to one, before the last minute.
Volatility moves the answer by ten points
Split by the volatility of the previous hour, with three minutes left:
| Lead with 3 minutes left | Calm hours | Volatile hours |
|---|---|---|
| 1 to 2 bp | 71.5% | 60.3% |
| 2 to 5 bp | 81.1% | 69.2% |
| 5 to 10 bp | 91.5% | 82.1% |
| 10 to 15 bp | 96.3% | 88.1% |
| over 15 bp | 97.4% | 92.8% |
Worked example. Two minutes into a window, Bitcoin is 7 bp above the price to beat and Up is offered at 84¢, a break-even of 84.94%. On average that lead held 85.6% of the time: an edge of 0.7¢, too thin to act on. In a calm hour it held 91.5%: plus 6.6¢. In a volatile hour 82.1%: minus 2.8¢. Same screen, opposite decisions, and the input that changed is not on the order book.
A formula, and where it breaks
The continuous version of the table is a random-walk model: the chance that a lead survives is a normal tail probability, given the recent volatility of one-minute returns and the time left, with the horizon shortened by 40 seconds because the final minute is averaged. The 15-minute guide derives it. For 5-minute windows it needs one addition:
from math import erf, log, sqrt
def fair_up_probability(spot, price_to_beat, sigma_1m, seconds_left, cap=0.95):
"""P(Up) if BTC is a driftless random walk until the close.
sigma_1m: standard deviation of recent 1-minute log returns.
The horizon is shortened by 40 s because the close is a 60-second average.
In 5-minute windows the model is overconfident at the extremes, so its
output is capped while more than two minutes remain.
"""
horizon_min = max(seconds_left - 40, 1) / 60
z = log(spot / price_to_beat) / (sigma_1m * sqrt(horizon_min))
p = 0.5 * (1 + erf(z / sqrt(2)))
return min(max(p, 1 - cap), cap) if seconds_left > 120 else p
fair_up_probability(75_052.5, 75_000, 0.00039, 180) # 7 bp lead, 3 min left: 0.880
We scored the uncapped formula against every window, feeding it the trailing hour's volatility. With three minutes left:
| Model said the favorite wins | Favorite actually won | Windows |
|---|---|---|
| 54.6% | 57.1% | 8,461 |
| 65.0% | 69.2% | 7,404 |
| 74.9% | 78.9% | 6,545 |
| 84.9% | 86.8% | 5,773 |
| 92.5% | 91.5% | 2,595 |
| 97.1% | 95.2% | 2,227 |
| 99.7% | 97.4% | 1,542 |
The shape is the same as in the 15-minute market, only stronger. Between 55% and 85% the model is a conservative floor. Above 90% it is overconfident, and earlier in the window it is worse: with four minutes left, when the model said 99.7%, the favorite won 94.8% of the time (346 windows). Hence the cap. Until the last two minutes, treat anything above 95% as 95%, and never pay 99¢ because a bell curve said so.
Strategy 3: judge the final minute on the average, not on spot
In a 5-minute market a fifth of the settlement price is made in the last minute, so this is where most late decisions happen. How often the side that looked ahead went on to lose:
| Time left | Old rule, last tick decides | TWAP rule, watching spot | TWAP rule, watching the projected average |
|---|---|---|---|
| 60 seconds | 15.3% | 7.7% | 7.7% |
| 30 seconds | 10.6% | 3.3% | 2.6% |
| 10 seconds | 6.2% | 5.3% | 0.63% |
| 5 seconds | 3.4% | 6.8% | 0.20% |
Two readings. First, the TWAP settles the result earlier: with a minute left the leader lost 7.7% of windows, half the 15.3% under the old rule, which shortens the time in which a late entry is available at any price. Second, inside the last minute spot becomes a bad guide. With five seconds left, the side spot favors still loses 6.8% of windows, more than twice the 15-minute figure of 3.2%, because a last-second move is only one sixtieth of the closing price. The projected average, meaning the seconds already printed in the final minute plus the current price for the seconds still to come, is wrong 0.2% of the time.
def projected_close(final_minute, spot):
"""Estimate of the closing TWAP inside the last 60 seconds of a window.
final_minute: {second: price} for the seconds of the final minute that
have already printed. The seconds still to come are filled in at spot.
"""
prices = list(final_minute.values())[-60:]
return (sum(prices) + (60 - len(prices)) * spot) / 60
A note on the late favorite, the most copied idea for short markets: buy the obvious winner at 95 to 99¢ in the closing seconds. At 98¢ you risk 98.14¢ with the fee to make 1.86¢, so one loss erases 53 wins. With 30 seconds left a 2 to 5 bp lead held 99.3% of the time, 1.2¢ above that break-even, which is an edge only if you judge the lead on the projected average. Judged on spot, the error rate inside the last ten seconds is larger than the edge.
Strategy 4: quote instead of taking
Every number so far assumes you pay the fee. Makers do not, and they share 20% of the taker fees collected in the market as daily rebates (Maker Rebates Program). At 50¢ that moves the break-even from 51.75% to 50%, and in a market where the measurable edges are one to five cents, the fee is often the whole edge.
The cost is adverse selection: your resting order gets filled precisely when spot moves through it. Polymarket holds marketable orders on crypto markets for 150 ms before they match, a delay raised from 50 ms on September 4, 2026, and that head start is what lets a maker cancel a stale quote. It is enough time for software and none for a person. The rules from the 15-minute guide's maker section apply unchanged: quote only at prices your fair value already likes, reprice the moment spot moves, keep clips small, and remember that an order that never fills costs nothing.
What does not work in 5-minute markets
- Buying the bell blindly as a taker. Without a gap, the side in front at the bell wins 53% of the time, and a taker at 50¢ needs 51.75% before the spread. Repeated 288 times a day, a small negative becomes a large one.
- Sniping the last tick on spot. With five seconds left, spot's favorite loses 6.8% of windows.
- Fading streaks. After two same-direction windows the next reversed 51.0% of the time; after four, 52.1% (52.8% and 51.4% in the two halves of the sample); after a move of more than 20 bp, 52.7%. A taker buying the reversal at 51¢ needs 52.75%. The 15-minute market showed a small effect; the 5-minute market shows almost none.
- Weekend near-ties. On weekends the median 5-minute move was 2.9 bp and 21.9% of windows were decided by less than $7.50. That is a coin flip with a fee attached.
- Reusing 15-minute numbers or pre-August backtests. Strategy 2 shows the first problem, the 13.2% rule gap shows the second.
- Martingale sizing. At a coin-flip win rate a run of eight straight losses starts about once in 256 windows, which is roughly once a day at 288 windows a day.
When to trade: hours and weekends
Bitcoin's 5-minute range follows the trading day. Median move from the price to beat, by the hour the window opened:
| Session | UTC | New York | Median 5-minute move |
|---|---|---|---|
| US morning | 13:00 to 16:00 | 9 am to 12 pm | 7.1 to 7.6 bp |
| Asia morning | 00:00 to 02:00 | 8 pm to 10 pm | 5.0 to 5.4 bp |
| Quietest stretch | 09:00 to 12:00 | 5 am to 8 am | 3.9 to 4.1 bp |
| Weekdays | all | all | 5.8 bp |
| Weekends | all | all | 2.9 bp |
Big moves are not automatically better. The New York morning decides windows earlier, which helps Strategy 2, and reprices faster, which punishes slow execution. The quiet hours and weekends produce windows decided by a few dollars, where the under-1-bp column applies and the honest answer is usually no trade. Whatever you run, keep separate statistics per session.
5-minute or 15-minute: which market to trade
| Measure | 5-minute | 15-minute |
|---|---|---|
| Windows a day | 288 | 96 |
| Median move to the close | 4.8 bp | 8.6 bp |
| Decided by under 1 bp | 13.5% | 6.8% |
| Winner differs from the last-tick rule | 13.2% | 5.8% |
| 5 to 10 bp lead held, 3 minutes left | 85.6% | 90.9% |
| Reversal after two same-direction windows | 51.0% | 53.1% |
The 15-minute market gives a lead more time to prove itself and has the only streak effect we could measure. The 5-minute market gives three times as many decisions and a structural feature, the opening gap, that the longer market dilutes. The two are nested: every 15-minute window contains three 5-minute ones, and the last of the three settles on exactly the same 60 seconds. If you trade both, a position in each is one bet on Bitcoin. For the practical side of running both, see how the 5-minute and 15-minute crypto markets differ.
Automating the 5-minute market in Python
At 288 windows a day none of this is a manual job. The first piece of plumbing finds the live window and reads its order book, using public endpoints only:
import json
import time
import requests
GAMMA = "https://gamma-api.polymarket.com"
CLOB = "https://clob.polymarket.com"
def current_btc_5m_market():
"""The BTC Up or Down market for the 5-minute window open right now."""
start = int(time.time()) // 300 * 300 # windows open every 5 minutes
slug = f"btc-updown-5m-{start}"
event = requests.get(f"{GAMMA}/events", params={"slug": slug}, timeout=10).json()[0]
market = event["markets"][0]
up_token, down_token = json.loads(market["clobTokenIds"])
return {
"slug": slug,
"seconds_left": start + 300 - time.time(),
"up_token": up_token,
"down_token": down_token,
"fee_rate": market["feeSchedule"]["rate"], # 0.07 for crypto
}
def best_ask(token_id):
"""Cheapest offer for one outcome token, from the public order book."""
book = requests.get(f"{CLOB}/book", params={"token_id": token_id}, timeout=10).json()
return min((float(level["price"]) for level in book["asks"]), default=None)
market = current_btc_5m_market()
print(market["slug"], round(market["seconds_left"]), "s left, Up ask", best_ask(market["up_token"]))
The second piece is the price feed, and it changed this month. On September 15, 2026 Polymarket made its RTDS socket legacy for reference prices and moved them to a new socket, PolyBolt, with a migration guide; the old price topics are scheduled for removal. Code that reads crypto_prices_chainlink or crypto_prices_twap_sixty from ws-live-data.polymarket.com needs to move. PolyBolt requires your CLOB API credentials, which you create once with your wallet (authentication docs). Two channels matter: price.crypto.twap is Chainlink's 60-second TWAP, the settlement stream itself, and its value on the bell is the price to beat; price.crypto is a spot reference sourced from Pyth, close to Chainlink's aggregate but not the same, so treat leads measured on it as approximations.
import asyncio
import json
import os
import websockets
POLYBOLT = "wss://ws-live-v2.polymarket.com/ws"
SUBSCRIPTIONS = [
{"channel": "price.crypto.twap", "filter": {"symbol": "btcusd", "window_seconds": 60}},
{"channel": "price.crypto", "filter": {"symbol": "btcusd"}},
]
async def watch_5m():
"""Print the lead and the projected close for every 5-minute window."""
auth = {"apiKey": os.environ["POLY_API_KEY"], "secret": os.environ["POLY_API_SECRET"],
"passphrase": os.environ["POLY_API_PASSPHRASE"]}
window, price_to_beat, final_minute, last_price = None, None, {}, None
async with websockets.connect(POLYBOLT) as ws:
await ws.send(json.dumps({"op": "auth", "rid": "a1", "auth": auth}))
reply = json.loads(await ws.recv())
if reply.get("op") != "authed":
raise RuntimeError(f"authentication failed: {reply}")
await ws.send(json.dumps({"op": "subscribe", "rid": "s1", "subscriptions": SUBSCRIPTIONS}))
async for raw in ws:
msg = json.loads(raw)
if msg.get("op") == "error":
raise RuntimeError(msg)
if "payload" not in msg or msg.get("snapshot"):
continue # acknowledgements and the history snapshot
tick = msg["payload"]
second = tick["timestamp"] // 1000
price = float(tick["full_accuracy_value"])
if msg["channel"] == "price.crypto.twap":
if window is not None and second // 300 > window:
price_to_beat, final_minute = price, {} # the TWAP on the bell
window = second // 300
continue
if price_to_beat is None or second // 300 != window:
last_price = price
continue
left = 300 - second % 300
if left <= 60:
closes_at = (window + 1) * 300
for quiet in range(max(final_minute, default=closes_at - 61) + 1, second):
final_minute[quiet] = last_price # a second with no tick keeps the last price
final_minute[second] = price
last_price = price
close = projected_close(final_minute, price) if left <= 60 else price
print(f"{left:>3}s left lead {(price / price_to_beat - 1) * 1e4:+5.1f} bp "
f"projected close {(close / price_to_beat - 1) * 1e4:+5.1f} bp")
asyncio.run(watch_5m())
Start it before a bell with projected_close from Strategy 3 in the same file. From the next window on, it prints the opening gap, the lead on every tick and, in the final minute, the projected close. Add the trailing volatility and the tables above and you have Strategies 1 to 3 as signals. From there to a bot is the unglamorous part: signing CLOB v2 orders, keeping two sockets alive for days, canceling stale quotes inside the 150 ms delay, modeling the fill queue so paper results mean something, settling and logging 288 windows a day, and refusing to trade when a feed goes quiet.
That part is what we sell. The Polymarket trading bot is a Python script you run on your own machine or VPS, built for the 5-minute and 15-minute Bitcoin Up or Down markets: directional, maker and two-sided strategy modes with every threshold in a config file you control, a paper trading mode that fills against the real order book, a WebSocket engine that re-quotes on every book update, a daily-loss kill switch and exposure cap, Chainlink TWAP settlement support, and Telegram reports with CSV exports. Your private key stays in a local .env file; we never see it. The changelog lists what shipped in each release. One payment, no subscription, full source code.
FAQ
What is the best strategy for Polymarket 5 minute Bitcoin markets?
Price the lead instead of predicting direction, and include the opening gap. Measure how far Bitcoin is from the price to beat, look up how often a lead that size has held at that point of the window (92.3% for a 5 to 10 basis point lead with two minutes left in our data), and buy only when the share price plus the taker fee is below it. Early in the window use 5-minute numbers, not 15-minute ones, and in the final minute judge the lead on the projected average rather than spot.
How does the Bitcoin Up or Down 5-minute market resolve?
It resolves Up if the closing price is greater than or equal to the price to beat, otherwise Down. Both prices are Chainlink BTC/USD 60-second TWAPs: the price to beat is the average of the minute before the window opens, and the closing price is the average of the window's last minute. The 5-minute markets have used a 60-second average since August 14, 2026, and a 30-second one from August 7.
Why did Up lose when Bitcoin finished above the open on my chart?
Because neither price on a chart is the one that settles. The price to beat is the average of the minute before the open rather than the first print, and the close is the average of the last minute rather than the last print. An exchange chart can also differ from Chainlink's aggregate. In our replay the TWAP rule and a last-print rule named different winners in 13.2% of 5-minute windows.
How many 5-minute Bitcoin markets does Polymarket run a day?
288, one every five minutes around the clock, each titled with its window in New York time. Every 15-minute window contains three 5-minute ones, and the last of the three settles on the same 60 seconds as the 15-minute market.
What fees does Polymarket charge on 5-minute crypto markets?
The same as on other crypto markets. Takers pay shares × 0.07 × price × (1 − price), which is 1.75¢ per share at 50¢, 0.94¢ at 84¢ and 0.14¢ at 98¢. Makers pay nothing and share 20% of the taker fees as daily rebates.
Can you make money on Polymarket 5-minute markets?
Some accounts do, mostly automated market makers and fast directional bots; many more lose to fees. A taker buying coin flips pays 3.5% of the stake in every window. The edges we measured are a few cents per share and depend on volatility, the entry price and execution quality, so treat any strategy as unproven until it holds in paper trading with realistic fills.
Do I need a bot for the 5-minute market?
Not to place a trade, but realistically yes to run a strategy. There are 288 windows a day, good prices last seconds, only software can use the 150 ms taker delay to cancel a stale quote, and the final minute has to be tracked as a running average rather than read off a chart. A bot also enforces the boring parts: position limits, a daily stop and a log of every decision. Our guides to paper trading mode and risk management before going live cover how to test one safely.
Methodology and sources
Data. Binance spot BTCUSDT one-second klines from the public Binance data archive, May 20 to September 16, 2026 UTC: 10,368,000 seconds with no gaps and 34,559 complete 5-minute windows (the first needs a prior minute for its opening average). Bitcoin traded between $57,800 and $82,300 in the period. The 15-minute comparisons use the same seconds, 11,519 windows.
Rule replica. Price to beat: mean of the 60 one-second closes ending when the window opens. Settlement: mean of the 60 closes ending when it closes. A tie resolves Up, as in the market rules. For the rule comparison we also replayed a 30-second average (August 7 to 13) and the last one-second close (before August 7). Leads are spot at the checkpoint divided by the price to beat, in basis points.
Limits. (1) Binance BTCUSDT is not the Chainlink BTC/USD aggregate: the venue mix and the USDT quote differ, so near-ties can resolve differently. (2) These are Bitcoin's probabilities, not Polymarket's fills. We have no historical order books, so nothing here says what prices were on offer, at the bell or later. (3) One 120-day sample; regimes change. (4) Calm and volatile split at the sample median of trailing one-hour volatility, 3.9 bp per minute. (5) The whole sample is replayed under the current 60-second rule, although the live markets used other rules before August 14.
Sources. Polymarket predictions changelog (5-minute launch, TWAP resolution and window lengths, taker delay, PolyBolt); Polymarket trading fees; Maker Rebates Program; PolyBolt WebSocket and Migrating from RTDS; the BTC/USD 60-second TWAP stream named in the market rules.
This article is educational and is not financial advice. Prediction markets are risky and most short-term traders lose money. Polymarket is not available in every jurisdiction; check the rules where you live before trading.
