Data Store  /  TWAP-Adjusted 15-minute Crypto Price Feed
TWAP-adjusted 15-minute crypto price feed

TWAP-Adjusted 15-minute Crypto Price Feed

60s TWAPJuly 2026All 6 coinsPrice feed — no order books

On 2026-08-07 Polymarket’s crypto up/down markets stop settling on a closing snapshot and start settling on a time-weighted average price. This is the feed side of that change for July 2026: the PR&R (Chainlink) price tape, cycle-aligned to the 15-minute markets, with the 60-second average carried alongside the spot price it replaces — one row per second, one file per cycle.

Cycle
15-minute markets
New settlement
60-second TWAP
Effective
2026-08-07 00:00 UTC
Winners that flip
3.9% of cycles
Coverage
Jul 1 to Jul 31, 2026
Days
31 (full month)
Cycle
15-minute
TWAP window
60 seconds
Coins
All 6 (BTC–DOGE)
Cycles
17,841
Cadence
1-second, complete grid
Size
916 MB · Parquet

What changed

The price history is the one the markets actually used. What the settlement rule reads off it is not.

Until 2026-08-07

Closing snapshot

The market resolves on the underlying price at a single instant — the close. One print decides the cycle, and the last seconds carry all the settlement risk.

From 2026-08-07

60-second TWAP

The market resolves on the average price over the final 60 seconds. Single prints stop deciding cycles, and 3.9% of July 2026’s 15-minute cycles resolve to the other side.

What’s in the download

Spot and TWAP side by side

Every second of every cycle carries the spot price the markets used and the trailing 30s and 60s averages the new rule uses instead. No joining two datasets to compare the rules.

Both winner labels

Each cycle resolves under the snapshot rule and the TWAP rule, so you can isolate the cycles the change actually flips instead of guessing at them.

Data quality as columns

observed marks the seconds that were real feed reports; twap30_observed / twap60_observed count the real reports behind each average. Nothing carried is passed off as sampled.

Read this before you buy

The averages in here are reconstructed, not captured. That is the single most important thing to know about this dataset, so it sits above the buy button.

What this is

  • Real spot history. The price column is the PR&R Chainlink feed as recorded during July 2026. Keep the rows where observed is true and you have the raw tape back, exactly.
  • Both settlement rules, per cycle. Open, snapshot close, TWAP close, both winners and the flip flag — 17,841 cycles of it.
  • Joins onto the order books. The cycle key set mirrors the spot feed archive exactly, so market_slug lines up 1:1 with the order-book datasets. No cycle was invented to fill a gap.
  • Reproducible. The generator and the independent validator ship inside the ZIP, alongside the methodology.

What this is not

  • Not Chainlink’s TWAP feed. We began capturing the real 30s and 60s streams on 2026-08-03. None exists for July 2026 and none can be made after the fact. These averages are computed from our own 1-second spot tape.
  • Not a live capture of TWAP-settled markets. The rule starts 2026-08-07; nothing in here traded under it.
  • No order books. This is the price feed only. The re-priced books are a separate dataset.
  • Forward filled. The feed publishes on change, so 4.18% of seconds carry no report and hold the previous price. That is what a time-weighted average of an on-change feed is, but it means 31 cycles have no real report inside the settlement window at all — flagged by window_observed, not dropped.
  • Capture gaps. 17,841 of 17,856 cycles are present; the 15 missing are gaps in the underlying capture that no rebuild can fill.
The two assumptions, stated up front

Polymarket published the TWAP window lengths (60s for 15-minute markets). It did not publish the window edge: Chainlink states it does not publish the custom feed’s sampling boundaries, weighting, rounding or missing-input behaviour, and warns against reproducing the value without a spec. We assume the last 60 seconds strictly before close. Whether the market open also becomes an average is unstated; we assume a single snapshot at open, unchanged — if it averages too, the winner-change rate rises materially. Both assumptions are recorded in the manifest, and the generator ships inside the ZIP so you can re-run it under your own.

Get this dataset

TWAP-Adjusted 15-minute Crypto Price Feed — July 2026
Jul 1 to Jul 31, 2026 · all 6 coins · 17,841 cycles · 916 MB
  • Per-cycle 1-second feed: spot, 30s and 60s TWAP, settlement average
  • Resolution table: both rules, both winners, per cycle
  • Methodology, the generator & the independent validator

Pairs with the order books

Same cycle, same month, same market_slug — the re-priced full-depth books for the flow that traded against this feed.

The other price-feed datasets

Same treatment, other cycle and month. Each is sold separately.

Price-feed columns

One row per second of the cycle, in PriceFeed_15m/<COIN>/dt=YYYY-MM-DD/<coin>-updown-15m-<cycle>.parquet:

FieldTypeDescription
timestampintEpoch seconds — one row per second of the cycle
datetimetsThe same instant, UTC
pricefloatSpot price, forward-filled onto a complete 1-second grid
observedboolTrue where this second carried a real feed report
twap30floatTrailing 30-second average, inclusive of this second
twap60floatTrailing 60-second average, inclusive of this second
twap30_observedintReal reports behind the 30s average (0–30)
twap60_observedintReal reports behind the 60s average (0–60)
settlement_twapfloatThe average that settles THIS market
twap_window_sintSettlement window length for this market
resolutionstrCadence — always 1s
sourcestrchainlink_derived_twap_from_prr_1s_spot
market_slugstrJoin key — identical to the order-book datasets
cycle_startintCycle open, epoch seconds
cycle_endintCycle close, epoch seconds

Resolution table columns

One row per cycle, in resolution/<COIN>.parquet. This is where both settlement rules sit side by side:

FieldTypeDescription
coinstrUnderlying (BTC/ETH/SOL/XRP/BNB/DOGE)
tfstrMarket cycle length (5m / 15m)
daydateUTC day the cycle belongs to
market_slugstrJoin key, shared with the order-book datasets
cycle_startintCycle open, epoch seconds
cycle_endintCycle close, epoch seconds
openfloatOpening reference — snapshot at cycle_start
close_snapshotfloatPrice AT cycle_end — the OLD rule
twap_closefloatMean of the final window — the NEW rule
twap_window_sintWindow length used (30 or 60)
winner_snapshotstrUp / Down under the snapshot rule
winner_twapstrUp / Down under the TWAP rule
winner_changedboolTrue where the two rules disagree
move_bpfloatCycle move in bp, snapshot rule
move_bp_twapfloatCycle move in bp, TWAP rule
observed_secondsintSeconds of this cycle with a real feed report
cycle_secondsintLength of the cycle in seconds
window_observedintReal reports inside the settlement window
TWAP-Adjusted 15-minute Crypto Price Feed · July 2026 · Data Store | PR&R