Koinly CSV export format
parser live🔒 CSV conversion runs in your browser — files are not uploaded
This is the format reference for Koinly universal CSV — where the file comes from, what each column means, and the export quirks that matter. Our parser reads the layout(s) below and converts it in your browser.
Layout evidence: Column layout per Koinly’s official custom-CSV guide (support.koinly.io article 9489976) verified verbatim — see research/parser-fixture-validation-2026-10.md.
How to export the file
- Koinly → Tax Reports (or the wallet’s export option) → download the transaction/CSV export in the universal format.
- If you see a 33-column "bulk edit in Excel" file instead, that is a different export — the universal template is the one below.
Column reference
Koinly universal/custom CSV
| Column | What it means |
|---|---|
Date | UTC timestamp "YYYY-MM-DD HH:mm:ss". |
Sent Amount / Sent Currency | Outgoing leg — blank on pure deposits. |
Received Amount / Received Currency | Incoming leg — blank on pure withdrawals. |
Fee Amount / Fee Currency | Fee — kept separate; amounts are gross. |
Net Worth Amount / Net Worth Currency | Fiat value at tx time — informational. |
Label | Tax tag when set (reward, airdrop, …). |
Description | Free text. |
TxHash | On-chain txid when known. |
Format quirks
- Koinly ships several exports — this is the 12-column universal file; the 33-column "bulk edit in Excel" export is a different schema (the generic column-mapper reads it partially).
- One-sided rows leave the other leg blank — a blank Sent pair is a deposit, a blank Received pair is a withdrawal; both filled is a trade.
- Amounts are gross — the fee is a separate column pair, not deducted from the legs.
- The universal file carries no per-lot basis or acquisition dates — converting to lot-level formats (TXF/8949) leaves basis blank rather than inventing numbers.
Convert this file (1)
| Convert a Koinly CSV to TXF for TurboTax Desktop | live |
All Koinly CSV converters · Format reference index · All converters