Skip to main content

Who Makes Markets on Hyperliquid? Maker Share by Wallet

One full day of every fill and the order-level book: who provides liquidity on Hyperliquid, how little of it is HLP, and how Lighter compares.

8 min read
Explore with your agent

Key findings

  1. HLP barely makes these markets0.0016%HLP's share of BTC maker volume on 12 November 2026.
  2. Lighter runs on a few accounts25 vs 3Wallets needed for half of BTC maker volume on Hyperliquid, against accounts on Lighter.
  3. Stock perps lean on fewer makers29-47%Top wallet's share of resting size near the price on xyz:NVDA.
  4. What making looks like in orders99.8%Placed orders a top BTC maker cancelled within an hour.

Every trade on Hyperliquid, an onchain crypto exchange, records the wallet on each side, so you can see who provides liquidity. We measured it for one full day, 12 November 2026, across BTC, ETH, SOL, HYPE and the most traded stock perp, xyz:NVDA, and compared BTC with Lighter, another onchain crypto exchange. We used every fill, 2.92 million rows on Hyperliquid, and the order-level book at six times of day. Hyperliquid's own vault, HLP, barely makes these markets. Dozens of separate wallets do, while Lighter's BTC maker volume comes from a handful of accounts.

Findings

  • HLP's share of maker volume was under 0.06% in every market. On BTC it was 0.0016%; on xyz:NVDA, zero.
  • Hyperliquid making is spread out. The top BTC maker had 10.4% of maker volume, and it took 25 wallets to reach half.
  • Lighter making is concentrated. Its top BTC maker account had 36.0%, and 3 accounts reached half.
  • Stock perps lean on fewer makers. On xyz:NVDA, 12 wallets made half the volume, and one wallet held 29% to 47% of the resting size near the price.
  • Making is mostly cancelling. Three top BTC makers cancelled 99.1% to 99.8% of the orders they placed in an hour, and 99.7% to 100% of their orders were post-only.

Method

Each trade has a maker, whose order was resting on the book, and a taker, whose order crossed it. In the 0xArchive trades data, each trade is two rows and the maker row has crossed set to false. We summed maker notional by wallet for the whole UTC day of 12 November 2026, a Thursday. Concentration is reported three ways: the top wallet's share, the number of wallets needed to reach half of maker volume, and the Herfindahl-Hirschman index (HHI), the sum of squared shares on a scale of 0 to 10,000.

For resting liquidity, we read the order-level (L4) book, which shows every resting order and its wallet, at 00:00, 04:00, 08:00, 12:00, 16:00 and 20:00 UTC, and summed resting notional by wallet within the best 10 price levels on each side. Wallets appear as addresses. We attach no firm names, because none of these wallets is publicly claimed by its owner.

The code below reproduces the core numbers. It needs Python 3 with requests and a 0xArchive API key in OXARCHIVE_API_KEY; the Free plan's rolling 30 days covers the study day until 12 December 2026.

import os, requests
from datetime import datetime, timezone
from collections import Counter
H = {"X-API-Key": os.environ["OXARCHIVE_API_KEY"]}
B = "https://api.0xarchive.io/v1"

def fills(path, start, end):
    rows, cursor = [], None
    while True:
        p = {"start": start, "end": end, "limit": 50000}
        if cursor:
            p["cursor"] = cursor
        j = requests.get(f"{B}{path}", headers=H, params=p, timeout=180).json()
        rows += j["data"]
        cursor = j["meta"].get("next_cursor")
        if not j["meta"].get("has_more"):
            return rows

def concentration(shares):
    """Top-1 share, accounts needed for 50%, and the Herfindahl index (0 to 10,000)."""
    v = sorted(shares.values(), reverse=True)
    tot, run, n50 = sum(v), 0.0, 0
    for x in v:
        run += x
        n50 += 1
        if run >= tot / 2:
            break
    return "top1 %.1f%% | %d for half | HHI %d | %d makers" % (
        100 * v[0] / tot, n50, round(sum((x / tot) ** 2 for x in v) * 1e4), len(v))

DAY = ("2026-11-12T00:00:00Z", "2026-11-13T00:00:00Z")
for venue, path, who in [("Hyperliquid", "/hyperliquid/trades/BTC", "user_address"),
                         ("Lighter", "/lighter/trades/BTC", "account_index")]:
    maker = Counter()
    for r in fills(path, *DAY):
        if not r["crossed"]:                       # the resting side of each trade
            maker[r[who]] += float(r["price"]) * float(r["size"])
    print(venue, "BTC:", concentration(maker))
Hyperliquid BTC: top1 10.4% | 25 for half | HHI 221 | 5909 makers
Lighter BTC: top1 36.0% | 3 for half | HHI 1495 | 2751 makers

HLP barely makes these markets

Hyperliquid's docs describe HLP as providing "liquidity to Hyperliquid through multiple market making strategies". On these markets that liquidity is close to invisible. The HLP vault has seven child addresses. Two of them made trades that day, and together with the parent they had these maker shares:

MarketHLP share of maker volume, 12 November 2026
BTC0.0016%
ETH0.0053%
SOL0.0103%
HYPE0.0564%
xyz:NVDA0.0000%

Hyperliquid's own portfolio call agrees: the whole HLP family traded $16.83 million across all markets in the trailing day, against $3.39 billion of BTC maker volume alone. The two active children have traded about $190 billion each over their lifetimes. Their recent fills are spread across about 165 mostly small markets, which suggests HLP now makes the long tail rather than the majors. We did not measure the long tail.

Who makes Hyperliquid's majors

MarketTop 1Top 10Wallets for halfHHI
BTC10.4%32.7%25221
ETH6.9%32.3%22177
SOL7.8%40.2%16245
xyz:NVDA12.9%45.7%12361

HYPE fell in the same range, with an HHI between 177 and 245 and 16 to 22 wallets for half. No single wallet dominates maker volume in the majors. The same names recur, though: one wallet was a top-10 maker in four of the five Hyperliquid markets, and four more were top-10 in three.

Not every top maker is a quoting bot. Some top-10 wallets by maker volume placed only a few dozen orders all day. One of them placed 38. These look like large resting orders that got filled, not continuous quoting. We infer that from order counts only.

Lighter runs on a few accounts

Lighter identifies accounts by index rather than wallet. The same measurement, same day:

Lighter marketTop 1Accounts for halfHHI
BTC36.0%31,495
ETH29.1%21,389
SOL33.3%21,625
HYPE16.2%6669

On BTC, Lighter's HHI was nearly seven times Hyperliquid's. Lighter identifies accounts by number, so this does not show who owns them. It measures filled volume, not resting depth: three accounts made half of what traded against Lighter's BTC book that day. For traders, this shows up as depth: in our slippage measurements, a $5 million HYPE order cost 41 bps on Lighter and 24 bps on Hyperliquid.

Stock perps lean on fewer makers

Maker volume shows who got filled. The order-level book shows who quotes near the price:

def resting(path, ts, levels=10):
    """Resting notional by wallet in the best `levels` prices on each side, from the L4 book."""
    d = requests.get(f"{B}{path}", headers=H, params={"timestamp": ts, "depth": 1000}, timeout=120).json()["data"]
    by = Counter()
    for side in ("bids", "asks"):
        seen = []
        for o in d[side]:
            if not seen or o["price"] != seen[-1]:
                seen.append(o["price"])
            if len(seen) > levels:
                break
            by[o["user_address"]] += o["price"] * o["size"]
    return by

for path in ("/hyperliquid/orderbook/BTC/l4", "/hyperliquid/hip3/orderbook/xyz:NVDA/l4"):
    by = resting(path, "2026-11-12T12:00:00Z")
    tot = sum(by.values())
    print(path.split("/")[-2], "12:00 | wallets", len(by), "| top wallet %.1f%% of $%.1fM resting"
          % (100 * by.most_common(1)[0][1] / tot, tot / 1e6))
BTC 12:00 | wallets 63 | top wallet 15.4% of $2.4M resting
xyz:NVDA 12:00 | wallets 30 | top wallet 41.3% of $1.0M resting

At midday the top wallet held 15.4% of BTC's resting size in the best 10 levels, and 41.3% of xyz:NVDA's. Across all six snapshots, xyz:NVDA's top wallet held 28.7% to 46.7%, with an HHI of 1,458 to 2,718. BTC's top wallet held 14.5% to 21.8% at five snapshots, with a one-off 44.8% at 16:00. Two wallets were in xyz:NVDA's top five at all six snapshots. Within 10 bps of the mid, 31 to 56 wallets quoted xyz:NVDA, against 138 to 178 on BTC.

A stock perp's depth near the price rests on two or three wallets through the day. For the taker side of the same market, see our study of who trades on trade.xyz.

What making looks like in orders

We followed three of the top BTC makers through one hour of raw order events, 18:01 to 19:01 UTC on 13 November:

  • Each placed 20,000 to 44,000 orders and got 64 to 117 fills.
  • 99.1% to 99.8% of placed orders were cancelled within the hour.
  • 99.7% to 100% were post-only (Alo), which guarantees they never take liquidity.
  • Median time to cancel was 0.5 to 3.2 seconds.

The top makers were also present at the touch all day. Of the day's top 10 BTC makers, 4 to 8 were in the best 10 levels at every snapshot, holding 32% to 58% of that resting size.

Taker flow can be more concentrated than maker flow

On ETH, the top taker had 15.7% of taker volume and 6 wallets made half, against 22 wallets for half on the maker side. xyz:NVDA had 19,032 taker wallets and 4,161 makers.

Limits of this study

  • One day. Concentration can shift with volatility and between weekdays and weekends.
  • Five Hyperliquid markets and four Lighter markets, all large. The long tail is not covered.
  • One firm can run many wallets, so concentration by owner may be higher than by wallet.
  • Six book snapshots. The resting picture between them is not measured.

Reproduce it

Hyperliquid's own API cannot run this study. It has no market-wide fill endpoint; recentTrades returns the last 10 trades, about 2 to 5 seconds of BTC. Its book call returns 20 price levels with order counts and no wallets. Per-wallet fill history stops at a floor, and for HLP's children the study day was already out of reach on 13 November.

The 0xArchive trades route returned the five Hyperliquid markets for the day in 61 requests, and the L4 book returned 18 snapshots in 18 requests. To run it on other days or markets, change DAY and the paths above. For order-level history, see the L4 order data guide.

FAQ

Who are the market makers on Hyperliquid?

Independent wallets. On BTC on 12 November 2026, 5,909 wallets made markets and 25 of them provided half the maker volume. HLP, Hyperliquid's vault, provided 0.0016%.

Does HLP make markets on Hyperliquid?

Barely on the major markets: under 0.06% of maker volume on BTC, ETH, SOL, HYPE and xyz:NVDA in our study. Its fills are spread across many small markets.

Is liquidity on Lighter more concentrated than on Hyperliquid?

Yes, on the markets we measured. Three accounts made half of Lighter's BTC maker volume, against 25 wallets on Hyperliquid.

How do I find the market makers for a Hyperliquid market?

Sum maker notional by wallet from a day of fills, as in the method above. The L4 book shows who rests near the price.

Next steps