{"slug":"perp-mark-price-lag","title":"Perp DEX mark price fidelity: deviation from CEX spot reference, live","subtitle":"Median absolute deviation in basis points between each venue's mark price and a Binance spot reference, measured every 60 seconds on ETH, BTC and SOL. Lower means the venue's mark price stays closer to the CEX spot consensus. Oracle-priced venues use a real-time price feed anchored to CEX spot; orderbook venues derive their mark from their own book.","category":"Trading","metric":"Mark price deviation","unit":"bps","status":"live","higherIsBetter":false,"filters":null,"value":2.90944,"leader":{"name":"Hyperliquid","slug":"hyperliquid","value":2.90944},"leaders":[{"name":"Hyperliquid","slug":"hyperliquid","value":2.90944}],"rankings":[{"name":"Hyperliquid","slug":"hyperliquid","value":2.90944,"unit":"bps","ms":{"p50":2.90944,"p90":5.1834,"p99":7.52198,"mean":3.19637},"successRate":98.2639,"sampleSize":2880},{"name":"Lighter","slug":"lighter","value":3.51313,"unit":"bps","ms":{"p50":3.51313,"p90":4.94311,"p99":6.09963,"mean":3.54193},"successRate":99.86110000000001,"sampleSize":2880},{"name":"dYdX v4","slug":"dydx","value":12.9781,"unit":"bps","ms":{"p50":12.9781,"p90":16.7998,"p99":19.4359,"mean":13.0182},"successRate":100,"sampleSize":2880},{"name":"Paradex","slug":"paradex","value":13.5622,"unit":"bps","ms":{"p50":13.5622,"p90":16.453,"p99":20.116,"mean":13.7242},"successRate":100,"sampleSize":2880},{"name":"Gains","slug":"gains","value":14.778,"unit":"bps","ms":{"p50":14.778,"p90":16.8779,"p99":17.3413,"mean":14.6351},"successRate":100,"sampleSize":2880},{"name":"GMX","slug":"gmx","value":14.7804,"unit":"bps","ms":{"p50":14.7804,"p90":17.1938,"p99":18.7313,"mean":14.8135},"successRate":100,"sampleSize":2880}],"sparkline":[3.60494,3.55118,3.68795,6.97748,3.78595,3.77973,3.91995,2.04081,3.11762,3.21222,1.49997,2.63031,2.46331,3.29298,2.51512,2.38288,2.90804,2.73269,2.34009,3.00059,3.12198,2.6373,3.95731,3.131,3.70623,0.719225,1.19979,6.75464,1.50409,1.98685,2.4646,2.38101,3.00863,6.10513,4.77893,4.82571,1.97047,2.78183,4.57007,5.79047,7.52198,9.71506,9.96474,5.87391,3.1261,2.50592,3.30796,4.19187,2.51137,0.819739,2.54574,1.35291,2.2842,2.10823,1.93322,2.90781,1.26656,1.39441,2.14708,1.92356,1.8791,5.55567,1.57438,2.19163,1.83977,2.46584,2.73113,2.77528,3.71122,3.30356,2.36934,2.95245,0.33297],"sampleSize":17280,"asOf":"2026-11-03T05:28:21.041Z","freshness":{"asOf":"2026-11-03T05:28:21.041Z","ageHours":0.2,"stale":false},"measured":6,"ranked":6,"headline":"Hyperliquid posts the lowest mark price deviation at 0.029% (p50, 24h) across 6 ranked venues.","quote":"Hyperliquid posts the lowest mark price deviation at 0.029% (p50, 24h) across 6 ranked venues. Source: OpenChainBench (https://openchainbench.com/benchmarks/perp-mark-price-lag).","cite":{"plain":"OpenChainBench. \"Perp DEX mark price fidelity: deviation from CEX spot reference, live\". Retrieved 2026-11-03. https://openchainbench.com/benchmarks/perp-mark-price-lag","bibtex":"@misc{ocb_perp_mark_price_lag,\n  author = {OpenChainBench},\n  title  = {Perp DEX mark price fidelity: deviation from CEX spot reference, live},\n  year   = {2026},\n  url    = {https://openchainbench.com/benchmarks/perp-mark-price-lag},\n  note   = {Retrieved 2026-11-03}\n}","apa":"OpenChainBench. (2026). Perp DEX mark price fidelity: deviation from CEX spot reference, live. Retrieved November 3, 2026, from https://openchainbench.com/benchmarks/perp-mark-price-lag","ris":"TY  - GEN\r\nAU  - OpenChainBench\r\nTI  - Perp DEX mark price fidelity: deviation from CEX spot reference, live\r\nPY  - 2026\r\nUR  - https://openchainbench.com/benchmarks/perp-mark-price-lag\r\nY2  - 2026-11-03\r\nER  - \r\n"},"pageUrl":"https://openchainbench.com/benchmarks/perp-mark-price-lag","ogImage":"https://openchainbench.com/api/og/perp-mark-price-lag","source":"https://github.com/ChainBench/OpenChainBench/tree/main/harnesses/perp-mark-price-lag","methodology":["Cadence: every 60 seconds in parallel across all venues. Reference price and venue mark prices are fetched in the same cycle, so the comparison is time-aligned.","Reference price: Binance REST /api/v3/ticker/bookTicker for the selected asset (ETHUSDT, BTCUSDT, SOLUSDT). The harness uses the mid of best bid and best ask as the reference.","Gains (Gains v8, oracle-priced): GET backend-pricing.eu.gains.trade/charts, the venue's own pricing backend (the price its front end and its trades use), BTC/USD, ETH/USD and SOL/USD pairs. A snapshot older than 60 seconds is treated as a failure, never as a price. Until 2026-09-20 the harness read a Pyth Hermes proxy instead; that endpoint went behind API keys on 2026-08-27 and the row was empty for 24 days.","GMX v2 (oracle-priced): GET arbitrum-api.gmxinfra.io/prices/tickers, the oracle price GMX v2 publishes per token on Arbitrum; the harness uses the mid of minPrice and maxPrice, scaled from GMX's 30-decimal fixed point. Same 2026-09-20 switch from the Pyth proxy as Gains.","Hyperliquid: POST /info {type:metaAndAssetCtxs} returns markPx per asset. This is the venue's own mark price used for P&L and liquidations, derived from their HyperBFT oracle.","dYdX v4: GET /v4/perpetualMarkets from the dYdX indexer returns indexPrice per market. indexPrice is the oracle-anchored price dYdX uses for margin and liquidation calculations.","Lighter: orderbook mid computed from GET /api/v1/orderBookOrders best bid and ask. Lighter does not publish a separate mark price endpoint; the orderbook mid is the closest available approximation.","Paradex: GET /markets endpoint returns markPrice per instrument on Starknet L2.","Deviation formula: abs(mark - reference) / reference x 10000, in basis points. Signed version (mark - reference) / reference x 10000 also published.","Failure handling: a venue that errors or times out leaves the previous gauge in place and increments perp_mark_fetch_errors_total. The health gauge drops to 0, flagging the row as stale in the UI.","Scope: this bench measures the persistent deviation visible at 60-second polling. Sub-second wick events that resolve within a single poll interval are not captured. The methodology page names this explicitly to avoid overstating what is measured."],"license":"CC-BY-4.0"}