Enter the Hyperliquid wallet, an optional reconciliation window, then drop the Koinly export for that wallet. All data is pulled live from Hyperliquid's free public API — no key, nothing leaves your browser except the read-only address lookups.
Leave blank to reconcile the wallet's full lifetime. For a tax-year file, set start = Jan 1 and end = Dec 31.
Drop the Koinly CSV export or click to choose
Koinly → Wallet → ⋯ → Export transactions (Universal CSV). Optional — you can also run HL-only.
2 · Reconciliation
Category
Koinly booked
Hyperliquid truth
Variance
Status
How it works
Reconciles a Hyperliquid wallet's realized PnL, funding, fees and transfers against a Koinly import — and tells you the exact adjusting entry to book.
What it produces
A per-category reconciliation statement: deposits, withdrawals, funding, fees, and realized PnL — Koinly's booked figures vs. Hyperliquid's ground truth, with the variance on each line.
A time-phased schedule of correcting entries to book in Koinly (see below) — plus a ready-to-import Koinly CSV of those entries.
A triangulation support block proving the true PnL three independent ways.
A downloadable XLSX workpaper (Reconciliation · Support · Correcting Entries · Koinly Import · Source Data tabs) to save as your file support.
Where the data comes from
Hyperliquid's free public API (api.hyperliquid.xyz/info) — no API key, no proxy, read-only. Your CoinMarketMan / HyperTracker key is not used: its API deliberately excludes wallet trade/funding/ledger history.
Deposits & withdrawals from the on-chain ledger; funding from the funding history; account value from the portfolio endpoint and current clearinghouse state.
How realized PnL is computed — and why not from trades
Hyperliquid's per-trade fill API is lossy for high-volume accounts: large chunks of fills are not served, so summing per-trade closedPnl understates the truth (we have seen it miss over $1.7M on a single wallet). Koinly hits the same wall — it books PnL in sparse lump sums.
So realized PnL is derived from the cash-flow + account-value identity, which needs no trade data and cannot be fooled by missing fills:
realized PnL (net of fees) = Δ account value − deposits + withdrawals − net funding
Because the account value already reflects every gain and loss, this is exact whenever the period boundaries are known — and airtight for a wound-down (flat) account.
Deterministic, not AI
Every figure is computed deterministically from Hyperliquid data and your Koinly CSV. There is no AI/LLM in this tool and no estimation — the adjusting entry is arithmetic.
Per-trade fills are shown only as an optional audit panel, explicitly labeled incomplete. Never use the fill sum for PnL.
Why the correcting entries are time-phased (not one year-end lump)
Koinly tracks the running balance chronologically, so a large withdrawal made before the funding gains were recorded drives the balance negative at that date — triggering negative-balance and missing-cost-basis errors on every downstream row. A single year-end true-up arrives too late to fund that withdrawal.
So the tool walks Koinly's ledger in order and, immediately before any withdrawal that would overdraw, inserts a realized-gain entry sized to the wallet's actual Hyperliquid equity at that moment — then a final year-end true-up to the exact ending balance. The running balance stays funded throughout, clearing the errors. The entries always sum to the same total net correction.
Triangulation support
The true realized PnL is corroborated three independent ways — the cash-flow identity, Hyperliquid's own reported all-time PnL minus funding, and net cash extracted minus funding. They agree to within the $1-per-withdrawal network fees. All three appear in the on-screen support block and the workpaper's Support tab.
Reading the result
Deposits / withdrawals / funding should reconcile to the penny (small $1-per-withdrawal network-fee deltas are expected and flagged).
The realized-PnL line is where Koinly typically diverges; the correcting-entry schedule fixes it and re-funds the balance before each withdrawal.