On this pageShow
Not every exchange is in our launch set, and some transactions never appear in any export — coins moved between your own wallets, a gift, holdings from an exchange that closed years ago. The Universal CSV covers all of that: one row per transaction, a fixed set of headings, and a Type column that tells the calculator how HMRC treats the row. Import it alongside your other files and it is matched under the same same-day, 30-day and section 104 pool rules. Like every file you add, it is read in your browser and never uploaded.
Download the Universal CSV template — it contains example rows; delete them before adding yours.
How to download and fill in the template
- Download the template. Save cryptotaxcheck-universal-template.csv and open it in Excel, Google Sheets, Numbers or a text editor. The example rows show one of each common transaction; delete them before you start.
- Keep the heading row exactly as it is. Headings are case-insensitive and can be in any order, but a heading we do not recognise makes the whole file unrecognised, so a typo is caught rather than silently ignored.
- Add one row per transaction. Fill in the date, the type, what was sent and what was received (asset and positive quantity), any fee, and the GBP value if you know it. Leave GBP Value blank to have us look the price up.
- Name the source. Put a short label in
Sourcefor where the transaction happened —bitstamp,ledger-nano,metamask. Transfers between your own accounts are matched across these labels. - Save as CSV (UTF-8) or Excel. Either format imports. Use a dot as the decimal separator and ISO dates (
2025-06-15T23:30:00Z); a date with no time zone is treated as UTC. - Import it with your exchange files. Add the file to the calculator together with your Coinbase, Kraken, Binance, Crypto.com or Revolut exports. Rows that fail a check are listed on the review screen with the reason, and nothing from a failed row is imported.
Which columns does the template have?
| Column | Required | What to put in it |
|---|---|---|
Date | Yes | When it happened, in ISO 8601: 2025-06-15T23:30:00Z, 2025-06-15 23:30:00 or 2025-06-15T23:30:00+01:00. No time zone means UTC; a bare date means midnight UTC. Day-first dates (15/06/2025 10:00) are accepted with a warning. We work out the UK tax date for you. |
Type | Yes | One of the values in the next table (friendly spellings such as purchase, trade, withdrawal or staking reward are accepted). |
Sent Asset | Yes* | Ticker of what left your hands: BTC, ETH, GBP. Blank if nothing was sent. |
Sent Amount | Yes* | Quantity sent, as a positive number. |
Received Asset | Yes* | Ticker of what you received. Blank if nothing was received. |
Received Amount | Yes* | Quantity received, as a positive number. |
Fee Asset | No | Ticker the fee was paid in — GBP for a fiat fee, BTC for a network fee taken in coin. Fill both fee columns or neither. |
Fee Amount | No | Fee quantity, positive. |
GBP Value | No | Market value of the transaction in pounds, excluding fees, if you know it. Blank means we look the price up. Required for OPENING_BALANCE (the total cost of the holding). |
Source | No | Where it happened, e.g. bitstamp, ledger-nano. Used to match transfers between your own accounts. Defaults to universal. |
Notes | No | Anything you want to remember; shown on the review screen and in the report. |
ID | No | Your own reference, such as the exchange's transaction id, to help avoid duplicates. |
* All four asset and amount columns must be in the heading row; which ones a row fills depends on its type, and an asset and its amount must always be filled together. Thousands separators and a £ sign are tolerated ("1,253.10", £12.41), and amounts are always positive — the Type says which way the asset moved.
Which transaction types can I use?
| Type | UK treatment | Must have |
|---|---|---|
BUY | Bought crypto with fiat. Not a disposal; sets the cost of what you bought. | Received; Sent (fiat) recommended |
SELL | Sold crypto for fiat. Disposal. | Sent; Received (fiat) recommended |
SWAP | Crypto for crypto, including into stablecoins. Disposal of the sent asset. | Sent and Received |
TRANSFER_OUT | Moved to another wallet or exchange you own. Not taxable; any network fee is a small disposal. | Sent |
TRANSFER_IN | Received from another wallet or exchange you own. | Received |
INCOME_STAKING | Staking reward. Income at its pound value on receipt. | Received |
INCOME_MINING | Mining reward. Income. | Received |
INCOME_INTEREST | Lending or savings interest. Income. | Received |
INCOME_REWARD | Any other reward for doing something — referral bonus, learn-and-earn, cashback you treat as income. | Received |
AIRDROP | Tokens you were given. Flagged for review — HMRC's treatment depends on whether you did anything in return (CRYPTO21250). | Received |
GIFT_IN | Received as a gift from someone else. | Received |
GIFT_OUT | Given away, other than to your spouse or civil partner. Disposal at market value. | Sent |
GIFT_SPOUSE_OUT | Given to your spouse or civil partner. No gain, no loss — flagged for review. | Sent |
SPEND | Paid for goods or services with crypto. Disposal. | Sent |
FEE | A standalone fee not attached to another row. | Fee Asset and Fee Amount, or Sent |
OPENING_BALANCE | Coins you already held before your records start. Enter the pool at the pound cost you give. | Received and GBP Value |
UNKNOWN | You are not sure — we ask you on the review screen. | Anything |
What does a filled-in file look like?
Date,Type,Sent Asset,Sent Amount,Received Asset,Received Amount,Fee Asset,Fee Amount,GBP Value,Source,Notes
2025-04-06T10:15:00Z,BUY,GBP,500,BTC,0.0100,GBP,2.50,500,my-exchange,Bought BTC with GBP
2025-05-01T09:00:00Z,SWAP,BTC,0.0050,ETH,0.1200,BTC,0.00001,,my-exchange,GBP value left blank — we look it up
2025-05-02T18:30:00Z,TRANSFER_OUT,ETH,0.1200,,,ETH,0.0003,,my-exchange,Sent to my hardware wallet
2025-05-02T19:00:00Z,TRANSFER_IN,,,ETH,0.1197,,,,my-wallet,Received from my exchange
2025-06-01T00:00:00Z,INCOME_STAKING,,,ETH,0.0010,,,2.10,my-wallet,Staking reward worth £2.10
2025-07-15T12:00:00Z,SELL,ETH,0.0500,GBP,95.00,GBP,0.95,95.00,my-exchange,Sold ETH for GBP
2019-04-06T00:00:00Z,OPENING_BALANCE,,,BTC,0.2500,,,900.00,my-wallet,Held before my records start
The transfer pair in the example shows the pattern for moving coins between your own accounts: the TRANSFER_OUT row carries the network fee, the TRANSFER_IN row receives slightly less, and the two different Source values let the calculator pair them.
How are rows checked?
Every row is validated before it reaches the calculator. Rows that fail are listed on the import review screen with the reason (for example "SELL rows need a Sent Asset and Sent Amount") and nothing from that row is imported. Rows that pass are cleaned up (control characters removed, very long text shortened) and become transactions with the pound value you supplied recorded as your figure, a price lookup where you left it blank, transfers flagged for matching across your Source labels, and airdrops, spouse gifts and unknown rows flagged for your review.
Can I use it for DeFi, NFTs or margin trading?
You can record them, but the calculator does not work out the tax on them. DeFi lending and liquidity pools, NFTs and margin or futures positions are outside what it supports; if those make up a meaningful part of your history, a tool built for them, or an adviser, is the right route. For ordinary buys, sells, swaps, transfers and rewards from any platform, the Universal CSV is all you need.
Frequently asked questions
When should I use the Universal CSV?
Can I leave GBP Value blank?
What is an OPENING_BALANCE row for?
Does the Universal CSV work in Excel or Google Sheets?
Sources
Written by Andrew Pickett
Founder of CryptoTaxCheck. Every guide cites GOV.UK and the HMRC Cryptoassets Manual, uses figures consistent with the calculator’s golden tests, and shows when it was last reviewed. An independent, qualified UK tax reviewer will be credited here once confirmed.
Last reviewed About CryptoTaxCheckHow the calculation works
Related reading
- GuideCrypto Tax UK: The Complete 2025/26 Guide to HMRC RulesHow the UK taxes crypto in 2025/26: Capital Gains Tax on disposals, Income Tax on staking, rates, allowances, pooling rules, deadlines and reporting.Read
- GuideWhen Do I Pay Tax on Crypto in the UK? Taxable EventsWhich crypto transactions are taxable in the UK, which are not, the thresholds that mean you must report, and the 2025/26 deadline of 31 January 2027.Read
- GuideSection 104 Pool for Crypto: Same-Day and 30-Day RulesHow HMRC's section 104 pool, same-day rule and 30-day bed and breakfasting rule work for crypto, with step-by-step worked examples and pool tables.Read
- GuideStaking Tax UK: How HMRC Taxes Staking, Mining and AirdropsHow staking rewards, mining, lending interest and airdrops are taxed in the UK: Income Tax on receipt, the £1,000 allowance, then CGT when you sell.Read
This is general information, not personal tax advice. You are responsible for your own return; if your situation is complex, speak to a qualified adviser. See our disclaimer.