Hyperliquid Market Making: HFT Bot Strategies for Perps
A deep-dive into building market-making bots on Hyperliquid perps, covering spread capture, inventory management, and how to compete against professional MMs on the order book. Includes real config patterns for tick-size quoting and delta hedging.
Hyperliquid runs a fully on-chain central limit order book with sub-second block times, native cross-margin, and maker rebates that actually move the needle. That combination makes it one of the few decentralized venues where a well-engineered market-making bot can earn real edge — not just rebates that get eaten by latency slippage. The catch: the order book is increasingly professional, and naive quoting strategies get picked off within milliseconds.
How the Rebate Structure Changes the Math
Hyperliquid charges takers and rebates makers at roughly -0.2 bps maker / +0.5 bps taker on most perp pairs (exact tiers shift with volume). That 0.7 bps gross spread sounds thin, but it compounds. On ETH-PERP running $5M notional per side per day, you are looking at roughly $3,500 daily gross rebate before adverse selection. The budget for adverse selection is therefore defined: if your fill quality degrades beyond ~0.7 bps average, you are paying to provide liquidity.
The implication for strategy design is that you must control which trades you fill, not just how many. A market maker that posts symmetrically at all times will get short-leg filled by informed flow on every large directional move. Rebate income will not save you.
Tick-Size Quoting and Order Placement
On Hyperliquid, tick sizes vary by asset. BTC-PERP uses $1 ticks; smaller caps can be $0.001. Your quoting engine needs to respect this and place orders at the best available tick on each side rather than at arbitrary price offsets.
A baseline config pattern that works in production:
- Quote offset: 1–2 ticks from mid, widening dynamically based on realized volatility over a rolling 30-second window.
- Order size: scale position size as a fraction of target inventory, never flat-size. If you are long 40% of your max inventory, your ask size should be 60% of your bid size.
- Refresh threshold: cancel and repost only when mid moves more than 0.5 ticks or when your quote has been sitting for more than 800ms. Constant cancel-replace burns gas and telegraphs your presence.
- Layer depth: one or two resting orders per side is enough. Stacking ten levels just gives informed traders a price ladder to walk down.
The refreshing logic is where most amateur bots leak. Over-refreshing creates a signature that co-located bots can detect and front-run. Under-refreshing leaves stale quotes that get picked off during fast moves.
Inventory Management and Skew
The single biggest P&L driver for a market maker is not spread capture — it is inventory control. Every filled order creates a delta position. Left unmanaged, that position will eventually lose more than the accumulated rebates earned to build it.
The standard approach is skewing quotes dynamically based on current inventory. If you are net long 1.2 BTC equivalent:
- Shift your bid down by
inventory_skew_bps = position_ratio * max_skew_bps - Shift your ask down by the same amount (cheaper ask = easier to offload)
- Tighten your ask size, widen your bid size
With max_skew_bps set to 3 bps and a max position of 5 BTC, holding 2 BTC long shifts both quotes 1.2 bps toward selling. This naturally mean-reverts the book without manual hedging on every fill. The skew parameter needs tuning per asset — high-volatility pairs like SOL-PERP want more aggressive skew; stable pairs like BTC-PERP can afford less.
Delta Hedging on External Venues
Skewing reduces inventory drift but does not eliminate it. On large fills or during trending markets, you will accumulate exposure faster than skew can clear it. The answer is delta hedging to an external venue — typically a CEX spot or perp market with tighter spreads than what you are making on Hyperliquid.
The hedge trigger in production systems is usually a threshold-based rule: hedge when net delta exceeds X% of max inventory, hedge in a size equal to delta - target_delta (often zero). Execution matters here. Hitting market on Binance for every hedge destroys the spread you just captured. Better patterns:
- Post passive limit hedges on the external venue a few ticks inside the current book, accepting partial fills over 2–5 seconds.
- If the position continues growing, step down to market hedging. The cost is bounded because you only reach this path when already holding significant directional risk.
- Track hedge lag as a metric. If your average time-to-hedge exceeds 3 seconds on a volatile asset, your threshold is too loose.
Competing Against Professional Market Makers
The top-of-book on liquid Hyperliquid pairs is dominated by teams running co-located infrastructure with direct RPC access. You will not out-latency them. The edge for a well-engineered bot comes from being selective about when to participate.
Practical techniques:
- Spread widening on volume spikes: when 10-second rolling trade volume exceeds 2x the baseline, temporarily widen quotes by 1–2 extra ticks. You are now letting informed flow pass and re-tightening when the burst ends.
- Toxicity scoring: maintain a running ratio of fills that move against you within 500ms of execution. If it spikes above 60%, pull quotes entirely for 5–10 seconds.
- Time-of-day filters: Hyperliquid perp spreads are thinnest during US and Asian market overlap (roughly 13:00–17:00 UTC). Quote tighter in those windows; widen or pause outside them.
The frame is risk-adjusted rebate income, not raw fill count. Fewer fills at better quality beats more fills with higher adverse selection every time.
Infrastructure Minimums
On the execution side: WebSocket subscription to the order book feed, a local order state tracker (do not trust the exchange state alone), and a cancel-replace loop that runs in under 50ms round-trip to the Hyperliquid RPC. Python is viable for prototyping but Rust or Go is the right answer for anything running real capital. Log every order event with microsecond timestamps — post-trade analysis on why specific fills moved against you is how you improve the strategy, and you cannot do that without granular logs.
If you want a production market-making system built on Hyperliquid perps rather than rebuilding the above from scratch, talk to TierZero — we design, build and operate these systems for clients.
Need a bot like this built?
We design, build and run trading bots on Solana, Hyperliquid and Polymarket.
Start a projectMore from the blog
Public vs Paid RPC: How to Run a Fair Benchmark
A fair comparison of public and paid RPC endpoints must account for quotas, workload, freshness and support guarantees.
Read articleRPC Benchmark Percentiles Explained: p50, p95 and p99
Why averages hide the latency spikes that break trading bots, wallets and production blockchain applications.
Read articleHyperliquid REST vs WebSocket Benchmark: What to Measure
A benchmark plan for Hyperliquid market data that separates request latency from streaming freshness and recovery.
Read article