How do I report Hyperliquid trades on my taxes?
updated november 2026 · ~5 min · basisproof research · not tax advice
Step 1 — assemble the complete record first
The single most common mistake is starting with software. Before anything can be classified or filed, you need the raw record — and on Hyperliquid, the record does not arrive in one piece.
Five streams matter: fills (every position close, with the venue's per-fill realized PnL and signed fees — a positive fee is a rebate, not a cost), funding (hourly settlements — an open position accrues thousands a year), the ledger (deposits, withdrawals, sends, sub-account and staking transfers), spot activity (fills, plus the HYPE airdrop if you were early), and staking rewards (daily delegator credits exposed on a separate endpoint no trade importer calls).
The trap: the venue's own fill endpoint retains roughly the last 30 hours. Anything built on it — including most sync buttons — silently holds a fraction of the window. Complete fills come from a chain indexer. Funding and ledger history do serve full history from the venue, which is why a tool can get funding right and still miss most of your trades.
Step 2 — compute the numbers a form actually needs
A tax form doesn't want 'your PnL' — it wants disposals. Every position close is one: proceeds, cost basis, gain or loss, dates. On an active account that is thousands of rows, and each row needs real numbers behind it.
Three components make up the correct total: realized PnL summed fill by fill, the funding stream summed event by event (kept as its own line — its tax treatment is a live question, so it must be separable), and fees summed with their sign so rebates aren't booked as costs. Spot token sales are a separate book with their own basis.
Verify before you trust. The strongest check needs no fills at all: Δ account value minus every flow crossing the perp boundary must equal the venue's own PnL. If a number you're about to file can't close that identity, the gap is in the data — not in your arithmetic.
Step 3 — attach basis to every disposal
Gain equals proceeds minus basis, and basis is where Hyperliquid records quietly break. Lots opened before your ingested history, tokens moved between your own wallets, inventory seeded on a CEX then bridged in — all of it arrives basisless unless you connect it deliberately.
Pick a method with your preparer — FIFO or weighted average are the two the tooling supports — and run it over the account's full history, not just the tax-year window. A lot opened in 2025 and closed in 2026 needs its 2025 cost.
Honesty beats completeness you can't prove. Basis you genuinely can't reconstruct should be reported as unknown — flagged, explainable — not silently zeroed or invented. That flag is what turns a weak spot in the record into a documented position.
Step 4 — map the numbers to your filing
This is the jurisdiction step, and the underlying evidence is the same everywhere. In the US: each disposal is a Form 8949 row feeding Schedule D — almost certainly short-term, since the venue isn't a CFTC-registered board of trade so Section 1256's 60/40 split doesn't apply. Funding and staking rewards are income-type lines that belong outside the 8949 grid.
Everywhere else, the same evidence set answers the local form — the UK, Australia, Canada, Japan and most jurisdictions all tax the disposal, and all need the same dates, proceeds and basis to compute it.
Two delivery paths work. Into software: a TurboTax or Koinly-format CSV built from the verified record — bypassing the broken sync entirely. To a human: the PDF workpaper plus the row-level CSVs, which is what a preparer actually needs to sign off.
Step 5 — keep the evidence, not just the numbers
Filing is not the finish line — the question that matters is whether the number survives a second look, this year or three years from now. Every figure you filed should be traceable to a row that carries the venue's own identifiers, and every row should be recomputable from public data.
That matters extra on Hyperliquid because the venue issues nothing. There is no 1099 to reconcile against — if a number is challenged, your reconstructed ledger is the only record that exists. A reproducible one is a defense; a screenshot of a dashboard is not.
Common questions
?Do I report every single Hyperliquid trade?
Every position close is a disposal, yes — thousands of rows on an active account is normal and correct. What changes per jurisdiction is presentation: some filers attach the full CSV, some tools aggregate by day. The underlying row set must be complete either way.
?Can I just give my accountant my wallet address?
An address alone solves nothing — the same 30-hour API wall blocks them. What a preparer needs is the reconstructed record: disposals with basis, the funding stream, staking rewards, and the verification residual. That's a deliverable, not a lookup.
?I traded on multiple wallets and sub-accounts — how does that work?
Transfers between your own addresses aren't disposals, but single-address tools report them as if they were — phantom gains. Merge the addresses into one book first: the internal moves classify as transfers, and each member's lots still carry their own basis.
?What about the HYPE airdrop, staking rewards and vaults?
None of them are trades, so none appear in fill history — which is exactly why they get missed. Airdrop and staking rewards are income-at-FMV events (each daily reward its own line); vault deposits and withdrawals are flows, with returns that need their own treatment decision.
?My tax software already imported Hyperliquid — can I trust it?
Check coverage before filing: if the sync used the venue's fill API, it holds only recent history. Compare its row count against your real fill count — on one live wallet, a venue-API scan surfaced 37,077 of 64,273 lifetime fills. If your software's count is short, the number it produces is short too.
Sources & method
Step 1 starts here — free
Paste your address and the check pulls the full-history record, recomputes every number a form needs, and closes the account-value identity — so you can see whether your record is complete before you build a filing on it.