A Polymarket four-hour up/down contract asks whether an asset finishes above where it started. That makes it a bet on a spot price, which means there are two venues pricing the same question at the same moment — and if you have both at one-second resolution you can ask which one moves first.
For the ETH selloff on 23 August 2026, the answer is neither. The prediction market repriced in the same second as Binance spot, and both series bottomed at 14:42:50 with no gap between them.
What happened
Between 14:41:45 and 14:42:50 UTC, ETH fell from 2452.84 to 2393.34 on Binance — about $59, or 2.4%, in sixty-five seconds. The Polymarket contract on whether ETH would finish its 12:00–16:00 window higher went from 0.815 to 0.065.
time ETH spot PM probability
14:41:45 2452.84 0.815
14:42:00 2452.49 0.805
14:42:15 2450.00 0.785
14:42:30 2436.50 0.510
14:42:45 2408.96 0.250
14:42:50 2393.34 0.065 ← both lows
14:43:00 2403.61 0.165
14:43:15 2409.35 0.150
14:43:30 2414.48 0.225
14:44:00 2420.77 0.275
14:44:45 2421.05 0.270This also answers a question we left open in the post on five markets repricing within 26 seconds. We declined to guess at a cause there. The cause was a sharp spot selloff, and the prediction markets were tracking it rather than anticipating anything.
Same second, not one second
Differencing both series and correlating at a range of time shifts gives a clean peak at zero:
shift correlation reading
-2s -0.095 market moves 2s earlier
-1s 0.185 market moves 1s earlier
0s 0.628 same second
+1s 0.410 market reacts 1s later
+2s -0.137 market reacts 2s later
+3s -0.061 market reacts 3s laterThe one-second-later shift is still positive at 0.410, which is what you would expect from second-boundary alignment rather than a genuine delay — a spot tick at 14:42:30.9 and a market print at 14:42:31.1 are 0.2 seconds apart but land in different buckets. Beyond that the correlation collapses.
What this rules out is more interesting than what it shows. There is no window here in which the spot move had happened and the prediction market had not yet noticed. At one-second granularity the two venues are simply synchronised.
Tighter falling than rising
Splitting the episode at the low and correlating each half separately, the peak stays at zero shift for both — but the relationship is much stronger on the way down:
phase seconds peak shift correlation
fall 171 0s 0.719
recovery 130 0s 0.415A correlation of 0.719 on the fall against 0.415 on the recovery, on comparable sample lengths. The market followed spot down closely and followed it back up loosely.
We would not over-read a single episode, and there are at least two ordinary explanations. A contract at 0.065 has less room to move per dollar of spot than one at 0.500, so the recovery is measured over a flatter part of the mapping. And liquidity thins as a contract becomes lopsided, which loosens any price relationship mechanically. Both are worth testing across many episodes rather than asserted from one.
What this means if you were hoping to arbitrage it
The naive trade — watch Binance, act on Polymarket before it catches up — needs a window where the two disagree. At one-second resolution, in the most violent minute of a two-percent selloff, there is no such window.
There is a second problem, and it is the one that actually decides the question. Even where a price gap existed, the book has to be able to absorb the trade. During this minute the ETH Up book's resting bid depth fell 96% and its ask depth rose almost sixfold; the spread went from one cent to twenty and back repeatedly. A signal you cannot fill is not a signal. What an L2 snapshot contains covers reading depth rather than price.
The same lesson in its extreme form: three Bitcoin strike contracts printed 0.500 in the same second on 10 September while the book behind the mid asked 0.998 — a repricing with no executable price at all.
Method
# Polymarket side — order book history at 1-second resolution
GET /v1/markets/eth-updown-4h-1787486400/prices
?start_ts=2026-08-23T14:40:00Z&end_ts=2026-08-23T14:45:00Z
&resolution=1s&limit=200 # page with next_cursor; 200 is the max
# Binance side — 1-second klines, public, no key
GET https://api.binance.com/api/v3/klines
?symbol=ETHUSDT&interval=1s&startTime=...&endTime=...
# Align on the second, difference both series, cross-correlate at shifts of k
Both sides are one-second. Binance klines are free and need no key. The Polymarket side needs an archive, because Polymarket does not keep its own order book or sub-minute price history — which data exists and which has to be captured goes through what is and is not available.
Limits
- One episode, one asset. 301 aligned seconds. Enough to rule out a multi-second lag in this instance, nowhere near enough to characterise the venues in general.
- Correlation of first differences on a short window. No significance testing, and with n this small the difference between 0.719 and 0.415 is suggestive rather than established.
- One-second buckets are the floor here. A real lead or lag of 200 milliseconds would be invisible to this method. Both venues could publish finer data than either of us is comparing.
Reproducing it
Both feeds are reachable with the calls above. Binance needs nothing; the Polymarket side needs an API key, and the free tier queries at the same 250ms resolution as the paid plans, which is all this analysis uses. A published sample of 897,192 snapshots including four-hour contracts is on Zenodo under CC BY 4.0 — listed with the other downloads — though this particular window falls outside it.