Hyperliquid Drawdown & Equity Curve: Measure It Right (2026)
Measure Hyperliquid drawdown correctly: portfolio endpoint, PnL vs account value, deposits and withdrawals, a real HLP vault example and a Python script.
The short version: Hyperliquid's public
portfolioendpoint returns two series for any address: account value and cumulative PnL, for the last day, week, month and all time. Measure drawdown on the PnL series, not on account value, because deposits and withdrawals move account value without any trading. In our 24 October 2026 snapshot of the HLP vault, account value fell 3.8% over the month while PnL was up about $572k: the drop was withdrawals, not losses.
Drawdown is the fall from a peak to the lowest point that follows it. It answers the question every trader should ask before looking at returns: how much pain did it take to get here? A wallet that made 40% with a 35% drawdown along the way is a very different bet from one that made 25% and never gave back more than 5%. This guide shows where Hyperliquid exposes the data, the mistake that makes most drawdown numbers wrong, a worked example with real numbers, and a short Python script that does it for any address. If you just want to see a wallet's equity and PnL charts without code, paste the address into Hyperfolio: it is free and read-only, with no API keys.
Where Hyperliquid stores your equity curve
A POST to https://api.hyperliquid.xyz/info with {"type": "portfolio", "user": "0x..."} returns a list of time windows. When we called it on 24 October 2026 (about 07:05 UTC) it returned eight: day, week, month, allTime, and the same four with a perp prefix (perpDay, perpWeek, and so on) covering perpetuals only. Each window contains:
accountValueHistory: a list of[timestamp in ms, account value in USD]points.pnlHistory: a list of[timestamp, cumulative PnL in USD]points. Every window starts at0.0, so the last point is the PnL for that window.vlm: the traded volume for that window.
No signature is needed, because it only reads public data. That is also why read-only trackers can chart any wallet without asking you to connect anything. The request counts toward the normal info rate limits, so cache the result if you poll many addresses.
Sampling: the curve is not tick-by-tick
The points are spaced further apart the longer the window. In our snapshot the median gap was about 25 minutes in day (51 points), about 2.4 hours in week (67 points), about 9.6 hours in month (48 points) and about 14 days in allTime (101 points for an account that started in May 2023). A sharp intraday dip that recovered between two points will not show up. Treat drawdowns from allTime as a lower bound and use the shorter windows when you care about recent detail.
The mistake: measuring drawdown on account value
Account value moves for two reasons: trading results and money moving in or out. A withdrawal of half the account looks exactly like a 50% loss on an equity chart. A large deposit can hide a real loss. The fix is simple: use pnlHistory, which only moves with trading results (realized and unrealized PnL, including funding and fees, as Hyperliquid reports it). You can also back out net flows for a window:
net deposits − withdrawals ≈ (account value end − account value start) − PnL for the window
Worked example: the HLP vault, 24 October 2026
We ran the script below against the public address of HLP, Hyperliquid's protocol vault (0xdfc24b077bc1425ad1dea75bcb6f8158e10df303). Figures are rounded:
| Window | Account value | PnL | Implied net flows | Max drawdown (PnL series) |
|---|---|---|---|---|
| Day | $177.13M to $177.15M | +$24.7k | −$7.7k | $530 |
| Week | $177.76M to $177.15M | +$142k | −$758k | $11.5k (20 Oct, 11:57 to 14:42 UTC) |
| Month | $184.12M to $177.15M | +$572k | −$7.55M | $1.3k |
| All time | $0 to $177.15M | +$138.9M | +$38.3M | $4.66M (29 Oct to 12 Nov 2025) |
Look at the month row. On an equity chart the vault went from $184.1M to $177.1M, a 3.8% fall that looks like a losing month. The PnL series says the opposite: it gained about $572k, and the worst peak-to-trough dip on PnL was only about $1.3k. Roughly $7.5M simply left the vault.
The all-time row shows the same effect at scale. Between 29 October and 26 November 2025 account value dropped from about $583.8M to $448.1M, a fall of 23%. Over the same points cumulative PnL went from $122.4M to $117.9M. The largest PnL drawdown in the whole history, $4.66M, was about 0.8% of the account value at the peak. The rest of the equity drop was withdrawals. Remember the sampling caveat: with points two weeks apart, a deeper dip inside that period would not be visible.
Turning dollars into a percentage
A dollar drawdown is easy to compute but hard to compare across wallets. Two common ways to express it as a percentage:
- Drawdown ÷ account value at the peak. Simple and good enough when flows are small. This is what we used for HLP above.
- Return-based drawdown. Build a return series where each step is PnL change ÷ account value at the previous point, compound it into an index, and measure the peak-to-trough fall of that index. This is the fairer method when the trader deposits or withdraws often, because each step's return uses the capital actually at risk at that moment.
Whichever you pick, state it. "Max drawdown 12%" means little unless you know the window, the sampling and the method.
Python script: max drawdown for any Hyperliquid address
This uses only the public info endpoint and the requests library. Replace the placeholder with any address. It prints, for each window, start and end account value, PnL, the implied net flows and the maximum drawdown of the PnL series with its dates.
import requests
from datetime import datetime, timezone
API = "https://api.hyperliquid.xyz/info"
ADDRESS = "0xYourWalletAddress" # any public address, no keys needed
def portfolio(user):
r = requests.post(API, json={"type": "portfolio", "user": user}, timeout=10)
r.raise_for_status()
return dict(r.json()) # [["day", {...}], ["week", {...}], ...] -> dict
def max_drawdown(points):
"""Largest peak-to-trough fall of a cumulative PnL series, in USD."""
peak_v, peak_t = None, None
worst = (0.0, None, None)
for t, v in points:
v = float(v)
if peak_v is None or v > peak_v:
peak_v, peak_t = v, t
dd = peak_v - v
if dd > worst[0]:
worst = (dd, peak_t, t)
return worst
def ts(ms):
return datetime.fromtimestamp(ms / 1000, tz=timezone.utc).strftime("%Y-%m-%d %H:%M")
data = portfolio(ADDRESS)
for window in ("day", "week", "month", "allTime"):
w = data[window]
av, pnl = w["accountValueHistory"], w["pnlHistory"]
av_start, av_end = float(av[0][1]), float(av[-1][1])
pnl_change = float(pnl[-1][1]) - float(pnl[0][1])
net_flows = (av_end - av_start) - pnl_change # deposits minus withdrawals (approx.)
dd, t_peak, t_trough = max_drawdown(pnl)
print(f"{window:8} points={len(pnl):3} equity {av_start:,.0f} -> {av_end:,.0f} "
f"PnL {pnl_change:+,.0f} net flows {net_flows:+,.0f} "
f"max DD ${dd:,.0f}" + (f" ({ts(t_peak)} -> {ts(t_trough)} UTC)" if t_peak else ""))
Run it for HLP and you get numbers close to the table above (they update every few minutes). For longer or finer data (candles, funding and fills by time) see our historical data guide, and the Python API guide for the basics of the info endpoint.
Reading drawdown before copying or following a wallet
- Compare drawdown to PnL, not just PnL to time. A ratio of total PnL to max drawdown tells you how much the trader made for each dollar they gave back at the worst point.
- Check open positions.
pnlHistoryincludes unrealized PnL, so a wallet sitting on a big losing position is already in drawdown even if it has closed nothing. Our unrealized PnL guide explains how that number is built. - Look at the shortest window too. A smooth
allTimecurve can hide violent days. - Watch for one big trade. If most of the all-time PnL came in a single week, the drawdown statistic says little about repeatable skill. Pair it with the trade-level view from a trading journal.
- Vaults are no different. Vault depositors see the same flow effect, so read PnL rather than TVL. More in our vaults guide.
Keeping your own drawdown under control
Drawdown is mostly a sizing problem. If you risk a fixed fraction of equity per trade, a losing streak shrinks position size as it goes. If you size in fixed dollars, or add leverage after losses, drawdowns deepen fast. Two practical tools help: a position size calculator that sizes from your stop distance, and TP/SL orders so the plan executes when you are away from the screen. Fees and funding also deepen drawdowns quietly; our real PnL guide shows how much they take.
See your equity curve without code
Hyperfolio is a free, read-only Hyperliquid tracker. Paste one or several wallet addresses and see account value, realized and unrealized PnL, open positions, fills, funding and fees in one place, plus AsterDEX, Lighter and Robinhood Chain if you trade there. Nothing to sign or connect, and it works as an installable web app on your phone.
Frequently asked questions
What is a drawdown on Hyperliquid?
The fall from the highest point of an account's cumulative PnL to the lowest point after it, in dollars or as a percentage. Hyperliquid does not show a drawdown figure directly, but the portfolio endpoint gives you the data to compute it.
Why does my equity chart show a loss when I made money?
Most likely you withdrew funds, or moved them to a sub-account or vault. Account value includes those flows. The PnL series does not.
Does the PnL history include funding and fees?
The series is Hyperliquid's own PnL figure for the account, so check it against your fills if you need an exact split. Our closed PnL guide explains how realized PnL, fees and funding relate.
How far back does the data go?
The allTime window covers the account's whole history; for HLP it started in May 2023. Points are about two weeks apart there, so use day, week and month for detail.
Do I need an API key to check another wallet's drawdown?
No. The endpoint is public and works with any address. You never need a private key or API wallet to read data.
What is the difference between month and perpMonth?
The perp windows cover perpetuals only. The plain windows cover the whole account, including spot balances.
Trade with lower costs. New to Hyperliquid? Use referral code HYPERFOLIO for 4% off trading fees (how the referral works), then track your equity curve and every fill for free in Hyperfolio.
Try Hyperfolio for free
Track your Hyperliquid portfolio in real time with PnL, Smart Money, Markets, Perp Calculator, multi-venue portfolio and push alerts.
HYPERLIQUID
-4% feesTrade on Hyperliquid · 4% off fees
Hyperfolio is an independent app, free to use with no subscription. We're funded by Hyperliquid referrals, ad space and donations; we truly appreciate you trading through our link.
Free for you · keeps Hyperfolio running
Related articles
Hyperliquid Liquidation Map: Real Liquidation Levels (2026)
Build a Hyperliquid liquidation map from real on-chain positions instead of estimated heatmaps. Dated example from the 300 largest accounts on 2 Nov 2026, how to read clusters and concentration, and a Python script.
GuideBest Time to Trade on Hyperliquid: Hours & Days (2026)
When Hyperliquid volume and volatility peak, by UTC hour and weekday, measured from 672 hourly candles (4 Oct to 1 Nov 2026) for BTC, ETH, HYPE and SOL, with what it means for slippage, stops and funding, plus a Python script.
GuideHyperliquid Long/Short Ratio: Read Trader Positioning (2026)
Why the market-wide long/short ratio on Hyperliquid is always 1, how to measure it for a cohort of wallets from public data, a dated example of the top 100 leaderboard traders, and a Python script.
GuideHyperliquid Sharpe Ratio: Risk-Adjusted Returns Guide (2026)
Calculate Sharpe and Sortino ratios for any Hyperliquid wallet or vault from the public portfolio endpoint: the deposit and withdrawal trap, dated leaderboard and HLP examples, and a Python script.
GuideHyperliquid Correlation & Beta: Hedging Crypto Perps (2026)
Measure correlation and beta on Hyperliquid from the public candle API: dated 30- and 90-day matrices for BTC, ETH, HYPE, SOL, XRP and DOGE, three portfolio and hedge examples, and a Python script.
GuideHyperliquid Volatility & ATR: Stops, Size, Leverage (2026)
Measure Hyperliquid volatility yourself from the public candle API: realized volatility and ATR for BTC, ETH, HYPE, SOL, XRP and DOGE on a dated snapshot, plus stop, position size and leverage examples and a Python script.