athenum

A Crypto Index Price Is Usually Not a Volume Weighted Average: Two Venues, Two Preset Grids, Unchanged Across 48 Hours

The index price is the quietest number in derivatives trading and the one with the most authority. It is the reference your venue prices its perpetual against, it is the anchor underneath the mark price that decides whether your position is closed for you, and almost nobody looks at what is inside it.

The common description, repeated across broker explainers and trading courses, echoed by Binance's own documentation, which calls the price index an aggregate "weighted by relative volume", and published by Athenum itself until this piece, is that the index is a volume weighted average of Bitcoin's price across several large spot exchanges. That is not what is actually running on either of the large USDT margined venues measured below. The weights are static preset fractions, so whatever volume may inform them at a periodic review, nothing in the live index is being recomputed from traded volume, and OKX says as much in its own help documentation, which describes three or more price sources as weighted by their "pre-set weighted values". The distinction matters because the volume weighted story attributes the index's resistance to manipulation to the wrong mechanism. Both venues publish their constituents on a public endpoint that needs no key, so this is checkable in one command rather than argued about.

Is a crypto futures index price a volume weighted average of spot?

Not in any live sense. On both Binance and OKX the constituent weights are static preset fractions that do not move with traded volume on any timescale you can observe from the endpoint. Measured on 2026-08-18, the Binance BTCUSDT index carried eight constituents whose weights land on a grid of forty sixths (8 of 8 on that grid, and the eight numerators sum to exactly 46), and the OKX BTC-USDT index carried five constituents whose weights are exact sixteenths (5 of 5, numerators summing to exactly 16). The same two weight sets, over the same two constituent lists, were already measured on 2026-08-16, and 48 hours later not one of the thirteen weights had changed by a single decimal place. Pull either endpoint twice sixty seconds apart and you see the same thing at the other end of the time scale: the weights are bit for bit identical while the constituent prices underneath them move. A volume weighted average cannot behave that way, because spot volume does not hold still for a minute, let alone for two days.

What resists manipulation here is therefore not the volume weighting. It is a fixed, auditable grid that cannot be inflated by wash trading a constituent into a larger share, plus each venue's own deviation and staleness rules on top. That is a different property from being evenly spread, and these grids are not evenly spread: on Binance a single constituent carries better than 43% by itself, and that constituent is Binance.

What was actually inside the Binance BTCUSDT index

Read from the public endpoint /fapi/v1/constituents at index timestamp 2026-08-18T11:44:39.818Z.

Constituent exchange Weight Weight as a fraction Price at that stamp
Binance 0.43478261 20/46 64,385.20
OKX 0.13043478 6/46 64,388.60
Coinbase 0.13043478 6/46 64,373.08
Bybit 0.06521739 3/46 64,384.10
Bitget 0.06521739 3/46 64,383.31
KuCoin 0.06521739 3/46 64,383.30
MEXC 0.06521739 3/46 64,386.81
Gate.io 0.04347826 2/46 64,382.60

Three things fall straight out of that table.

The weights are integers over a common denominator, not decimals that happen to look tidy. Every one of the eight resolves onto a forty sixths grid: 20, 6, 6, 3, 3, 3, 3 and 2, which sum to exactly 46. The published decimals do not: rounded to eight places they sum to 0.99999999, one hundred millionth short of one, which is what a set of exact fractions looks like after it has been rounded for a JSON field. Numbers derived from live traded volume do not land on a grid like that.

Binance's own order book is 43.478261% of the index that Binance's own perpetual is priced against. That is not a scandal and it is not hidden: the weight is published on an open endpoint that needs no key, it did not move across the 48 hours measured here, and any reader can check it in one command. It is still the single most decision relevant fact in the table, and it is absent from most explanations of how liquidation pricing works.

The dispersion across the eight sources was small at that instant and not zero: 64,388.60 at the top and 64,373.08 at the bottom, a spread of $15.52, about 2.41 bps. That is the width of the disagreement the weighting has to resolve.

What was inside the OKX BTC-USDT index at the same minute

Read from the public endpoint /api/v5/market/index-components at 2026-08-18T11:44:36.174Z.

Constituent exchange Weight Weight as a fraction Quoted pair Quoted price Price converted into USDT
Binance 0.25 4/16 BTC/USDT 64,385.19 64,385.19
OKX 0.25 4/16 BTC/USDT 64,388.50 64,388.50
Coinbase 0.1875 3/16 BTC/USD 64,327.03 64,396.58
Bybit 0.1875 3/16 BTC/USDT 64,384.00 64,384.00
Bitget 0.125 2/16 BTC/USDT 64,383.30 64,383.30

A different venue, a different constituent list, a different grid, and the same underlying design. Five sources rather than eight, weights on sixteenths rather than forty sixths, numerators summing to exactly 16, and OKX weighting its own book at a quarter while giving Binance's book the same quarter.

The Coinbase row is the one to read twice. Its quoted price is 64,327.03 and the number OKX actually feeds into the index is 64,396.58, because Coinbase's pair is quoted in dollars while the index is quoted in Tether. The gap between those two figures is not Coinbase disagreeing with the market by $69.55. It is the price of the quote unit: the implied conversion at that instant put USDT at about $0.99892. Any cross venue price comparison that puts a USD book next to a USDT book is measuring the stablecoin before it measures Bitcoin, and OKX's own endpoint is the cleanest public demonstration of it I know, because it prints both numbers in the same row.

The two venues also do not read the same Coinbase book, which is the reason the Coinbase row differs between the two tables before any conversion is applied: Binance's endpoint takes Coinbase's BTC-USDT pair, OKX's takes Coinbase's BTC-USD pair. Two indices can name the same constituent exchange and still be reading different order books on it.

Reproduce it in four steps

  1. Pull the constituents. curl "https://fapi.binance.com/fapi/v1/constituents?symbol=BTCUSDT" and curl "https://www.okx.com/api/v5/market/index-components?index=BTC-USDT". Neither needs a key.
  2. Multiply and sum. Take each constituent's price times its weight and add them up. On the Binance pull above this recomputes to 64,383.74, against the 64,383.24 that Binance's own premium index endpoint was publishing at that moment, a fifty cent gap that is the seconds of drift between two separately stamped endpoints rather than a different weighting. On the OKX pull, where the components and the index carry the same stamp, it recomputes to 64,387.69 against a published index of 64,387.60, a nine cent gap. The published weights really are the weights in use.
  3. Wait a minute and pull again. At the Binance stamp 2026-08-18T11:45:39.825Z the weights were unchanged to the last decimal while 7 of 8 constituent prices had moved; at the OKX stamp 11:45:52.221Z the weights were unchanged while 5 of 5 of its own had moved.
  4. Note what you cannot see. Neither payload carries a rebalance date, a rule for how a constituent is added or dropped, or the threshold at which a deviating source is excluded. Those live in each venue's own methodology documentation, and they are the part that actually protects you in a violent minute.

What this changes if you trade leveraged

Stop treating the index as a neutral market average. It is a venue specific construction, and two venues looking at the same asset in the same minute built theirs from different sources with different weights, which is the ordinary case rather than an anomaly.

Then keep one distinction straight, because it is the one most often collapsed: the index is not the trigger. Liquidation on Binance, OKX and Bybit is decided against the mark price, and the mark price is derived from the index rather than equal to it, though that is a design choice rather than a law: on dYdX Chain the oracle price that plays the index role is itself the liquidation trigger. In the Binance pull above the mark and the index were not the same number at the same instant, 64,362.02 against 64,383.24. The mechanism that holds them together, and the reason the gap is usually small and occasionally is not, is the premium index, and Athenum's explainer on how the premium index keeps a perpetual tethered to spot is the piece to read next, with one correction carried over from above: it describes the underlying index as a volume weighted or median basket, and on the two venues measured here it is neither. That page is also the reason this article stops short of saying the index closes your position.

Finally, when you see two data providers publish different Bitcoin prices, check the quote unit before you conclude anything about venues. The Coinbase row above moves $69.55 purely by being restated from dollars into Tether.

What this article does not claim

It does not claim that preset weights are worse than volume weights. A fixed grid is auditable and cannot be gamed by wash trading a constituent into a larger share, which is a real argument in its favour.

It does not claim these weights are permanent. They are what both venues published on 2026-08-16 and again on 2026-08-18, and both venues reserve the right to revise their constituent sets. Two days of stability is evidence that the grid is preset, not a promise that it is frozen. The whole point of the four step reproduction above is that you should re-read the endpoint rather than quote this table back at some later date.

It does not claim every venue works this way, and volume weighting is genuinely used elsewhere. Two venues were measured here, both of them USDT margined. Regulated USD benchmarks are built differently: the CME CF Bitcoin Reference Rate splits its observation window into equal partitions, takes the volume weighted median of constituent exchange trades in each partition and averages those medians equally, and the CME CF Bitcoin Real Time Index is calculated from a consolidated order book rather than from trade data. Venues that run USD or coin margined indices, and venues that build from a median rather than a weighted mean, are a different construction and are not covered by this measurement.

Athenum is a browser based terminal for reading cross venue derivatives positioning, funding, basis and flow in one place. Nothing above needs Athenum to verify: every number in this piece came from the venues' own no key public endpoints, and the commands are printed so you can run them yourself.