exchange CSV export format
parser live🔒 CSV conversion runs in your browser — files are not uploaded
This is the format reference for generic CSV (column-mapped) — 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: Spelling tables built from every real header seen across the dedicated adapters — see src/lib/parsers/sources/generic-csv.ts and research/parser-fixture-validation-2026-10.md.
How to export the file
- From your exchange, wallet, or tax tool, download the transaction/history CSV — the raw export, not a PDF statement or summary report.
- Keep the header row on line 1 — the mapper reads the first row as column names (a metadata preamble defeats detection).
- Drop the file on a generic converter — the parser maps common column spellings to a normalized transaction model.
Column reference
Canonical fields the auto-mapper looks for
There is no single "generic CSV format" — these are the fields it resolves from common header spellings.
| Column | What it means |
|---|---|
date | e.g. Date (UTC), Timestamp, DateTime, UTC_Time, Created At — event time. |
type | e.g. Transaction Type, Side, Operation, Category, Direction — row class. |
sent amount / sent asset | e.g. Sent Amount, Amount Sent, Sell Quantity, From Amount, Debit — outgoing leg. |
received amount / received asset | e.g. Received Amount, Buy Quantity, To Amount, Credit — incoming leg. |
amount / asset | e.g. Amount, Quantity, Coin, Asset — single-leg rows. |
total (+ currency) | e.g. Total, Cost, Value, Proceeds, Subtotal — the counter-leg on single-leg rows. |
price (+ currency) | e.g. Spot Price at Transaction, Price, Rate — used for context, never to invent legs. |
fee amount / fee asset | e.g. Fee, Fees and/or Spread, Fee Currency — fee leg. |
description / txhash | e.g. Notes, Description, TxHash — passthrough metadata. |
Format quirks
- The mapper intentionally caps its detection confidence below dedicated adapters — a file a real adapter claims never lands here.
- Counter-legs are never invented: a single-leg buy/sell with no Total/Cost column emits one leg plus a warning — not a multiplied price guess.
- The header must be line 1 — files with a metadata preamble (Coinbase gen-3 style) need a dedicated adapter page, not the generic mapper.
- Direction on leg-less exports is decided by sign — a withdrawals-only file (one positive Amount column, no type column) can read as deposits; the preview notes say when that assumption ran.
- Unmappable columns are flagged in the notes — never silently dropped.
Convert this file (7)
All exchange CSV converters · Format reference index · All converters