Tax software guesses
at your perps.
We recompute them.
Paste a Hyperliquid address. Basisproof rebuilds the record fill by fill — trades, funding, signed fees — then closes an independent account-value identity on it. Where the venue's own numbers disagree, that disagreement is printed, not hidden.
free check · paid reports on sale now — CSV evidence + PDF document · not tax advice
illustrative output · inspect a real report
how it works
Three steps. Every number re-derivable.
Paste the address
Any Hyperliquid trading address. The data is public on-chain — no keys, no sign-up, nothing uploaded.
We rebuild the record
Every fill's realized PnL, every funding event, fees net of rebates — summed over your window. Fills come from a chain indexer (the venue API only retains ~30h); funding and ledger from the venue itself.
We reconcile it
Our sums are checked against the venue's official sampled curve. The residual is printed with its likely causes — that gap is where tax reports go wrong.
funding settles hourly — a single open position can generate 8,760 taxable events a year · coarse summaries miss them
full methodologycoverage
If it happened on the venue, it is in the arithmetic.
The difficulty isn't volume — it's that each account type exercises a different venue semantic, and every one of them has a silent failure mode in a naive importer.
High-frequency accounts
100k+ fills per window is normal — one account we verified ran 1.36M fills in a quarter. The venue API retains ~30h of fills, so the record is rebuilt from a chain indexer and reconciled cell-identical where the two overlap.
HIP-3 venue accounts
xyz, flx, vntl, km and friends carried over half of perp volume at their mid-2026 peak — with their own margin pools and per-dex send flows. Tools that enumerate the main book miss this universe entirely; we classify per dex.
Sub-accounts & linked wallets
subAccountTransfer, internalTransfer and send rows move value between your own addresses. Read naively they look like income or loss twice; classified correctly they net out of the identity.
Mixed-activity accounts
accountClassTransfer shifts value across the perp boundary; spotTransfer does not touch perp account value at all. Getting that single semantic wrong was our own biggest identity bug — it is why the second axis exists.
Beyond trading
Staking principal moves, daily delegator rewards (each priced at its candle-open FMV), vault deposits/withdrawals, leader commission, spotGenesis (the HYPE airdrop) — value moving without being trade PnL. Each prints on its own line so flows, income and performance never blur.
Fee-tier & rebate accounts
Fill fees are signed — negative is a cost, positive is a rebate. Six figures of rebates summed with the wrong sign is a real misreport. Funding streams are summed per market, paid vs received.
And where we show the seam instead of hiding it: on builder-dex-heavy accounts the venue's own series disagree — its PnL history excludes unrealized dex PnL that its account-value history includes. We print the measured divergence rather than picking a side. An honest gap beats a clean lie.
different by construction
Other tools trust the venue. We check it.
measured on live accounts during development — every figure re-derivable
what this gets you
- Know whether the venue's own numbers are internally consistent before you hand them to a tax tool or a preparer.
- Catch the silent gaps — truncated fill history, mis-signed fees, misclassified transfers — that turn into wrong basis.
- Keep an evidence trail: every figure is a sum you can re-derive, not a black-box estimate.
why this exists
The 1099-DA era started. Basis didn't come with it.
us figures shown — the same basis gap exists in every jurisdiction that taxes crypto gains · brokers report gross proceeds for 2025 sales · mandatory basis reporting from 2026 · first full-basis filing season is 2027
the contract
Every output carries its label.
A tax number you cannot re-derive is a liability. Every Basisproof output is either a sum you can reproduce from the venue's own API, or a reconciliation with its residual explained — and anything we cannot establish is printed as unknown, not filled with a guess.
Sums of venue-reported per-fill values — realized PnL, funding events, fees. Re-run the same window and you get the same numbers.
Our sums are checked against the venue's official sampled curve. The residual is printed with its likely causes, never hidden.
One venue, one window. The free check is per-address; the paid report merges your linked wallets and carries basis in from exchange exports. Not tax advice.