Generic CSV template
Last updated: 2026-08-26
For any exchange or wallet the app does not recognise, put the transactions into this layout and import it. The app treats a generic file exactly like an exchange file: same pairing, same cost basis, same exports. You can also re-import the app's own "Export all transactions" CSV, which uses this format.
Download a ready-made file from inside the app (Import → Download generic template) or copy the header below.
Header
timestamp,type,asset,amount,quote_asset,quote_amount,price,fee_asset,fee_amount,account,txid,note
Column order does not matter and names are case-insensitive. Only the first four are required. Keep the column called timestamp (not date or time), which is how the app tells this template apart from exchange files that happen to look similar.
Columns
| Column | Required | What goes in it |
|---|---|---|
timestamp | yes | When it happened. ISO-8601 such as 2024-03-01T12:34:56Z or 2024-03-01 12:34:56 UTC. A value without a zone is treated as UTC unless you choose another zone on the import step. |
type | yes | One of buy, sell, deposit, withdrawal, fee, reward, other. Friendly spellings are accepted: bought/purchase → buy; sold/sale → sell; receive/received/transfer in → deposit; withdraw/send/sent/transfer out → withdrawal; staking/interest/airdrop/income → reward. Anything else is imported as other with a warning. |
asset | yes | The coin that was bought, sold, moved or earned, e.g. BTC. |
amount | yes | How much of asset. Always positive; the type says which way it went. Fees are not included here. |
quote_asset | for buy/sell | What you paid with (buy) or received (sell), e.g. USD, USDT. |
quote_amount | for buy/sell | Total paid (buy) or received (sell), excluding the fee. For a reward, optionally its value at the time; that becomes its cost basis. |
price | no | Price of one unit of asset in quote_asset. Worked out from the two amounts when empty. |
fee_asset | no | Asset the fee was charged in. Give both fee columns or neither. |
fee_amount | no | Fee amount, positive. Buy fees are added to cost; sell fees reduce proceeds; a fee on a withdrawal helps pair it with the deposit on the other side. |
account | no | Which exchange or wallet. Overrides the account name you type on the import step, row by row, so one file can hold several accounts. |
txid | no | On-chain hash or exchange reference. If the same hash appears on a withdrawal and a deposit, they are paired with certainty. |
note | no | Anything you like. Shows in Transactions. |
Aliases the app also understands: date/datetime for timestamp; side/action for type; coin/symbol/currency for asset; quantity/qty for amount; total/cost/proceeds for quote_amount; fee for fee_amount; wallet/exchange for account; hash/reference for txid; memo/description for note.
Numbers and dates
- Use a dot as the decimal point and no thousands separators:
1234.5, not1,234.5. Currency symbols are removed automatically but it is safer to leave them out. - Scientific notation (
1e-7) is accepted, but if you are editing in Excel, format the columns as text first; Excel likes to rewrite long numbers and strip leading zeros from transaction IDs. Importing the original text file is always safer than a re-saved one. - Dates: prefer ISO.
2024-03-01is unambiguous;03/01/2024is not, and the app reads day-first by default for slash dates.
Sample
timestamp,type,asset,amount,quote_asset,quote_amount,price,fee_asset,fee_amount,account,txid,note
2024-01-15T09:30:00Z,buy,BTC,0.25,USD,10500,42000,USD,10.5,Ledger wallet via Strike,,first buy of the year
2024-02-02T14:05:00Z,withdrawal,BTC,0.1,,,,BTC,0.0002,Strike,3f9c...e1,to cold wallet
2024-02-02T14:40:00Z,deposit,BTC,0.0998,,,,,,Ledger wallet,3f9c...e1,
2024-03-10T00:00:00Z,reward,ETH,0.012,USD,42,,,,Lido,,staking payout
2024-06-20T16:00:00Z,sell,BTC,0.05,USD,3300,66000,USD,3.3,Ledger wallet via Strike,,
2024-07-01T12:00:00Z,fee,ETH,0.0009,,,,,,Ledger wallet,,gas for wallet move
In this sample the withdrawal and deposit share a txid, so they pair on that alone; without it, they would still pair because the amounts differ only by the declared 0.0002 fee and the deposit arrives within the pairing window.
After importing: common questions
"Required columns are missing." At least timestamp, type, asset and amount must be present under those names or their aliases. Check for a stray space or BOM in the header.
"Unknown transaction type." The type value is not in the list above. The row is imported as other, which cost basis ignores. Fix the spelling and re-import; the corrected row replaces nothing, it is simply a new row, so delete the other one in Transactions.
A buy with no quote_amount. Buys and sells need the total. Rows without it are skipped and listed in the preview.
Same file, several wallets. Fill the account column per row; leave the account box on the import step as a fallback for rows where it is empty.