Hyperliquid Leaderboard: How to Track Top Addresses' PnL

How to get Hyperliquid leaderboard data using the Hyperliquid API.

HydromancerTeam
Hyperliquid Leaderboard API: Track Top Traders' PnL banner

Hyperliquid's leaderboard ranks its top accounts by PnL, ROI and volume, for the day, week, month and all time. It's the obvious place to find traders worth studying or following, but it's a web page, and you can't build on a web page.

To track those traders in your own tools, or rank them your own way, you need the same data through an API. On Hyperliquid, all of it is public.

Hyperliquid's leaderboard vs a CEX leaderboard

On a centralized exchange (CEX), a leaderboard is a showcase the exchange curates. On Hyperliquid, every account trades on-chain, so the ranking is just a view over public data:

Leaderboard on Hyperliquid Leaderboard on a CEX
Who's rankedAny account that meets
the listing threshold,
under its wallet address
Usually traders who opt in
Checking the numbersPull any trader's PnL,
positions and fills yourself
Usually only the stats
the exchange shows
Following a traderWatch their wallet
live through the API
Usually through the
exchange's own copy program

So on Hyperliquid, you can rebuild the leaderboard yourself and check every number behind it. Here's how, in four parts:

  1. Rank top traders from the file behind Hyperliquid's leaderboard.
  2. Check one trader's numbers with documented requests.
  3. Avoid the traps in leaderboard data.
  4. See how Hydromancer's API comes in, with and without it side by side.

Numbers are a snapshot from when we tested, and addresses are shortened.

About the snippets: like our docs, they're excerpts. They assume Python with requests installed and imported, and HYDROMANCER_API_KEY set in your environment for the Hydromancer examples.

Step 1: Rank top traders from the leaderboard file

Hyperliquid has no documented leaderboard request. Its leaderboard page reads its data from a public file, https://stats-data.hyperliquid.xyz/Mainnet/leaderboard.

It lists every ranked account with its account value, plus PnL, ROI and volume for the day, week, month and all time. No key is needed:

code
import requests

rows = requests.get(
    "https://stats-data.hyperliquid.xyz/Mainnet/leaderboard"
).json()["leaderboardRows"]

def month_pnl(row):
    return float(dict(row["windowPerformances"])["month"]["pnl"])

for r in sorted(rows, key=month_pnl, reverse=True)[:3]:
    addr = r["ethAddress"]
    print(f"{addr[:6]}…{addr[-4:]}  ${month_pnl(r):,.0f}")
code
0x5b5d…c060  $106,736,282
0xb83d…6e36  $94,443,652
0x87f9…e2cf  $26,653,991

Each row has the wallet's ethAddress, its accountValue, an optional displayName, and windowPerformances with pnl, roi and vlm (volume) for each window. Swap "month" for "day", "week" or "allTime" to rank a different window.

Vaults sit in the same file as people. To remove them, match addresses against Hyperliquid's vault list file, stats-data.hyperliquid.xyz/Mainnet/vaults (also undocumented). Here's the result with vaults removed:

Top 10 Hyperliquid traders by month PnL with vaults removed. The top two wallets made about $110M and $97M; the rest range from about $27M down to $14M.

Two wallets stand far above the rest. Rankings like this move fast, because the file's PnL includes open positions.

Step 2: Check one trader with documented requests

The file is undocumented, so use it to find traders, not as the numbers you show users. For one wallet, Hyperliquid's documented portfolio request returns account value and PnL history for the same windows:

code
import requests

portfolio = dict(requests.post(
    "https://api.hyperliquid.xyz/info",
    json={"type": "portfolio", "user": TRADER},
).json())

month = portfolio["month"]
value = float(month["accountValueHistory"][-1][1])
pnl = float(month["pnlHistory"][-1][1])
print(f"account value ${value:,.0f} | month PnL ${pnl:,.0f}")
code
account value $231,996,569 | month PnL $92,705,622

TRADER is the top wallet from Step 1, as a full address. The file showed $106.7M of month PnL for it, while portfolio showed $92.7M. The file's windows and refresh timing aren't documented, so the exact reason for the gap isn't known. Show portfolio numbers to users.

For the rest of a trader's picture, clearinghouseState gives open positions and userFills gives recent trades. Our trade history guide covers fills in depth.

Step 3: Avoid the traps in leaderboard data

  • It isn't sorted by PnL. Sort it yourself, as above.
  • PnL includes open positions. Hyperliquid's portfolio graphs docs define PnL from account value, which includes unrealized PnL. A big number can reverse.
  • ROI isn't simple PnL over account value. Hyperliquid's leaderboard page defines it as PnL ÷ max(100, starting account value + maximum net deposits) for the window. PnL is easier to compare across traders.
  • It's large, so don't re-download it every time. Send the ETag back in an If-None-Match header, and you get a 304 Not Modified until the file changes.
  • One person can hold many wallets. Sub-accounts and vaults have their own addresses.

How Hydromancer's API comes in when tracking Hyperliquid's top traders

The leaderboard file can't tell you who is a person, how many trades someone made, or whether their profit is locked in. And watching what top traders do next means following many wallets at once.

What you need Without Hydromancer (Hyperliquid's API only) With Hydromancer's API
A rankingThe undocumented
file: PnL includes
open positions
userPnlLeaderboard :
realized PnL from
closed trades, after
fees and funding
Filter out bots and one-off walletsNot possible
from the file
Filters for trade
count, active
days, account age
and a human score
One trader's recordportfolio ,
userFills
(recent fills)
userPnlSummary :
win rate, fees,
funding and trades
since 1 August 2025
Top traders' positionsclearinghouseState
, one wallet
per request
batchClearinghouseStates
: up to 1,000
wallets on one DEX
in one request
Watch top traders trade liveOne subscription
per wallet; the
docs allow 10
users per IP
One userFills
subscribe request
for up to 1,000
addresses; each
counts toward your
plan's
subscription total
(500 on Starter)

The ranking and summary requests are part of Hydromancer's user performance add-on.

Example: rank traders by closed trades, with bot filters

Without Hydromancer: the file's top 3 by month PnL (Step 1), including open positions, with no way to filter out bots.

With Hydromancer: realized PnL from closed trades, keeping only wallets with 20+ trades and a human score of 70 or more:

code
import os
import requests

board = requests.post(
    "https://api.hydromancer.xyz/info",
    json={
        "type": "userPnlLeaderboard",
        "window": "30d",
        "sortBy": "totalPnl",
        "limit": 3,
        "minTrades": 20,
        "minHumanScore": 70,
    },
    headers={"Authorization": f"Bearer {os.environ['HYDROMANCER_API_KEY']}"},
).json()

for u in board["users"]:
    addr, pnl = u["user"], float(u["totalPnl"])
    print(f"{addr[:6]}…{addr[-4:]}  ${pnl:,.0f}  win rate {u['winRate']:.0%}")
code
0x9546…181c  $4,629,851  win rate 9%
0x9321…d75a  $4,617,371  win rate 49%
0x77ee…a018  $4,232,734  win rate 90%

It's a completely different list. The file rewards open positions that have moved in a trader's favor; this ranks profit that's been taken. The human score is a 0–100 heuristic built from how a wallet trades, so treat it as a filter, not a label.

Which to use: for a public ranking based on the app's data, the file is free and enough. Choose Hydromancer when you need to filter out bots, rank by closed trades, or watch many top traders at once.

FAQ

Does Hyperliquid have a leaderboard API?

Not a documented one. The app's leaderboard reads a public JSON file at stats-data.hyperliquid.xyz/Mainnet/leaderboard, which works without a key.

How do I see what top Hyperliquid traders are holding?

Take their addresses from the leaderboard, then read each one's open positions with clearinghouseState. For many traders at once, Hydromancer's batchClearinghouseStates reads up to 1,000 wallets on one DEX in one request. Our guide to what top traders are holding shows it in practice.

How do I get a Hyperliquid trader's PnL?

Send {"type": "portfolio", "user": "0x…"} to https://api.hyperliquid.xyz/info. It returns account value and PnL history for the day, week, month and all time.

How often does the Hyperliquid leaderboard update?

Hyperliquid doesn't publish a schedule. Check the file's Last-Modified header to see how old your copy is.

Can I tell bots from human traders on the leaderboard?

Not from the file. Hydromancer's userPnlLeaderboard has a minHumanScore filter based on how a wallet trades. It's a heuristic, not a label.

Next steps