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 20Exchange: All · Binance · OKX · Bybit · Bitget Change: All · Added · Removed · Reweighted
| Time (UTC) | Change | Index | Constituent | Weight before | Weight after |
|---|---|---|---|---|---|
| Removed | OKX AIXBT-USDT-SWAP AIXBT | Gate AIXBT/USDT spot | 13% | 0% | |
| Removed | OKX AIXBT-USDT-SWAP AIXBT | KuCoin AIXBT/USDT spot | 13% | 0% | |
| Removed | OKX AAPL-USDT-SWAP AAPL | OKX XAAPL/USDC spot | 2.9% | 0% | |
| Removed | Binance UMAUSDT UMA | Coinbase UMA-USD*uindex(USDUSDT) spot | 15% | 0% | |
| Removed | Binance RPLUSDT RPL | Coinbase RPL-USD*uindex(USDUSDT) spot | 15% | 0% | |
| Removed | Binance PRLUSDT PRL | Coinbase PRL-USD*uindex(USDUSDT) spot | 10% | 0% | |
| Removed | Binance OUSDT O | Coinbase O-USD*uindex(USDUSDT) spot | 26% | 0% | |
| Removed | Binance COWUSDT COW | Coinbase COW-USD*uindex(USDUSDT) spot | 17% | 0% | |
| Removed | Binance BLURUSDT BLUR | Coinbase BLUR-USD*uindex(USDUSDT) spot | 14% | 0% | |
| Removed | Binance ARXUSDT ARX | Coinbase ARX-USD*uindex(USDUSDT) spot | 25% | 0% | |
| Removed | Bitget ZRXUSDT ZRX | Bybit ZRX/USDT spot | 8% | 0% | |
| Removed | Bitget ZKCUSDT ZKC | Gate ZKC/USDT spot | 4.1% | 0% | |
| Removed | Bitget ZESTUSDT ZEST | KuCoin ZEST/USDT spot | 12% | 0% | |
| Removed | Bitget YGGUSDT YGG | Bitget YGG/USDT spot | 10% | 0% | |
| Removed | Bitget YBUSDT YB | Bybit YB/USDT spot | 4.4% | 0% | |
| Removed | Bitget YBUSDT YB | KuCoin YB/USDT spot | 3.5% | 0% | |
| Removed | Bitget XPINUSDT XPIN | binance_alpha ALPHA_334/USDT unknown | 0% | 0% | |
| Removed | Bitget XAIUSDT XAI | Gate XAI/USDT spot | 1.2% | 0% | |
| Removed | Bitget XAIUSDT XAI | KuCoin XAI/USDT spot | 2.3% | 0% | |
| Removed | Bitget WOOUSDT WOO | Bitget WOO/USDT spot | 1.2% | 0% | |
| Removed | Bitget WETUSDT WET | Bybit WET/USDT spot | 25% | 0% | |
| Removed | Bitget WALUSDT WAL | KuCoin WAL/USDT spot | 5% | 0% | |
| Removed | Bitget VANAUSDT VANA | Bitget VANA/USDT spot | 5.9% | 0% | |
| Removed | Bitget VANAUSDT VANA | Gate VANA/USDT spot | 1.9% | 0% | |
| Removed | Bitget USUALUSDT USUAL | Bitget USUAL/USDT spot | 0.9% | 0% | |
| Removed | Bitget UMAUSDT UMA | Bybit UMA/USDT spot | 7% | 0% | |
| Removed | Bitget UMAUSDT UMA | KuCoin UMA/USDT spot | 1.6% | 0% | |
| Removed | Bitget TRUSTUSDT TRUST | Bitget TRUST/USDT spot | 25% | 0% | |
| Removed | Bitget TOWNSUSDT TOWNS | Bitget TOWNS/USDT spot | 1.3% | 0% | |
| Removed | Bitget TOSHIUSDT TOSHI | KuCoin TOSHI/USDT spot | 3.7% | 0% | |
| Removed | Bitget SYRUPUSDT SYRUP | Bitget SYRUP/USDT spot | 1.7% | 0% | |
| Removed | Bitget SXTUSDT SXT | Bitget SXT/USDT spot | 9.4% | 0% | |
| Removed | Bitget SUNUSDT SUN | Bybit SUN/USDT spot | 7.5% | 0% | |
| Removed | Bitget STABLEUSDT STABLE | KuCoin STABLE/USDT spot | 7.1% | 0% | |
| Removed | Bitget SONICUSDT SONIC | OKX SONIC/USDT spot | 13% | 0% | |
| Removed | Bitget SOMIUSDT SOMI | KuCoin SOMI/USDT spot | 21% | 0% | |
| Removed | Bitget SNXUSDT SNX | Bybit SNX/USDT spot | 9.1% | 0% | |
| Removed | Bitget SKYAIUSDT SKYAI | binance_alpha ALPHA_154/USDT unknown | 0.3% | 0% | |
| Removed | Bitget SKRUSDT SKR | KuCoin SKR/USDT spot | 20% | 0% | |
| Removed | Bitget SHELLUSDT SHELL | Gate SHELL/USDT spot | 3.7% | 0% | |
| Removed | Bitget SHELLUSDT SHELL | KuCoin SHELL/USDT spot | 3.2% | 0% | |
| Removed | Bitget SFPUSDT SFP | KuCoin SFP/USDT spot | 13% | 0% | |
| Removed | Bybit ZRXUSDT ZRX | Coinbase ZRX-USD spot | 24% | 0% | |
| Removed | Bitget SANTOSUSDT | Bitget futures SANTOS/USDT perp | 1.1% | 0% | |
| Removed | Bitget SANTOSUSDT | Gate SANTOS/USDT spot | 0.1% | 0% | |
| Removed | Bybit ZORAUSDT ZORA | KuCoin ZORA-USDT spot | 1.1% | 0% | |
| Removed | Bybit ZKCUSDT ZKC | Gate ZKC_USDT spot | 1.1% | 0% | |
| Removed | Bitget RSRUSDT RSR | Gate RSR/USDT spot | 5.4% | 0% | |
| Removed | Bitget RPLUSDT RPL | Bybit RPL/USDT spot | 4% | 0% | |
| Removed | Bybit YOFCUSDT | Bybit futures YOFCUSDT perp | 100% | 0% |
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.