Kraken CSV export format
parser live🔒 CSV conversion runs in your browser — files are not uploaded
This is the format reference for Kraken CSV export (ledger / trades) — 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: Ledger header (incl. subclass) verified verbatim on a real 2025 Kraken Pro export (BittyTax #469); trades columns per Kraken’s AddExport API docs and support article 360001169383 — see research/parser-fixture-validation-2026-10.md.
How to export the file
- Kraken (Pro) → History → Export, or Documents/Statements → export report.
- Choose the "ledgers" report for the fullest history (recommended for taxes) or "trades" for fills only.
- Submit the export, then download the generated CSV — all fields are quoted; that is normal.
Column reference
Ledger export
Column supersets vary: 2023+ adds wallet; newer Pro exports add subclass and amountusd. Older subsets still parse.
| Column | What it means |
|---|---|
txid | Transaction id (may be blank on paired legs). |
refid | Reference id — the join key: both legs of a trade share one refid. |
time | Event timestamp. |
type | Event class: deposit, withdrawal, trade, spend, receive, staking, earn, transfer, margin, … |
subtype | Refines type — e.g. earn/allocation, earn/migration, spottostaking. |
aclass / subclass | Asset class codes (fiat / crypto / stable_coin). |
asset | Kraken internal asset code — X/Z-prefixed (XXBT, ZUSD) and staked suffixes (.S, .M, .HOLD). |
wallet | Wallet bucket (2023+ exports). |
amount | Signed amount of this leg. |
fee | Fee on this leg; zero-amount rows can carry secondary fees. |
balance | Resulting balance. |
amountusd | USD value at event time (newer exports). |
Trades export
A 21-column margin-enriched variant exists; extra columns are ignored.
| Column | What it means |
|---|---|
txid / ordertxid | Trade id and its order id. |
pair | Concatenated pair code, e.g. XXBTZUSD. |
time | Fill timestamp. |
type | buy or sell — your side. |
ordertype | market / limit / … |
price | Fill price in the quote asset. |
cost | Quote-asset total for the fill. |
fee | Fee amount. |
vol | Base-asset volume. |
margin | Margin flag/amount on margin fills. |
misc / ledgers | Misc flags and the backing ledger ids. |
Format quirks
- In the ledger a trade is two rows sharing refid — a negative leg (asset out) and a positive leg (asset in) — paired into one transaction; zero-amount fee rows attach to the same refid.
- Asset codes are Kraken-internal: X/Z prefixes (XXBT→BTC, ZUSD→USD, XDG→DOGE) and staking suffixes (.S/.M/.P/.HOLD/.F) are normalized to common tickers.
- Pairs in the trades export are concatenated codes ("XXBTZUSD") — split on known asset codes, not a delimiter.
- earn/transfer subtypes (allocation, migration, spottostaking, stakingfromspot, …) are internal balance moves — they do not create disposals; unhandled ones stay visible as flagged rows.
- margin ledger rows are kept conservative (typed as other with their legs) rather than invented gain/loss math.
Convert this file (1)
| Convert a Kraken CSV to CoinTracking | live |
All Kraken CSV converters · Format reference index · All converters