Hyperliquid Fees and Revenue: A Guide for Builders
Hyperliquid fees for builders: maker/taker tiers, builder codes, HIP-3 growth mode, where fees go, and how to pull fee data with the API.

The short answer: a new Hyperliquid account pays a 0.045% taker fee and a 0.015% maker fee on Hyperliquid's main perps, and 0.070% / 0.040% on spot. HIP-3 markets and builder fees can add to that, as this guide shows. Rates fall as trading volume grows, and staking HYPE cuts them further.
That's what a trader needs. If you build on Hyperliquid, whether that's a frontend, a bot or a HIP-3 market, you need more. Your users pay a stack of fees: the protocol fee, your builder fee and, on HIP-3 markets, a deployer fee. Growth mode, staking and referrals change the protocol and deployer parts; your builder fee is set separately.
This guide covers every layer, using Hyperliquid's own docs. It shows where each dollar goes, gives real revenue totals from Flowscan and has Python you can run to read fees yourself. We checked every figure and ran every request ourselves; live numbers like market counts change daily.
Hyperliquid fees at a glance
Your fee tier depends on your 14-day weighted volume: perps volume plus twice your spot volume. Tiers are worked out at the end of each UTC day.
There's one tier per user across perps, HIP-3 perps and spot. Sub-accounts count toward the main account and share its tier. Vaults are treated as separate accounts.
| Tier | 14-day weighted volume | Perps taker | Perps maker | Spot taker | Spot maker |
|---|---|---|---|---|---|
| 0 | Under $5M | 0.045% | 0.015% | 0.070% | 0.040% |
| 1 | Over $5M | 0.040% | 0.012% | 0.060% | 0.030% |
| 2 | Over $25M | 0.035% | 0.008% | 0.050% | 0.020% |
| 3 | Over $100M | 0.030% | 0.004% | 0.040% | 0.010% |
| 4 | Over $500M | 0.028% | 0% | 0.035% | 0% |
| 5 | Over $2B | 0.026% | 0% | 0.030% | 0% |
| 6 | Over $7B | 0.024% | 0% | 0.025% | 0% |
A taker order fills right away against the book. A maker order rests on the book until someone else fills it.
HYPE staking discounts
Staking HYPE lowers every rate in the table by a fixed percentage:
| Staking tier | HYPE staked | Fee discount |
|---|---|---|
| Wood | Over 10 | 5% |
| Bronze | Over 100 | 10% |
| Silver | Over 1,000 | 15% |
| Gold | Over 10,000 | 20% |
| Platinum | Over 100,000 | 30% |
| Diamond | Over 500,000 | 40% |
A Diamond staker at Tier 0 pays 0.027% taker on perps instead of 0.045%. You can also link a staking account to a separate trading account. Linking is permanent, and both accounts must belong to the same person, because the staking account can move all funds out of the trading account.
Maker rebates
Large market makers are paid to provide liquidity instead of paying a fee. The rebate depends on your share of all maker volume over 14 days:
| Share of maker volume | Maker fee |
|---|---|
| Over 0.5% | -0.001% |
| Over 1.5% | -0.002% |
| Over 3.0% | -0.003% |
Rebates are paid straight to the trading wallet on each trade.
Referral discount
A user who signs up with a referral code gets 4% off their fees for their first $25M of volume. The referrer earns 10% of that user's fees, less the discount, for the user's first $1B of volume. You need $10,000 of your own volume before you can create a code.
The full fee stack your users pay
Here is what one $10,000 taker order costs at Tier 0, with no staking or referral discount. The numbers come from the fee calculator in the code section below.
| Market | All-in taker rate | User pays | Deployer's part |
|---|---|---|---|
| Validator-operated perp (BTC, ETH and others) | 0.045% | $4.50 | none |
| Same perp, plus a 0.05% builder fee | 0.095% | $9.50 | none ($5.00 to the builder) |
| HIP-3 perp, deployer scale 0.5 | 0.0675% | $6.75 | $2.25 |
| HIP-3 perp, deployer scale 1 | 0.090% | $9.00 | $4.50 |
| HIP-3 perp, deployer scale 3 | 0.270% | $27.00 | $13.50 |
| HIP-3 perp in growth mode, scale 1 | 0.009% | $0.90 | $0.45 |
| Spot pair | 0.070% | $7.00 | none |
| Spot pair between two quote assets | 0.014% | $1.40 | none |
"Validator-operated" means the main markets Hyperliquid lists itself. The spot rows assume a token with no deployer fee share; spot deployers can take up to 50%, as explained below. HIP-3 markets are listed by outside deployers, each on its own DEX. The deployer scale and growth mode are explained below.
Builder fees
A builder fee is what your app charges on top of the protocol fee. You set it per order with {"b": address, "f": number}. f is in tenths of a basis point, so f: 50 means 5 basis points, or 0.05%.
The caps are 0.1% on perps and 1% on spot. Each user must first approve a maximum fee for your address, signed with their main wallet, not an API wallet. A user can have up to 10 approvals at once. Your builder address needs at least 100 USDC in perps account value, and must use the standard account abstraction mode.
On spot, a builder fee only applies when the fee is paid in the quote asset. So it applies to sells but not to buys. On perps it applies to both sides.
Approvals, SDK code and claiming are covered in how Hyperliquid builder codes work. For what builder fees do to your users' results, see how builder fees affect trader PnL.
HIP-3 deployer fees
A HIP-3 deployer sets a fee scale for each market. It controls how much the deployer earns and how much the user pays in total. Hyperliquid's deployer-actions page gives this split, where 1 is a normal protocol fee:
| Deployer scale | To the protocol | To the deployer | User pays in total |
|---|---|---|---|
| 0 | 1 | 0 | 1x |
| 0.5 | 1 | 0.5 | 1.5x |
| 1 | 1 | 1 | 2x |
| 3 | 3 | 3 | 6x |
Below 1, the deployer's fee is added on top. At 1 and above, the protocol fee rises to match the deployer's, so the deployer never keeps more than half. The scale can be anything from 0 to 3 outside growth mode. On mainnet, a deployer can change it at most once every 30 days. Deployers must also keep 500,000 HYPE staked, and validators can slash that stake if a market is run badly.
For which deployers do the most volume, see the largest HIP-3 market deployers.
Growth mode
Growth mode is a switch a deployer can turn on for a HIP-3 market. It cuts the market's all-in fees (the protocol's and the deployer's parts), rebates and volume credit by 90%. It also cuts how much each trade adds to the user's on-chain request allowance by 90% (see Hyperliquid rate limits). The cut applies on top of staking and other discounts.
The rules, from Hyperliquid's fee docs:
- Each market has a 30-day cooldown between growth mode changes.
- Markets must be fully separate from validator-operated perps. Crypto perps, crypto indexes and baskets, and gold perps aren't eligible.
- At a deployer scale of 0 to 1, the all-in taker fee at Tier 0 (before staking or referral discounts, and not counting builder fees) lands between 0.0045% and 0.009%. That's 5 to 10 times lower than the 0.045% base fee.
Is growth mode common? Each HIP-3 DEX's meta response carries every market's deployerFeeScale and growthMode. This script groups all live HIP-3 markets by both:
import collections
import requests
INFO = "https://api.hyperliquid.xyz/info"
BASE_TAKER = 0.045 # Tier 0 perps taker fee, in %
groups = collections.defaultdict(collections.Counter)
dead = []
for dex in [d["name"] for d in requests.post(INFO, json={"type": "perpDexs"}).json() if d]:
universe = requests.post(INFO, json={"type": "meta", "dex": dex}).json()["universe"]
live = [m for m in universe if not m.get("isDelisted")]
if not live:
dead.append(dex)
for m in live:
key = (float(m["deployerFeeScale"]), m.get("growthMode") == "enabled")
groups[key][dex] += 1
for (scale, growth), dexs in sorted(groups.items()):
taker = BASE_TAKER * (scale + 1 if scale < 1 else 2 * scale) * (0.1 if growth else 1)
print(f"scale {scale}, growth mode {'on ' if growth else 'off'}: "
f"{sum(dexs.values()):3} live {dict(dexs)} -> Tier 0 taker {taker:.4f}%")
print("DEXs with no live markets:", ", ".join(dead))scale 0.5, growth mode off: 1 live {'para': 1} -> Tier 0 taker 0.0675%
scale 1.0, growth mode off: 11 live {'xyz': 5, 'para': 5, 'mkts': 1} -> Tier 0 taker 0.0900%
scale 1.0, growth mode on : 151 live {'xyz': 110, 'para': 26, 'mkts': 4, 'io': 11} -> Tier 0 taker 0.0090%
DEXs with no live markets: flx, vntl, hyna, km, abcd, cash151 of the 163 live HIP-3 markets were in growth mode, all at scale 1. On those markets a Tier 0 taker pays 0.009%, a fifth of the fee on a BTC perp. If your app routes users to HIP-3 markets, check each market's settings this way rather than assuming one rate.
Spot extras
Spot pairs between two quote assets, such as two stablecoins, have 80% lower taker fees, maker rebates and volume credit. Spot deployers, like HIP-3 deployers, can keep up to 50% of the fees their tokens generate.
Hyperliquid also has aligned quote assets: stablecoins whose issuers share reserve income with the protocol. The docs list three benefits for the first version (AQAv1): 20% lower taker fees, 50% larger maker rebates and 20% more volume credit, applied to the protocol's part of the fee, so the effect is smaller on markets with a deployer share. But the deployer-actions page says there are currently no aligned quote assets on mainnet, so for now this mostly matters if you plan ahead.
Outcome markets (HIP-4)
Outcome markets are fully backed contracts that settle within a fixed range, such as yes/no markets. Hyperliquid's fee docs say outcome trades only pay base trading fees when closing or settling, not when opening, and there are no rebates.
The HIP-4 page, however, still says outcome fees are currently zero during initial testing. Check the fee field on real fills before you show users a number.
Hyperliquid's docs disagree on builder fees here: the HIP-4 page says they work as on spot, only on sell orders, while the HIP-4 deployer-actions page says they can also apply to buy orders on outcomes, charged in the quote token. Check builderFee on real fills before you rely on either.
Gas and other costs
- HyperEVM gas. Hyperliquid's smart-contract chain uses HYPE for gas. Both the base fee and the priority fee are burned.
- Account activation. The first transfer to a new HyperCore account costs 1 unit of a quote token, such as 1 USDC.
- Order priority fees. Latency-sensitive traders can pay extra to jump the queue. For IOC orders (fill now or cancel), the effect on latency is linear from 0 to 8 basis points. The fee is charged in HYPE and burned.
- Gossip priority. Anyone can bid in an auction to have nodes send data to a chosen IP address sooner. The minimum bid is 0.1 HYPE, and these fees are burned too.
Where Hyperliquid fees go
Hyperliquid's docs say trading fees go entirely to the community, not to a team:
- The protocol's share goes to HLP (Hyperliquid's community market-making vault) and the assistance fund. The docs don't publish the split between the two.
- The assistance fund lives at the system address
0xfefefefefefefefefefefefefefefefefefefefe. It converts fees into HYPE automatically, as part of the chain's own execution. The docs say HYPE in the fund counts as burned: it is removed from circulating and total supply, even though it still shows as a balance at that address. - Deployers of HIP-3 markets and spot tokens can keep up to 50% of the fees on their markets.
- Builders keep their whole builder fee and claim it through the referral reward process.
- Referrers get 10% of a referred user's fees, less the user's discount.
- Priority fees and HyperEVM gas are burned.
One thing that often gets mixed up: staking rewards don't come from fees. They come from the future emissions reserve. The docs give a rate of about 2.37% a year at 400M HYPE staked.
Because the assistance fund's address can be queried like any other, you can watch it work. This script reads its HYPE balance and its most recent fills:
import collections
import datetime
import requests
INFO = "https://api.hyperliquid.xyz/info"
FUND = "0xfefefefefefefefefefefefefefefefefefefefe" # the assistance fund, per Hyperliquid's fee docs
def fee_breakdown(fills):
"""Total fees per fee token. `fee` already includes `builderFee`, which is missing when 0."""
totals = collections.defaultdict(float)
builder = collections.defaultdict(float)
for f in fills:
totals[f["feeToken"]] += float(f["fee"])
builder[f["feeToken"]] += float(f.get("builderFee", 0))
return dict(totals), dict(builder)
balances = requests.post(INFO, json={"type": "spotClearinghouseState", "user": FUND}).json()["balances"]
hype = next(b for b in balances if b["coin"] == "HYPE")
print(f"HYPE held by the assistance fund: {float(hype['total']):,.0f}")
fills = requests.post(INFO, json={"type": "userFills", "user": FUND}).json()
when = lambda ms: datetime.datetime.fromtimestamp(ms / 1000, datetime.UTC).strftime("%d %b %H:%M UTC")
bought = sum(float(f["sz"]) for f in fills if f["side"] == "B")
print(f"Last {len(fills)} fills, {when(fills[-1]['time'])} to {when(fills[0]['time'])}")
print("Markets:", dict(collections.Counter(f["coin"] for f in fills)))
print(f"HYPE bought: {bought:,.2f}")
fees, builder_fees = fee_breakdown(fills)
print("Fees paid, by token:", fees, "| of which builder fees:", builder_fees)
print("Example fill:", {k: fills[0][k] for k in ("coin", "side", "px", "sz", "fee", "feeToken")})HYPE held by the assistance fund: 48,210,279
Last 2000 fills, 20 Oct 16:08 UTC to 22 Oct 22:20 UTC
Markets: {'@107': 2000}
HYPE bought: 53,702.58
Fees paid, by token: {'HYPE': 0.0} | of which builder fees: {'HYPE': 0.0}
Example fill: {'coin': '@107', 'side': 'B', 'px': '77.368', 'sz': '10.36', 'fee': '0.0', 'feeToken': 'HYPE'}Every one of the fund's last 2,000 fills was a buy on @107, the HYPE/USDC spot market. It bought 53,702.58 HYPE in about two and a quarter days. It held 48,210,279 HYPE.
Note the feeToken. On a spot buy, the fee is counted in the token you receive, here HYPE. That's why builder fees don't apply to spot buys. The fee_breakdown helper is reusable for any address. Keep it, as the code section below explains the fields it reads.
Hyperliquid revenue in numbers
These totals come from Flowscan's revenue page. Days are UTC.
| Measure | Value | Window |
|---|---|---|
| HyperCore fees, all markets | $55,978,115 | 30 days, 22 Sep to 21 Oct |
| of which validator-operated perps and spot | $53,200,409 | same |
| of which HIP-3 markets | $2,777,706 (5.0%) | same |
| HyperCore fees | $12,019,944 | 7 days, 15 to 21 Oct |
| Yearly run-rate from those 7 days | $626.75M | |
| HyperCore fees | $1,727,602 | 21 Oct |
| HyperCore fees since Flowscan's series starts | $345,861,068 | 214 days, 22 Mar to 21 Oct |
| Priority gas (burned) | 48,713.53 HYPE | 30 days |
Priority gas is shown in HYPE: 29,239.22 HYPE for order priority and 19,474.31 HYPE for gossip priority.
HIP-3 deployers earned $2,587,281 in the same 30 days. That's on top of the HIP-3 protocol fees above, not part of them. Almost all of it went to one DEX, xyz, which earned $2,457,954, or 95.0%. The other named HIP-3 DEXs:
| HIP-3 DEX | Deployer fees, 30 days |
|---|---|
| io | $59,660 |
| para | $29,536 |
| mkts | $11,864 |
Flowscan files the remaining $28,266 under an entry labelled "hyperliquid". The deployer total and the HIP-3 protocol fees are close in size, as you'd expect when most markets sit at scale 1.
Builders, the apps sending orders with builder codes, earned $11,270,213 over the same 30 days. That's about a fifth of the HyperCore fee total. Trust Wallet earned the most, $1,766,899 (15.7%). All time, builders have earned $119,771,798 from 964,733 users across 1,964 builders, according to Flowscan's builder data. For the full ranking, see top builders by revenue.
Why "Hyperliquid revenue" differs between dashboards
You'll see very different "revenue" figures for Hyperliquid. Most of the gap comes from what each site counts:
- Flowscan's headline revenue is HyperCore fees (validator-operated plus HIP-3) plus priority gas, valued at the live HYPE price. It leaves out deployer fees, as those are paid to deployers.
- Builder fees are paid by users but kept by builders. Some trackers add them, and some don't.
- Aligned quote asset yield, the reserve income stablecoin issuers share with the protocol, is counted by some sites and not others.
- The HLP share of fees can be counted as protocol revenue or left out.
Before comparing two numbers, check which of these each one includes, and over which dates.
How to read fee data in code
Everything below uses Hyperliquid's public info endpoint: no key, no signing, read-only. Our Hyperliquid API guide covers the endpoint in general.
Check a user's fee tier with userFees
userFees returns an address's current maker and taker rates. The referral discount is reported separately, as activeReferralDiscount, and Hyperliquid's fee formula applies it on top of those rates. Set HL_USER to any address. Without it, the script checks HLP's vault:
import os
import requests
INFO = "https://api.hyperliquid.xyz/info"
# Default: HLP, Hyperliquid's community vault. Set HL_USER to check any address.
USER = os.environ.get("HL_USER", "0xdfc24b077bc1425ad1dea75bcb6f8158e10df303")
fees = requests.post(INFO, json={"type": "userFees", "user": USER}).json()
def pct(rate):
return f"{float(rate) * 100:.4f}%"
print("Perps taker:", pct(fees["userCrossRate"]), "| maker:", pct(fees["userAddRate"]))
print("Spot taker: ", pct(fees["userSpotCrossRate"]), "| maker:", pct(fees["userSpotAddRate"]))
print("Referral discount:", fees["activeReferralDiscount"])
print("Staking discount: ", fees["activeStakingDiscount"]["discount"])
days = fees["dailyUserVlm"]
volume = sum(float(d["userCross"]) + float(d["userAdd"]) for d in days)
print(f"Own volume over the {len(days)} days listed ({days[0]['date']} to {days[-1]['date']}): ${volume:,.0f}")Perps taker: 0.0450% | maker: 0.0150%
Spot taker: 0.0700% | maker: 0.0400%
Referral discount: 0.0
Staking discount: 0.0
Own volume over the 15 days listed (2026-10-08 to 2026-10-22): $0HLP's main vault address has no trades of its own (its strategies run in sub-vaults), so it shows Tier 0 and no volume. Try your own address instead.
The fields that matter:
| Field | Meaning |
|---|---|
userCrossRate / userAddRate | Perps taker / maker rate, as a fraction (0.00045 = 0.045%) |
userSpotCrossRate / userSpotAddRate | Spot taker / maker rate |
activeReferralDiscount | Referral discount in use, such as 0.04 |
activeStakingDiscount | Staking discount in use, with the stake as basis points of max supply |
dailyUserVlm | Daily taker ( userCross )and maker ( userAdd ) volume |
feeSchedule | The full tier table, the same for every user |
Hydromancer's REST API also supports userFees, alongside requests that read many wallets at once.
Work out the all-in rate for any market
The rates from userFees don't include the HIP-3 scale, growth mode or the stable-pair discount. Hyperliquid's fee docs give a TypeScript helper, feeRates(), that adds them. This is a Python port. It reads the base rates live and prints the $10,000 example from earlier:
import requests
INFO = "https://api.hyperliquid.xyz/info"
def fee_rates(maker_rate, taker_rate, referral_discount, aligned_quote, market):
"""Python port of feeRates() from Hyperliquid's fee docs. Returns percentages."""
stable_pair = 0.2 if market.get("type") == "spot" and market.get("stable_pair") else 1
hip3, growth, deployer_share = 1, 1, 0
if market["type"] == "perp":
scale = market.get("deployer_fee_scale", 0)
hip3 = scale + 1 if scale < 1 else scale * 2
deployer_share = scale / (1 + scale) if scale < 1 else 0.5
growth = 0.1 if market.get("growth_mode") else 1
maker = maker_rate * 100 * stable_pair * growth
if maker > 0:
maker *= hip3 * (1 - referral_discount)
elif aligned_quote:
maker *= (1 - deployer_share) * 1.5 + deployer_share
taker = taker_rate * 100 * stable_pair * hip3 * growth * (1 - referral_discount)
if aligned_quote:
taker *= (1 - deployer_share) * 0.8 + deployer_share
return maker, taker, deployer_share
# Base (Tier 0) rates, read live from the fee schedule every userFees response carries.
schedule = requests.post(INFO, json={"type": "userFees",
"user": "0xdfc24b077bc1425ad1dea75bcb6f8158e10df303"}).json()["feeSchedule"]
perp = (float(schedule["add"]), float(schedule["cross"]))
spot = (float(schedule["spotAdd"]), float(schedule["spotCross"]))
ORDER = 10_000 # a $10,000 taker order
cases = [
("Validator-operated perp", perp, {"type": "perp"}),
("HIP-3 perp, scale 0.5", perp, {"type": "perp", "deployer_fee_scale": 0.5}),
("HIP-3 perp, scale 1", perp, {"type": "perp", "deployer_fee_scale": 1}),
("HIP-3 perp, scale 3", perp, {"type": "perp", "deployer_fee_scale": 3}),
("HIP-3 growth mode, scale 0", perp, {"type": "perp", "deployer_fee_scale": 0, "growth_mode": True}),
("HIP-3 growth mode, scale 1", perp, {"type": "perp", "deployer_fee_scale": 1, "growth_mode": True}),
("Spot pair", spot, {"type": "spot"}),
("Spot pair of two quote assets", spot, {"type": "spot", "stable_pair": True}),
]
for name, (maker_rate, taker_rate), market in cases:
maker, taker, share = fee_rates(maker_rate, taker_rate, 0, False, market)
fee = ORDER * taker / 100
print(f"{name:31} taker {taker:.4f}% ${fee:6.2f} (deployer gets ${fee * share:.2f})")
builder_f = 50 # builder fee "f" is in tenths of a basis point: 50 = 5 bps = 0.05%
print(f"Builder fee f={builder_f} adds ${ORDER * builder_f / 100_000:.2f} on top of any perp line above (on spot, sells only)")Validator-operated perp taker 0.0450% $ 4.50 (deployer gets $0.00)
HIP-3 perp, scale 0.5 taker 0.0675% $ 6.75 (deployer gets $2.25)
HIP-3 perp, scale 1 taker 0.0900% $ 9.00 (deployer gets $4.50)
HIP-3 perp, scale 3 taker 0.2700% $ 27.00 (deployer gets $13.50)
HIP-3 growth mode, scale 0 taker 0.0045% $ 0.45 (deployer gets $0.00)
HIP-3 growth mode, scale 1 taker 0.0090% $ 0.90 (deployer gets $0.45)
Spot pair taker 0.0700% $ 7.00 (deployer gets $0.00)
Spot pair of two quote assets taker 0.0140% $ 1.40 (deployer gets $0.00)
Builder fee f=50 adds $5.00 on top of any perp line above (on spot, sells only)To price a real user, use their userAddRate, userCrossRate and activeReferralDiscount from userFees instead of the base rates and 0, plus the market's deployerFeeScale and growthMode from meta. Two things trip people up: the API returns these numbers as strings, so convert them with float() first, and the function takes the maker rate before the taker rate. In meta, growthMode is the string "enabled" when growth mode is on, so pass growth_mode=(asset.get("growthMode") == "enabled"). Leaving out the referral discount overquotes referred users.
Read fees from fills
Each fill from userFills or userFillsByTime carries its own fee. Four details trip people up:
- **
feealready includesbuilderFee.** Don't add them together. SubtractbuilderFeeto get the exchange's part. - **
builderFeeis missing when it's 0.** Read it with a default, asfee_breakdowndoes above. - **
feeTokenisn't always USDC.** Spot buys pay in the token received, so total fees per token. - HIP-3 coins have a DEX prefix, such as
xyz:TSLA. Split on:to group fees by deployer.
Builder-side requests
| You want to know… | Request |
|---|---|
| The maximum fee a user approved for your builder address | {"type": "maxBuilderFee","user": "0x…", "builder":"0x…"} (answer in tenths ofa basis point) |
| Builder fees collected (the docs say they're part of the referral state) | {"type": "referral", "user":""} , fieldbuilderRewards (USDC only;fees in other quote assets are under tokenToState ) |
| Fills that used your builder code, one file per day (check coverage: our builder codes guide found a day's file that stopped at 12:12 UTC) | Hyperliquid's daily LZ4 files (address pattern below the table) |
The daily builder files live at this address, with your builder address in lowercase:
https://stats-data.hyperliquid.xyz/Mainnet/builder_fills/{builder_address}/{YYYYMMDD}.csv.lz4Hyperliquid's daily files arrive as compressed batches. If you need builder fills as an API or a live feed, Hydromancer adds builderFillsByTime, with data from 28 July 2025, and a builderFills WebSocket stream on its Hyperliquid WebSocket API. Both need a Hydromancer API key.
Fee history at scale with Reservoir
For fees across every user and every day, the info endpoint is too slow. Reservoir, Hydromancer's free S3 archive, stores every fill as Parquet files. The fills table includes fee, fee_token, builder and builder_fee. It also has deployer_fee (HIP-3 fills only) and priority_gas in HYPE, both present from 21 March 2026. The bucket is requester-pays, so you need AWS credentials, and you pay the transfer costs.
Field details are in the Reservoir docs. To run queries, see how to query Reservoir with DuckDB, or browse Hyperliquid historical data for the hosted options.
FAQ
What are Hyperliquid's trading fees?
At the base tier, 0.045% taker and 0.015% maker on perps, and 0.070% taker and 0.040% maker on spot. They fall over seven tiers to 0.024% / 0% on perps above $7B of 14-day weighted volume.
Does Hyperliquid charge gas fees?
Not for trading on HyperCore. HyperEVM transactions pay gas in HYPE, and the base and priority fees are burned. New accounts pay a one-time activation fee of 1 quote token, and optional priority fees cost HYPE.
How do HYPE staking discounts work?
Staking more than 10 HYPE gives 5% off. The discount rises to 40% for more than 500,000 HYPE. It applies to every fee tier.
Do builder fees add to Hyperliquid's fees?
Yes. A builder fee is charged on top of the protocol fee, up to 0.1% on perps and 1% on spot (on spot, only on sells). The user approves a maximum first.
What is growth mode on HIP-3?
A deployer setting that cuts fees, rebates and volume credit by 90% on a HIP-3 market. At a scale of 0 to 1, the all-in taker fee at Tier 0 is 0.0045% to 0.009%, before discounts and builder fees. At the time of writing, 151 of 163 live HIP-3 markets used it.
Where do Hyperliquid's fees go?
To HLP, the assistance fund and deployers. The assistance fund turns fees into HYPE, which the docs count as burned. Builders keep their builder fees, and referrers get 10% of their users' fees, for each user's first $1B of volume.
How much revenue does Hyperliquid make?
Flowscan counted $55,978,115 in HyperCore fees for the 30 days to 21 October 2026, or $626.75M a year at the latest 7-day pace. That excludes $2,587,281 paid to HIP-3 deployers and $11,270,213 earned by builders.
How do I check my fee tier by API?
Send {"type": "userFees", "user": "0x…"} to https://api.hyperliquid.xyz/info. userCrossRate and userAddRate are your perps taker and maker rates. The referral discount is reported separately, as activeReferralDiscount.
Sources
[1] Hyperliquid docs: Fees
[2] Hyperliquid docs: Builder codes
[3] Hyperliquid docs: HIP-3 deployer actions
[4] Hyperliquid docs: HIP-3 builder-deployed perpetuals
[5] Hyperliquid docs: HIP-4 outcome markets
[6] Hyperliquid docs: Referrals
[7] Hyperliquid docs: Aligned quote assets
[8] Hyperliquid docs: Priority fees
[9] Hyperliquid docs: HyperEVM
[10] Hyperliquid docs: Activation gas fee
[11] Hyperliquid docs: Staking
Read next

Hyperliquid Testnet: Faucet, API URLs and Mainnet Gotchas
How to test a Hyperliquid app on testnet: test USDC and HYPE, the API, WebSocket and HyperEVM addresses, and what breaks when you move to mainnet.
Read ↗
How to Read Hydromancer's Live Stats Page
A plain guide to Hydromancer's live stats page: what each row, number and colour means, and what the dashboard doesn't claim.
Read ↗
Hyperliquid Builder Codes: How They Work and How to Track Fees
How Hyperliquid builder codes work: approval, fee limits, adding one to an order, and four ways to track the fills and fees your code earns.
Read ↗