Perp index constituent changes
A perpetual's mark price is built from an index: a weighted basket of spot prices from several exchanges. This page lists every constituent the exchange added or removed, and every weight move of at least 5 percentage points, newest first.
Constituent changes as published by each exchange, detected by hourly snapshot. A removal is not a delisting. RSS feed.
Constituent changes · last 30 days
newest first · times in UTC · page 18Exchange: All · Binance · OKX · Bybit · Bitget Change: All · Added · Removed · Reweighted
| Time (UTC) | Change | Index | Constituent | Weight before | Weight after |
|---|---|---|---|---|---|
| Reweighted | Bybit BBXUSDT | Pyth Equity.US.BB/USD oracle | 34% | 22% | |
| Reweighted | Bybit B3USDT B3 | Bithumb B3_KRW spot | 50% | 34% | |
| Reweighted | Bybit B3USDT B3 | Bybit B3USDT spot | 47% | 25% | |
| Reweighted | Bitget ARXUSDT ARX | Bitget ARX/USDT spot | 37% | 30% | |
| Reweighted | Bitget ARXUSDT ARX | Bybit ARX/USDT spot | 37% | 30% | |
| Reweighted | Bitget ARXUSDT ARX | MEXC ARX/USDT spot | 27% | 20% | |
| Reweighted | Bybit B2USDT B2 | Gate B2_USDT spot | 60% | 55% | |
| Reweighted | Bybit B2USDT B2 | MEXC B2USDT spot | 18% | 24% | |
| Reweighted | Bitget APPUSDT | intrinio APPSTOCK/USD unknown | 25% | 20% | |
| Reweighted | Bitget APPUSDT | massive APPSTOCK/USD reference | 15% | 10% | |
| Reweighted | Bitget APPUSDT | pyth_pro APPSTOCK/USD oracle | 35% | 30% | |
| Reweighted | Bitget APPUSDT | tiger APPSTOCK/USD unknown | 25% | 20% | |
| Reweighted | Bybit ASRUSDT ASR | Gate ASR_USDT spot | 6.7% | 12% | |
| Reweighted | Bybit ARPAUSDT ARPA | MEXC ARPAUSDT spot | 25% | 17% | |
| Reweighted | Bybit ARKKUSDT | kaiko KK_RFR_ARKKUSD reference | 45% | 30% | |
| Reweighted | Bybit ARKKUSDT | Pyth Equity.US.ARKK/USD oracle | 45% | 30% | |
| Reweighted | Bitget ANETUSDT | massive ANET/USD reference | 25% | 33% | |
| Reweighted | Bitget ANETUSDT | Pyth ANET/USD oracle | 25% | 33% | |
| Reweighted | Bitget ANETUSDT | tiger ANET/USD unknown | 25% | 33% | |
| Reweighted | Bybit APRUSDT APR | Kraken APR/USD spot | 17% | 7.6% | |
| Reweighted | Bybit APRUSDT APR | KuCoin APR-USDT spot | 47% | 22% | |
| Reweighted | Bybit APRUSDT APR | MEXC APRUSDT spot | 36% | 16% | |
| Reweighted | Bitget AMGNUSDT | massive AMGN/USD reference | 33% | 25% | |
| Reweighted | Bitget AMGNUSDT | Pyth AMGN/USD oracle | 33% | 25% | |
| Reweighted | Bitget AMGNUSDT | tiger AMGN/USD unknown | 33% | 25% | |
| Reweighted | Bybit AMCUSDT | kaiko KK_RFR_AMCUSD reference | 78% | 52% | |
| Reweighted | Bitget AIOUSDT AIO | Bitget AIO/USDT spot | 43% | 49% | |
| Reweighted | Bitget AEONUSDT AEON | Bitget AEON/USDT spot | 37% | 30% | |
| Reweighted | Bitget AEONUSDT AEON | KuCoin AEON/USDT spot | 27% | 20% | |
| Reweighted | Bitget AEONUSDT AEON | OKX AEON/USDT spot | 37% | 30% | |
| Reweighted | Bitget ACUUSDT ACU | KuCoin ACU/USDT spot | 30% | 24% | |
| Reweighted | Bybit AALUSDT | massive AAL reference | 50% | 45% | |
| Reweighted | Bybit AALUSDT | Pyth Equity.US.AAL/USD oracle | 50% | 45% | |
| Reweighted | Bitget AAOIUSDT AAOI | intrinio AAOI/USD unknown | 20% | 25% | |
| Reweighted | Bitget AAOIUSDT AAOI | massive AAOI/USD reference | 10% | 15% | |
| Reweighted | Bitget AAOIUSDT AAOI | pyth_pro AAOI/USD oracle | 30% | 35% | |
| Reweighted | Bitget AAOIUSDT AAOI | tiger AAOI/USD unknown | 20% | 25% | |
| Reweighted | Bybit 1000TURBOUSDT TURBO | Binance TURBOUSDT spot | 64% | 58% | |
| Reweighted | Bybit 1000RATSUSDT RATS | Bybit RATSUSDT spot | 27% | 32% | |
| Reweighted | Bybit 1000RATSUSDT RATS | Gate RATS_USDT spot | 54% | 68% | |
| Reweighted | Bitget 1INCHUSDT 1INCH | Bybit 1INCH/USDT spot | 21% | 26% | |
| Reweighted | Bitget 1000RATSUSDT RATS | Bitget 1000RATS/USDT spot | 21% | 28% | |
| Reweighted | Bitget 1000RATSUSDT RATS | Gate 1000RATS/USDT spot | 37% | 51% | |
| Reweighted | OKX ZM-USDT-SWAP | Binance index ZM/USDT index | 22% | 47% | |
| Reweighted | OKX ZM-USDT-SWAP | kaiko_reference_rate ZM/USD reference | 24% | 5.6% | |
| Reweighted | OKX ZM-USDT-SWAP | Pyth ZM/USD oracle | 24% | 47% | |
| Reweighted | OKX XOM-USDT-SWAP | massive XOM/USD reference | 9.3% | 17% | |
| Reweighted | OKX XOM-USDT-SWAP | Pyth XOM/USD oracle | 35% | 27% | |
| Reweighted | OKX XLE-USDT-SWAP | massive XLE/USD reference | 19% | 13% | |
| Reweighted | OKX XIAOMI-USDT-SWAP | Binance index HK1810/USDT index | 50% | 57% |
Method. Each exchange's public index-constituents API is read once an hour for every perpetual it lists. Added and removed constituents are always listed; weight moves only when they reach 5 percentage points. A removal is recorded only from a complete snapshot. The first snapshot of each perp is the starting composition, not a change. Event ids (the row anchors and RSS guids) never change.
How to read it. Index constituents decide which spot prices feed a perp's mark price. Exchanges sometimes change constituents before other listing changes, but a removal on its own says only that the index stopped using that source. Constituent changes as published by each exchange, detected by hourly snapshot. A removal is not a delisting.
Index constituent changes FAQ
What is a perpetual's index?
Exchanges do not liquidate on their own last traded price. They use a mark price built from an index: a weighted average of spot prices from several exchanges, with outlier guards. Each exchange publishes the current constituents and weights through its public API.
How are changes detected?
Hourly snapshots of each exchange's index constituents API. A constituent is added when it first appears, removed when a complete snapshot no longer lists it (a failed or partial snapshot never counts as a removal), and reweighted when its weight moves at least 5 percentage points. A change can be up to an hour old when it shows here.
Does a removed constituent mean the coin is leaving that exchange?
No. Exchanges add and drop index sources for many reasons: thin or stale books, a source exchange's maintenance, or a routine rebalance. A removal here only means the index stopped using that source.
Is there an RSS feed?
Yes: /mark-price-xray/changes/rss.xml carries the newest 50 changes and accepts the same ?venue= filter.