Hyperliquid trade history: how to export it and turn fills into trades

Where your Hyperliquid trade history lives, what the CSV export leaves out, and how to turn a list of fills, TWAP slices and hourly funding payments into a real PnL per trade.

Hyperliquid's Trade History tab looks like a list of your trades, but it is a list of fills. One position opened in two orders and closed in three shows up as five rows, and the funding you paid while it was open is not in any of them. This post covers how to get your history out of Hyperliquid and how to turn it into one line per trade with a PnL you can trust.

Where your history lives

Your fills are in the Trade History tab, one row per fill, with the coin, the direction, the size, the price and the fee. The Export as CSV button on that tab downloads the same rows as a file. It covers perpetual trades only, so spot fills are not in it.

Funding is kept apart from your fills, as a separate list of hourly payments. Nothing in the trade history CSV tells you what a position paid or collected in funding.

If you write code, Hyperliquid's public info API serves the same fills for any wallet address. It returns at most 2,000 fills per request, and Hyperliquid's docs say only the 10,000 most recent fills are available through it, so a very active wallet cannot pull its full history from that endpoint alone.

Fills are not trades

Here is one ETH long as it appears in the trade history. The fees use Hyperliquid's base rates: 0.045% for a taker fill and 0.015% for a maker fill.

FillDirectionSizePriceFee
1Open Long1.0 ETH$3,000$1.35
2Open Long1.0 ETH$2,990$0.45
3Close Long1.5 ETH$3,060$2.07
4Close Long0.5 ETH$3,080$0.23

Four rows, one trade. To get its result you match each closing fill to the opening fills it closes, oldest first:

LineHow it is worked outAmount
Fill 3 against fill 11.0 × ($3,060 − $3,000)$60.00
Fill 3 against fill 20.5 × ($3,060 − $2,990)$35.00
Fill 4 against fill 20.5 × ($3,080 − $2,990)$45.00
Fees on all four fills1.35 + 0.45 + 2.07 + 0.23−$4.10
Funding20 hours × ($6,000 × 0.00125%)−$1.50
Net PnL$134.40

The funding line assumes the position was held for about 20 hours at Hyperliquid's baseline rate of 0.00125% an hour, on a position worth about $6,000. In a real account each hour has its own rate and its own position value, and when the rate is high that line can be larger than the fees. The Hyperliquid funding rate post explains how the hourly rate is set.

TWAP orders make it longer

A TWAP order splits a large order into suborders sent at a fixed interval, at least 30 seconds apart, and each suborder that fills is its own fill. A 2 ETH TWAP run over 10 minutes can come back as 20 fills of about 0.1 ETH each. Hyperliquid's docs also allow catch-up suborders of up to three times the normal size when earlier ones did not fill, so the slices are not always the same size.

None of that changes the math. Every slice is an opening or closing fill like any other, with its own price and fee, and matching them oldest first still gives you the trade. It only makes the table long enough that nobody wants to do it by hand.

Flipping in one fill

If you sell more than your long, one fill closes the long and opens a short. In the trade history that fill reads Long > Short. Split it in two when you work out PnL: the part that closes the long belongs to the long, and the rest is the first fill of the short.

Doing it for every trade

Once you have a few weeks of trading, the steps above become a spreadsheet project: pair every closing fill with its opening fills, add up the fees per trade, then go through the funding list hour by hour and assign each payment to whichever position was open when it was charged.

If you would rather not, connect your Hyperliquid wallet address to a free Viktury journal and it does the matching for you.

What Viktury does with your fills

In Viktury's Hyperliquid trading journal, you add an account with your wallet address. There is no API key to create and nothing to sign. Viktury rebuilds your round trips from the fills, first in first out, TWAP slices included, so a TWAP shows up as part of one trade rather than as dozens of rows.

Each fill keeps the fee it actually paid, so your fee tier is already in it, and a maker rebate shows as a negative fee. Each hourly funding payment is attached to the perp trade that was open when it was charged, and each trade's net PnL already has its fees and funding taken out. Viktury also rebuilds your USDC balance and checks it against the account value Hyperliquid reports for your wallet.

To see how fees and funding add up on a longer hold, the Hyperliquid trading journal post works through a two-day BTC perp, and the free funding fee calculator works out the funding for any position size and rate.

Open a free Viktury account and paste your Hyperliquid wallet address. The Hyperliquid setup guide shows where to find it.

In the journal

Every trade, measured in R.

This is how Viktury shows a closed trade. R comes from the stop you set.

Trade #481 · LongBreakout playbook
+$1,663.63
entry 61,455.0fees −56.09funding −17.28+2.3R

Synced from a Hyperliquid wallet address, funding included.

Stop guessing at your edge. Measure it.

Import your trades and see your own numbers.

Start free →

No card · 14 days of Edge from first trades