Compatibility
What CryptoTaxMatch reads, how well each format has been tested, and what it doesn't support yet. If your file doesn't work, tell us the format (column names only, never your transactions).
Tested on real exports
None yet. Formats will be listed here, with version and test date, once genuine exports have been compared and the results independently checked.
Layouts tested with sample files
Covered by automated tests on synthetic files. Real exports with these columns usually work but haven't been verified.
| Layout | Example columns | Notes |
|---|---|---|
| Sent / received columns | Date, Type, Sent Amount, Sent Currency, Received Amount, Received Currency, Fee Amount, Fee Currency, TxHash | Covers trades, deposits and withdrawals in one row format. |
| Single amount + asset | Timestamp, Asset, Amount, Type, Hash | Direction from the sign of the amount or the type (deposit, withdrawal, send, receive, buy, sell, reward...). |
| JSON array of records | [{"Date": "...", "Asset": "BTC", "Amount": "0.1"}] or {"records": [...]} | Flat objects only; numbers kept as exact text. |
Column names recognised
Matched ignoring case, spaces and punctuation.
| Field | Accepted names |
|---|---|
| Date / time | timestamp, date, datetime, time, dateutc, timeutc, datetimeutc, createdat, txdate, transactiondate |
| Transaction type | type, transactiontype, kind, operation, side, txtype, category |
| Sent amount | sentamount, amountsent, outamount, sentquantity, quantitysent, debit, sent |
| Sent asset | sentcurrency, sentasset, currencysent, outcurrency, sentcoin, sentsymbol |
| Received amount | receivedamount, amountreceived, inamount, receivedquantity, quantityreceived, credit, received |
| Received asset | receivedcurrency, receivedasset, currencyreceived, incurrency, receivedcoin, receivedsymbol |
| Fee | feeamount, fee, fees, networkfee, gasfee |
| Fee asset | feecurrency, feeasset, feecoin, feesymbol |
| Amount (single column) | amount, quantity, qty, size, change |
| Asset (single column) | asset, currency, coin, symbol, token, ticker |
| Value / cost | value, networthamount, fiatvalue, usdvalue, valueusd, total, totalvalue, costbasis, subtotal |
| Value currency | valuecurrency, networthcurrency, fiatcurrency, quotecurrency, spotpricecurrency |
| Transaction hash | txhash, transactionhash, hash, txid, signature, onchainid |
| Record ID | id, recordid, tradeid, orderid, transactionid, txnid, refid, reference, referenceid |
| Wallet / account | wallet, walletname, account, accountname, exchange, source |
| Description | description, notes, note, label, memo, comment |
Dates
- ISO 8601 with or without a timezone (2025-01-31T10:00:00Z, 2025-01-31 10:00:00+02:00)
- Unix seconds or milliseconds
- Year-month-day, month/day/year and day/month/year; ambiguous files ask you to choose
- Timestamps without a timezone are read as UTC and flagged
Limits
Up to 10 files, 10 MB and 100,000 rows per file.
Not supported yet
- Excel (.xlsx), PDF statements or screenshots. Only CSV and JSON are read. Export as CSV first.
- Vendor-specific formats (Koinly, CoinLedger, CoinTracker, TRES, exchange-specific layouts). Not verified against real exports yet. They may work through column detection, but no compatibility is claimed.
- Margin, futures, options and lending positions. Rows are read as plain movements; position accounting is not modelled.
- DeFi, liquid staking (stETH, JitoSOL...) and bridges. Protocol-specific events are not decoded.
- NFTs. Treated as ordinary assets by name; no token-id handling.
- Fiat values and cost basis prices. No price source yet; values are only those in your files.
- Matching one record to more than 5 records. Larger splits stay unmatched rather than being guessed.