What we actually measured
We published 264 public order-book responses across two separate collection windows for BTC, ETH, SOL and HYPE standard perpetual markets. The latest collection contains 240 books, captured from 2026-09-19T07:16:28.397Z to 2026-09-19T07:31:14.219Z, in UTC.
Each market in the latest collection was sampled 60 times, with a planned 15-second interval. For each book, we modeled $1,000, $10,000 and $100,000 of midpoint-valued quantity, on both the buy and sell sides. Markets were requested separately rather than at one synchronized instant.
The market tables below describe the latest collection only. The earlier window is preserved in the archive section. We do not pool the two windows into a daily median or treat the unsampled gap as observed data. No wallet was connected and no order was submitted for this study.
Compare the fee saving with execution costs
At the standard tier-zero perp taker rate, an executed $100,000 fill has a $45 trading fee before reductions. A fully eligible 4% referral discount saves $1.80. Staking and other fee tiers change that fee comparison.
The tables below measure the modeled price difference against the midpoint before fees. That price difference is separate from the referral saving. Fees for a real fill depend on its executed value, which can differ from the midpoint-valued target.
The same bid/ask spread can lead to different buy and sell costs when available sizes differ. Compare your intended size and side, then check the current official order preview. A short sample cannot establish the cheapest execution time or predict your next fill.
BTC: modeled costs by size and side
Fully covered $1,000 buy samples had a median quoted spread of 0.123166 bps. The range was 0.122985 to 0.123258 bps.
Dollar and basis-point values are medians of fully covered snapshots only. Coverage shows how many captured books supported the entire modeled quantity. A missing estimate means the returned depth was insufficient for this method.
| Size at midpoint | Side | Cost vs midpoint | Cost · bps | Fully covered |
|---|---|---|---|---|
| $1,000 | Buy | $0.006159 | 0.061593 bps | 60/60 |
| $10,000 | Buy | $0.061593 | 0.061593 bps | 60/60 |
| $100,000 | Buy | $0.615995 | 0.061599 bps | 60/60 |
| $1,000 | Sell | $0.006158 | 0.061583 bps | 60/60 |
| $10,000 | Sell | $0.06159 | 0.06159 bps | 60/60 |
| $100,000 | Sell | $0.616003 | 0.0616 bps | 59/60 |
ETH: modeled costs by size and side
Fully covered $1,000 buy samples had a median quoted spread of 0.38004 bps. The range was 0.379226 to 0.380409 bps.
Dollar and basis-point values are medians of fully covered snapshots only. Coverage shows how many captured books supported the entire modeled quantity. A missing estimate means the returned depth was insufficient for this method.
| Size at midpoint | Side | Cost vs midpoint | Cost · bps | Fully covered |
|---|---|---|---|---|
| $1,000 | Buy | $0.019002 | 0.19002 bps | 60/60 |
| $10,000 | Buy | $0.190024 | 0.190024 bps | 60/60 |
| $100,000 | Buy | $1.901 | 0.19006 bps | 60/60 |
| $1,000 | Sell | $0.019005 | 0.190053 bps | 60/60 |
| $10,000 | Sell | $0.190053 | 0.190053 bps | 60/60 |
| $100,000 | Sell | $1.901 | 0.190114 bps | 60/60 |
SOL: modeled costs by size and side
Fully covered $1,000 buy samples had a median quoted spread of 0.893096 bps. The range was 0.89075 to 3.563 bps.
Dollar and basis-point values are medians of fully covered snapshots only. Coverage shows how many captured books supported the entire modeled quantity. A missing estimate means the returned depth was insufficient for this method.
| Size at midpoint | Side | Cost vs midpoint | Cost · bps | Fully covered |
|---|---|---|---|---|
| $1,000 | Buy | $0.044661 | 0.446608 bps | 60/60 |
| $10,000 | Buy | $0.446648 | 0.446648 bps | 60/60 |
| $100,000 | Buy | $4.468 | 0.446828 bps | 60/60 |
| $1,000 | Sell | $0.044665 | 0.446648 bps | 60/60 |
| $10,000 | Sell | $0.446648 | 0.446648 bps | 60/60 |
| $100,000 | Sell | $10.662 | 1.066 bps | 60/60 |
HYPE: modeled costs by size and side
Fully covered $1,000 buy samples had a median quoted spread of 0.107568 bps. The range was 0.107059 to 3.229 bps.
Dollar and basis-point values are medians of fully covered snapshots only. Coverage shows how many captured books supported the entire modeled quantity. A missing estimate means the returned depth was insufficient for this method.
| Size at midpoint | Side | Cost vs midpoint | Cost · bps | Fully covered |
|---|---|---|---|---|
| $1,000 | Buy | $0.005379 | 0.05379 bps | 60/60 |
| $10,000 | Buy | $0.108996 | 0.108996 bps | 60/60 |
| $100,000 | Buy | $18.773 | 1.877 bps | 26/60 |
| $1,000 | Sell | $0.00538 | 0.053798 bps | 60/60 |
| $10,000 | Sell | $0.501902 | 0.501902 bps | 60/60 |
| $100,000 | Sell | $22.638 | 2.264 bps | 10/60 |
Earlier collection: 18 September 2026
The original 24-book collection ran from 2026-09-18T13:45:06.530Z to 2026-09-18T13:45:57.975Z, in UTC. It sampled each market six times. The table below preserves its $100,000 scenarios; all sizes remain available in the downloads.
The original HYPE buy scenario had sufficient visible depth in five of six books. Its median excludes the incomplete observation and the denominator remains visible. The archived JSON and CSV are unchanged by the follow-up collection.
Differences between the two short windows cannot establish a liquidity trend, a typical daily cost or a best time to trade. Each collection has its own timestamp, sample count and results.
| Market | Side | Cost vs midpoint | Cost · bps | Fully covered |
|---|---|---|---|---|
| BTC | Buy | $0.630979 | 0.063098 bps | 6/6 |
| BTC | Sell | $0.630887 | 0.063089 bps | 6/6 |
| ETH | Buy | $2.812 | 0.28117 bps | 6/6 |
| ETH | Sell | $1.973 | 0.197254 bps | 6/6 |
| SOL | Buy | $24.48 | 2.448 bps | 6/6 |
| SOL | Sell | $17.775 | 1.778 bps | 6/6 |
| HYPE | Buy | $15.828 | 1.583 bps | 5/6 |
| HYPE | Sell | $25.521 | 2.552 bps | 6/6 |
How to reproduce each calculation
The public Info endpoint was called with type l2Book and the standard perpetual coin name. No price aggregation was requested. The API returns at most 20 levels on each side; it does not expose the entire book in this response.
The midpoint is the average of best bid and best ask. Requested USD notional divided by midpoint sets the base quantity. A buy consumes asks from lowest price upward; a sell consumes bids from highest price downward. Quantities are continuous and are not rounded to executable lot sizes.
Each level contributes only the quantity still required. VWAP is the sum of price times consumed quantity divided by filled quantity. Costs use the side-aware difference between VWAP and midpoint, multiplied by the requested base quantity.
The cost already includes crossing the spread. Adding the full quoted spread again would double-count part of the price cost. Trading fees, funding and transfer charges are excluded from these book estimates. Dollar labels use nominal USDC quote units without adjusting for the USDC/USD exchange rate.
The follow-up capture journal records every request, response and validation result before publication. Only local output-directory prefixes in its completion record were shortened for publication; API records and timestamps were retained unchanged.
- Only fully covered quantities receive cost estimates. Partial coverage is never reported as a complete fill.
- The walk stops beyond 2% from the best price on that side. Insufficient returned depth is not proof of insufficient exchange-wide liquidity.
- Wrong market names, crossed books, invalid prices or sizes, and stale responses fail validation.
- Median means the middle observation, or the average of the two middle values for an even count. Every table reports its complete/total denominator.
mid = (best_bid + best_ask) / 2 base_quantity = requested_usd / mid vwap = sum(level_price × consumed_quantity) / filled_quantity buy_cost_usd = (vwap − mid) × base_quantity sell_cost_usd = (mid − vwap) × base_quantity cost_bps = cost_usd / requested_usd × 10000
Check the published results offline
Save either collection’s JSON, calculation source and reproduction script in the same folder under their original names. Run the matching command below with Node.js 24 or newer. The script rebuilds the quotes and summary from the stored raw responses, without making a network request.
A successful check confirms that the published summary follows the published method and captured inputs. It does not certify the exchange feed, prove that visible orders would remain available, or establish actual trade execution.
node reproduce-orderbook-study.mjs 2026-09-19 node reproduce-orderbook-study.mjs 2026-09-18
What the sample cannot tell you
Two short collection windows are not a representative daily or monthly liquidity study. The observations are clustered in time, with a long unsampled gap. The results should not be used to rank exchanges, compare trading strategies or choose leverage.
Visible orders can be canceled or consumed before an order arrives. Latency, queue position, price movement and hidden execution behavior are not captured. A snapshot walk is an estimate, not a promised fill.
BTC, ETH, SOL and HYPE here mean standard HyperCore perpetual markets. Spot, HIP-3 markets, maker execution, rebates and market orders subject to different limits need separate analysis.
Raw observations remain dated. Rebuilding this website does not refresh the dataset. A future collection should be published with a new timestamp and method version so the old result can still be reproduced.
Frequently asked questions
Were these actual Hyperliquid trades?
No. The results model fills against public order-book snapshots. The study used no wallet, deposits or trading account.
Does insufficient visible depth mean Hyperliquid cannot fill the order?
No. The endpoint returns only a limited number of levels. Our label means the returned levels, within the method’s price limit, did not cover the entire modeled quantity.
Does a referral discount reduce spread or slippage?
The standard referral benefit reduces eligible trading fees. It does not reduce the market price difference measured in this study.