{"slug":"perp-fees","title":"Cheapest perp DEX, live all-in cost from $1k to $1M on ETH, BTC and SOL","subtitle":"All-in cost in basis points to open a long, measured on ETH, BTC and SOL at three order sizes: $1k where fees decide, $100k where impact appears, $1M where book depth takes over. Taker fee plus half-spread plus impact, read live from public APIs across 11 venues including Lighter, Hyperliquid, Polymarket, Paradex, Extended, Aster and edgex.","category":"Trading","metric":"All-in cost","unit":"bps","status":"live","higherIsBetter":false,"filters":null,"value":0.233359,"leader":{"name":"Lighter","slug":"lighter","value":0.233359},"leaders":[{"name":"Lighter","slug":"lighter","value":0.233359}],"rankings":[{"name":"Lighter","slug":"lighter","ms":{"p50":0.233359,"p90":0.405409,"p99":0.577558,"mean":0.233359},"successRate":99.6875,"sampleSize":2880},{"name":"Extended","slug":"extended","ms":{"p50":2.70223,"p90":2.68568,"p99":3.38643,"mean":2.70223},"successRate":100,"sampleSize":2880},{"name":"Paradex","slug":"paradex","ms":{"p50":2.80047,"p90":3.63891,"p99":13.7656,"mean":2.80047},"successRate":100,"sampleSize":2880},{"name":"Ondo Perps","slug":"ondo","ms":{"p50":3.39897,"p90":3.99331,"p99":4.73775,"mean":3.39897},"successRate":100,"sampleSize":2880},{"name":"Gains","slug":"gains","ms":{"p50":4,"p90":4,"p99":4,"mean":4},"successRate":100,"sampleSize":2880},{"name":"Hyperliquid","slug":"hyperliquid","ms":{"p50":4.69087,"p90":4.6855,"p99":5.05362,"mean":4.69087},"successRate":98.6458,"sampleSize":2880},{"name":"edgeX","slug":"edgex","ms":{"p50":4.704,"p90":4.78341,"p99":5.33996,"mean":4.704},"successRate":100,"sampleSize":2880},{"name":"Aster","slug":"aster","ms":{"p50":5.05964,"p90":5.11375,"p99":5.90343,"mean":5.05964},"successRate":100,"sampleSize":2880},{"name":"Polymarket","slug":"polymarket","ms":{"p50":5.7108,"p90":5.84556,"p99":29.8589,"mean":5.7108},"successRate":100,"sampleSize":2880},{"name":"GMX v2","slug":"gmx","ms":{"p50":6,"p90":6,"p99":6,"mean":6},"successRate":97.3611,"sampleSize":2880},{"name":"dYdX v4","slug":"dydx","ms":{"p50":7.28755,"p90":10.0075,"p99":12.5297,"mean":7.28755},"successRate":99.6875,"sampleSize":2880}],"sparkline":[0.277645,0.370428,0.148595,0.474542,0.0186031,0.129969,0.315073,0.233728,0.393971,0.258606,0.31398,0.332378,0.184517,0.184518,0.16776,0.0737923,0.577558,0.36891,0.165882,0.18418,0.312582,0.349713,0.147292,0.294472,0.294655,0.23957,0.221271,0.257796,0.142342,0.237783,0.245422,0.239998,0.374624,0.0923035,0.295877,0.174008,0.198589,0.203982,0.0926504,0.147959,0.373957,0.240719,0.155272,0.160204,0.185587,0.259924,0.185488,0.129858,0.0926875,0.0184914,0.276846,0.110579,0.257886,0.319499,0.114373,0.166419,0.387548,0.0184265,0.018411,0.269801,0.349871,0.202627,0.184237,0.442666,0.202657,0.239536,0.327081,0.202415,0.147431,0.264852,0.331626,0.492907,0.147247],"sampleSize":31680,"asOf":"2026-10-06T15:26:57.214Z","freshness":{"asOf":"2026-10-06T15:26:57.214Z","ageHours":0.1,"stale":false},"measured":11,"ranked":11,"headline":"Lighter posts the lowest all-in cost at 0.0023% (24h avg) across 11 ranked venues.","quote":"Lighter posts the lowest all-in cost at 0.0023% (24h avg) across 11 ranked venues. Source: OpenChainBench (https://openchainbench.com/benchmarks/perp-fees).","cite":{"plain":"OpenChainBench. \"Cheapest perp DEX, live all-in cost from $1k to $1M on ETH, BTC and SOL\". Retrieved 2026-10-06. https://openchainbench.com/benchmarks/perp-fees","bibtex":"@misc{ocb_perp_fees,\n  author = {OpenChainBench},\n  title  = {Cheapest perp DEX, live all-in cost from $1k to $1M on ETH, BTC and SOL},\n  year   = {2026},\n  url    = {https://openchainbench.com/benchmarks/perp-fees},\n  note   = {Retrieved 2026-10-06}\n}","apa":"OpenChainBench. (2026). Cheapest perp DEX, live all-in cost from $1k to $1M on ETH, BTC and SOL. Retrieved October 6, 2026, from https://openchainbench.com/benchmarks/perp-fees","ris":"TY  - GEN\r\nAU  - OpenChainBench\r\nTI  - Cheapest perp DEX, live all-in cost from $1k to $1M on ETH, BTC and SOL\r\nPY  - 2026\r\nUR  - https://openchainbench.com/benchmarks/perp-fees\r\nY2  - 2026-10-06\r\nER  - \r\n"},"pageUrl":"https://openchainbench.com/benchmarks/perp-fees","ogImage":"https://openchainbench.com/api/og/perp-fees","source":"https://github.com/ChainBench/OpenChainBench/tree/main/harnesses/perp-fees","methodology":["Cadence: every 5 minutes, in parallel across all venues.","Trade simulated: a long at 10x, measured independently on ETH, BTC and SOL (the chain tabs scope the board; the unfiltered view averages the three). Headline notional $1,000 with $10k, $100k and $1M tiers rewalked on the same book.","Hyperliquid: `POST /info {type: l2Book}` for asks + `{type: userFees, user: 0x000...000}` for taker fee + `{type: metaAndAssetCtxs}` for funding.","dYdX v4: indexer `/orderbooks/perpetualMarket/ETH-USD` + `/perpetualMarkets` (funding) + Cosmos REST `/dydxprotocol/v4/feetiers/perpetual_fee_params` for tier-0 default fee.","GMX v2 (Arbitrum): Subsquid GraphQL on the synthetics-arbitrum subgraph for `positionFeeFactorForNegativeImpact` (worst-case open) on the ETH/USD, BTC/USD and SOL/USD markets + gmxinfra REST for funding. Oracle priced, no orderbook: the spread term is zero.","Lighter: `/orderBookDetails` (taker fee per market) + `/orderBookOrders` (orderbook walk).","Gains (Gains v8 on Base): fees read directly on-chain. `eth_call pairs(N)` gives `spreadP` and `feeIndex`, then `eth_call fees(feeIndex)` gives the open fee (`totalPositionSizeFeeP`). The taker crosses one side of the book, so we charge half of `spreadP`. SOL has `spreadP` 0 on-chain (Gains prices that pair's spread dynamically), so its figure is the open fee alone. Values in 1e10 precision per Gains v8 convention. Fee tier cached 1h, pair config 6h.","Paradex: `/markets` fee config for the interactive (Retail) taker rate, 0 bps as of 2026-09, + `/orderbook/{market}/interactive?depth=100` walk. Paradex runs two books: the interactive one includes RPI (Retail Price Improvement) maker liquidity and is what UI and interactive-token orders cross; the plain `/orderbook` is the API book, RPI excluded, crossed by Pro (plain API) orders at the 2 bps api-tier fee.","Paradex, continued: the two books diverge on thin pairs (SOL on 2026-09-22: 0.03 % spread on the interactive book against 1.4 % on the API book), so the bench reads the interactive book as the cost of opening a position; an algorithmic taker should add 2 bps and expect the wider API book. The endpoint caps at 100 levels, so the $1M tier can be skipped when the visible book thins.","Extended: full public book from `/info/markets/<m>/orderbook` + `/stats` funding (1h native). Its taker fee is not exposed by any public endpoint; the documented base rate of 2.5 bps is used and this is the one venue where the fee is not read live.","All-in formula: `all_in_bps = taker_fee_bps + spread_bps`. Both components emitted as separate metrics for transparency.","Notional tiers: the same measurement runs at $1,000, $10,000, $100,000 and $1,000,000 by rewalking the already fetched book, published to `perp_fees_all_in_bps_tier{venue, chain, notional}`. The headline `perp_fees_all_in_bps` stays defined at $1,000. A tier the book cannot fill is skipped and counted in `perp_fees_tier_skipped_total`, never extrapolated. Oracle priced venues (GMX v2, Gains) charge a flat percentage of size, so their figure repeats across tiers.","Book depth for the $1M tier: Lighter is walked on its top 100 levels, dYdX on the full indexer book, Polymarket on up to 500 levels. Hyperliquid returns its 20 best raw levels; when those cannot absorb the tier the harness refetches with nSigFigs=5, the finest price aggregation the API offers, which extends coverage with negligible price rounding.","Failures (5xx, timeouts, rate limits) leave the previous gauge in place and increment a per-venue `fetch_errors_total` counter. The page falls back to the last successful sample."],"license":"CC-BY-4.0"}