{"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 10 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.278361,"leader":{"name":"Lighter","slug":"lighter","value":0.278361},"rankings":[{"name":"Lighter","slug":"lighter","ms":{"p50":0.278361,"p90":0.620642,"p99":1.00274,"mean":0.278361},"successRate":100,"sampleSize":5757},{"name":"Extended","slug":"extended","ms":{"p50":2.5783,"p90":2.5772,"p99":2.57752,"mean":2.5783},"successRate":100,"sampleSize":5757},{"name":"Paradex","slug":"paradex","ms":{"p50":3.687,"p90":4.72411,"p99":6.37939,"mean":3.687},"successRate":100,"sampleSize":5757},{"name":"edgeX","slug":"edgex","ms":{"p50":3.92423,"p90":3.94623,"p99":4.08491,"mean":3.92423},"successRate":100,"sampleSize":5757},{"name":"gains.trade","slug":"gains","ms":{"p50":4,"p90":4,"p99":4,"mean":4},"successRate":100,"sampleSize":5757},{"name":"Polymarket","slug":"polymarket","ms":{"p50":4.17042,"p90":4.4605,"p99":5.32249,"mean":4.17042},"successRate":100,"sampleSize":5757},{"name":"Hyperliquid","slug":"hyperliquid","ms":{"p50":4.58552,"p90":4.57716,"p99":4.80779,"mean":4.58552},"successRate":100,"sampleSize":5757},{"name":"Aster","slug":"aster","ms":{"p50":5.0179,"p90":5.00772,"p99":5.51161,"mean":5.0179},"successRate":100,"sampleSize":5757},{"name":"dYdX v4","slug":"dydx","ms":{"p50":5.9622,"p90":7.28075,"p99":8.84602,"mean":5.9622},"successRate":100,"sampleSize":5757},{"name":"GMX v2","slug":"gmx","ms":{"p50":6,"p90":6,"p99":6,"mean":6},"successRate":99.3399,"sampleSize":5757}],"sparkline":[0.384951,0.562952,0.218732,0.311707,0.415376,0.518038,0.17916,0.322127,0.198754,0.483353,0.328378,0.673002,0.539653,0.24993,0.462699,0.293033,0.269878,0.431659,0.327847,0.643579,0.480479,0.282143,0.292722,0.350208,0.369078,0.505432,0.449008,0.423956,0.388224,0.203066,0.232464,0.275132,0.19925,0.44908,0.373788,0.291545,0.521464,0.317478,0.27794,0.252372,0.211593,0.321719,0.300593,0.317949,0.269985,0.463173,0.359007,0.318756,0.343434,0.272965,0.457163,0.44999,0.374521,0.240935,0.24647,0.462442,0.372305,0.434848,0.279123,0.282613,0.468487,0.409569,0.443393,0.222322,0.542635,0.336215,0.606082,0.351486,0.516725,0.588357,0.448455,0.45124,0.490891],"sampleSize":57570,"asOf":"2026-08-08T13:18:58.004Z","headline":"Lighter leads all-in cost at 0.0028% (24h avg) on Cheapest perp DEX, live all-in cost from $1k to $1M on ETH, BTC and SOL.","quote":"Lighter leads all-in cost at 0.0028% (24h avg) on Cheapest perp DEX, live all-in cost from $1k to $1M on ETH, BTC and SOL. 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-08-08. 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-08-08}\n}","apa":"OpenChainBench. (2026). Cheapest perp DEX, live all-in cost from $1k to $1M on ETH, BTC and SOL. Retrieved August 8, 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-08-08\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.trade (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 api-tier taker rate + `/orderbook?depth=100` walk. The book endpoint caps at 100 levels (about $1M visible on majors), 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.trade) 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"}