{"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.286461,"leader":{"name":"Lighter","slug":"lighter","value":0.286461},"rankings":[{"name":"Lighter","slug":"lighter","ms":{"p50":0.286461,"p90":0.541271,"p99":0.849166,"mean":0.286461},"successRate":100,"sampleSize":5760},{"name":"Extended","slug":"extended","ms":{"p50":2.57805,"p90":2.57711,"p99":2.57719,"mean":2.57805},"successRate":100,"sampleSize":5760},{"name":"Paradex","slug":"paradex","ms":{"p50":3.72161,"p90":4.89839,"p99":6.06338,"mean":3.72161},"successRate":100,"sampleSize":5760},{"name":"edgeX","slug":"edgex","ms":{"p50":3.91772,"p90":3.91561,"p99":3.99221,"mean":3.91772},"successRate":100,"sampleSize":5760},{"name":"gains.trade","slug":"gains","ms":{"p50":4,"p90":4,"p99":4,"mean":4},"successRate":100,"sampleSize":5760},{"name":"Polymarket","slug":"polymarket","ms":{"p50":4.10357,"p90":4.0771,"p99":4.66408,"mean":4.10357},"successRate":100,"sampleSize":5760},{"name":"Hyperliquid","slug":"hyperliquid","ms":{"p50":4.57929,"p90":4.57706,"p99":4.70825,"mean":4.57929},"successRate":100,"sampleSize":5760},{"name":"Aster","slug":"aster","ms":{"p50":5.02155,"p90":5.00771,"p99":5.42439,"mean":5.02155},"successRate":100,"sampleSize":5760},{"name":"GMX v2","slug":"gmx","ms":{"p50":6,"p90":6,"p99":6,"mean":6},"successRate":100,"sampleSize":5760},{"name":"dYdX v4","slug":"dydx","ms":{"p50":6.21133,"p90":8.00659,"p99":11.6555,"mean":6.21133},"successRate":100,"sampleSize":5760}],"sparkline":[0.236234,0.0339025,0.574268,0.484539,0.295705,0.227701,0.38102,0.391847,0.335614,0.19575,0.438446,0.298987,0.235575,0.47858,0.209981,0.353096,0.331151,0.297717,0.299776,0.202678,0.381955,0.418241,0.461026,0.233189,0.301982,0.308606,0.470128,0.438719,0.232633,0.225497,0.286891,0.34985,0.229446,0.430041,0.272652,0.518139,0.203286,0.370305,0.643099,0.387606,0.303251,0.273867,0.548258,0.418058,0.375452,0.316332,0.319611,0.224224,0.412094,0.379531,0.30578,0.370273,0.231732,0.249803,0.308043,0.404745,0.496957,0.32905,0.522123,0.462129,0.245388,0.18518,0.200644,0.331899,0.398306,0.296579,0.413841,0.316693,0.534484,0.142182,0.251173,0.541171,0.340765],"sampleSize":57600,"asOf":"2026-08-08T23:33:58.038Z","headline":"Lighter leads all-in cost at 0.0029% (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.0029% (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"}