Cheapest perp DEX, live all-in cost from $1k to $1M on ETH, BTC and SOL
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.
TL;DR. As of , Lighter posts the lowest all-in cost at 0.0020% (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.
This benchmark answers the question every perp DEX comparison article refuses to answer with real numbers. what does it actually cost to open a $1000 ETH long 10x position right now, all-in, on each major decentralized venue. Published fee schedules quote a taker rate of 0 bps (Lighter), 4.5 bps (Hyperliquid), 5 bps (dYdX) or 6 bps (GMX), but the rack rate is half the story. The other half is the spread you cross at market and the price impact you eat at $1000 notional, both of which are missing from every comparison roundup currently ranking for "best perp DEX". We read taker fees from each venue's own API (no hardcoded schedules), walk the orderbook for $1000 of buy-side notional to compute spread plus impact where a book exists (GMX and gains.trade are oracle priced, so their spread terms come from protocol parameters), and sum the two into a single basis-point figure refreshed every five minutes. Hyperliquid vs Lighter vs Polymarket vs dYdX vs GMX vs gains.trade is then a one-number comparison, not a six-tab spreadsheet. Size changes the answer, so the board is complemented by two panels that rerun the exact same measurement at $100,000 and $1,000,000 of notional. Small orders reward the lowest fee schedule; a $1M market order rewards the deepest book, and the ranking visibly flips between the two.
Methodology
We measure the live all-in cost of opening a $1000 ETH long 10x perp position across major perpetual venues. Cost = taker fee + half-spread + price impact at notional, all in basis points. No transactions are sent, only freely-available public APIs are queried. Every value is read live, no hardcoded fee schedules. Taker fees come from each venue's own API (Hyperliquid `userFees`, dYdX Cosmos REST `/feetiers/perpetual_fee_params`, GMX Subsquid `positionFeeFactor`, Lighter `/orderBookDetails`, Gains v8 on-chain `fees()`). On the orderbook venues (Hyperliquid, dYdX, Lighter) the spread comes from walking the book for $1000 of buy-side notional. GMX v2 is oracle priced with no book, so its spread term is zero. gains.trade uses half of the on-chain `spreadP`. The bench refreshes every 5 minutes.
Frequently asked
Which perp DEX is cheapest for a $1M market order?
The venue with the deepest book, not the one with the lowest fee schedule. At $1,000,000 of notional the price impact from walking the book dwarfs the taker fee, so zero fee venues can lose to a 4 bps venue whose book absorbs the size better. The $1M panel on this page reruns the exact same measurement at that size, and the ranking regularly differs from the $1000 headline board. A venue that shows no data there means its visible book could not fill $1M at measurement time, which is a depth signal in itself.
Why does the ranking change with order size?
Two cost components move in opposite directions. The taker fee is a flat percentage, identical at any size. Price impact grows with size because a bigger order eats deeper into the book. Small orders are fee dominated, so zero fee venues win. Large orders are depth dominated, so the deepest book wins. The board at $1000 and the panels at $100k and $1M show all three regimes live.
What is the cheapest perpetual futures DEX right now?
Lighter currently leads the leaderboard at 0.0020% all-in (24 h average) for opening a $1000 ETH long 10x position. The leaderboard re-sorts every five minutes against fresh Prometheus samples, so the answer reflects the last 24 hours of live data from each venue's public API, not a frozen rack-rate table.
Is Lighter really zero fees on perpetual futures?
The taker fee on Lighter is 0 bps, confirmed live via `/orderBookDetails` rather than a marketing page. The all-in cost is not zero, however, because every market order still crosses the half-spread and eats price impact at notional. The Lighter line on this benchmark shows what that residual cost actually is at $1000, which is the right number to compare against a paid venue's all-in figure.
How do Hyperliquid fees compare to Lighter or dYdX in practice?
Hyperliquid quotes 4.5 bps taker but its HyperBFT orderbook is among the deepest of any decentralized venue, so the spread component stays compressed and the all-in figure usually clocks close to the rack rate. Lighter starts from 0 bps taker but pays for it in slightly wider spreads on smaller markets. dYdX v4 sits at 5 bps taker with a comparably tight book. The leaderboard above shows the resulting one-number comparison live.
What is the actual cost of trading on Hyperliquid for a $1000 position?
Hyperliquid is currently at 0.047% all-in (24 h average), which means a $1000 ETH 10x long costs that fraction of $1000 to open. Funding is charged separately and is not part of this benchmark; we publish the per-hour funding rate as a side metric (`perp_fees_funding_rate_per_hour_bps`) so traders sizing a multi-hour hold can layer it on top.
Why include spread and impact instead of just taker fee?
Rack-rate taker fee is what every comparison article quotes; it is also what every trader stops being able to read off a marketing page the second they place a market order. Spread plus impact at notional is the rest of the bill. On a tight book the gap is small, on a thin book it can dominate a 5 bps taker. Bundling both into one number is the only way to make a fair across-venue ranking that survives contact with a $1000 trade.
How does GMX v2 fee work and why does this benchmark show the higher number?
GMX v2 splits the position fee into a positive-impact branch (4 bps, when your trade reduces the venue's net open interest skew) and a negative-impact branch (6 bps, when it adds to the skew). Which branch fires depends on the current open interest at the moment of the trade and is not predictable from the user's side. We report the negative branch as the conservative upper bound; the positive branch is read by the harness as well and would lower the all-in number by 2 bps when it fires.
How do perp fees change with position size?
The taker fee does not change: every venue here charges a flat percentage of notional, so 4.5 bps on Hyperliquid costs 45 cents at $1,000 and $45 at $100,000, the same rate. What scales is the impact term: a bigger market order walks deeper into the book, so the effective price moves further from mid. On deep books like BTC on Hyperliquid the $100k figure sits within a fraction of a bp of the $1k figure; on thinner books like SOL the extra impact can exceed the entire taker fee. Oracle priced venues (GMX v2, gains.trade) quote the same bps at any size because there is no book to walk. The harness measures all three tiers every cycle and publishes them to `perp_fees_all_in_bps_tier` with a notional label of 1000, 10000 or 100000; the $10k and $100k panels on this page chart them live. When a book cannot fill a tier we skip the sample rather than extrapolate, so a missing tier is itself a depth signal.
Does this benchmark include funding rates or only the open cost?
Open cost only. Funding is paid every hour you hold, not at open, so bundling it into a one-number leaderboard would conflate two different fee mechanics. The harness still records funding rate per venue (`perp_fees_funding_rate_per_hour_bps`, signed) so a trader can read both numbers and compute their own time-adjusted cost for a longer hold.
Source code github.com/ChainBench/OpenChainBench/tree/main/harnesses/perp-fees