1 · Wallets & Koinly export

Enter one wallet per line — add every Hyperliquid address the client controls so gains and losses are consolidated correctly. Then drop the Koinly export(s); rows are matched to each wallet automatically. Reporting is broken out per tax year. Keyless — nothing leaves your browser except read-only address lookups.

Drop the Koinly CSV export(s) or click to choose
Koinly → Export transactions (Universal CSV). One combined export or one per wallet — both work. Optional (HL-only runs too).

2 · Reconciliation

How it works

Reconciles one or more Hyperliquid wallets for a client against Koinly — consolidated and broken out by tax year — and produces the exact correcting entries to book.

What it produces

Why multiple wallets & per-tax-year

A client may trade from several Hyperliquid wallets. A gain in one and a loss in another only tell the true story when consolidated — but gains and losses in different tax years do not net across years, so every figure is reported per year. Money moved between the client's own wallets is a non-taxable transfer, flagged for review so it isn't mistaken for income or a disposal.

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), and Koinly 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

It's corroborated by Hyperliquid's own reported all-time PnL. Fills are never summed for PnL.

Why the correcting entries are time-phased

Koinly tracks the running balance chronologically, so a large withdrawal made before its funding gains were recorded drives the balance negative — triggering negative-balance and missing-basis errors on every downstream row. The tool inserts a realized-gain entry before each withdrawal that would overdraw (sized to the wallet's actual equity then) and a true-up at each year-end, so the balance stays funded and each year's PnL is recognized in the right year.

Deterministic, not AI

Every figure is computed deterministically from Hyperliquid data and your Koinly CSV — no AI, no estimation. Data source: Hyperliquid's free public API. Your CoinMarketMan / HyperTracker key is not used (its API excludes wallet history).