Concern about HMRC challenging crypto records rises before the Self Assessment deadline. Many investors, freelancers and small businesses find incomplete ledgers or missing exchange exports when asked for evidence. Those gaps can trigger penalties and lengthy enquiries. They can also cause unexpected tax bills. Practical, immediate steps make compliance manageable.
HMRC crypto compliance checklist: core records
Keep a ledger that proves every transaction and how GBP values were calculated. This ledger is the primary defence in any HMRC enquiry. A defensible ledger has standard fields and a clear source for exchange rates.
Essential ledger fields
List the minimum CSV headers and data types you must store. Use the header exactly as shown in the CSV block later. Each field must map to an exchange export or wallet proof.
How long to retain records
Follow HMRC employer guidance for PAYE records. For Self Assessment and CGT, keep supporting records for at least four years from the tax return submission date. Keep records for up to six years where HMRC may allege carelessness. For crypto positions with cross-year complexity, keep raw exports. Also keep normalised ledgers for six years to cover extended enquiries. Keep raw exchange exports and wallet backups longer if an investigation starts.
Start with raw exports dated and named clearly.
Provide a canonical CSV header to paste into spreadsheets. Use ISO timestamps and GBP numeric values with two decimals.
Iso_datetime,tx_id,asset,quantity,gbp_value,acquisition_cost_gbp,fee_gbp,from_address,to_address,tx_type,exchange,note
Decide: capital gains or income
Decide the tax type before you calculate numbers. The tax outcome changes whether disposals go on SA108 or on Self Assessment income pages. The checklist below helps decide using short tests and examples.
Tests that decide status
Check frequency, commercial style, automation, and whether the activity produces regular rewards. Frequent sales, organised systems, advertising and bots point to trading and Income tax. Occasional buys and holds usually lead to CGT treatment.
Examples with numbers
Example CGT: bought 1 BTC at £6,000 on 01/06/2020 and sold for £15,000 on 01/12/2023. Compute disposal proceeds less fees, then subtract acquisition cost plus fees. Report net gain on SA108 after applying the annual exemption.
Trading vs holding: quick checklist
Tick boxes for trading indicators: regularity, use of bots, use of borrowed funds, or running a platform. If two or more indicators apply, treat receipts as Income and consult an adviser. The presence of staking rewards alongside trading adds complexity.
Filling SA108: step‑by‑step
Map your computed gains into SA108 fields and attach supporting calculations. The first requirement is a clear summary line for total gains and losses. The second requirement is itemised disposals or an attached CSV with matching fields.
Which boxes to use
Enter total gains after allowable costs in the SA108 capital gains summary. Enter allowable losses as a deduction in the same section. If activity is trading, record income on the appropriate Self Assessment income boxes instead of SA108.
Worked SA108 example
Using the previous BTC example: explicitly show fee adjustments so the numbers reconcile. Bought 1 BTC at £6,000 with a buy fee of £60 so acquisition cost = £6,060. Sold for £15,000 with a seller fee of £150 so disposal proceeds = £15,000 − £150 = £14,850. Net gain = £14,850 − £6,060 = £8,790.
Place the net gain figure on your SA108 supporting schedule. Also place the aggregated net gains figure in the SA108 capital gains summary. Attach the CSV and a one-line reconciliation of fees used in the computation.
Attaching evidence
When filing online, upload a one-page summary plus the canonical CSV. When filing by post, include a printed summary and the CSV table pasted into the cover letter. Keep the original exchange exports offline for six years.
Worked examples help avoid small arithmetic errors that trigger enquiries. For reconciliation, show the gross disposal proceeds and allowable costs, including acquisition and sale fees, and display the resulting net gain on your supporting schedule. In the SA108 capital gains summary, enter the total net gains for the tax year and apply the annual exempt amount first. Attach the CSV and include a one-line reconciliation. “Total reported gains on SA108 = £8,790 (see attached workings and CSV).”
Keep one printed copy for your file at home.
Exporting from major exchanges
Export every account's full history including trades, deposits, withdrawals and rewards. Do this before you change account settings or close accounts. Use each exchange's full export feature rather than piecing together trade pages.
Exchange‑specific exports
Coinbase: Accounts → Reports → Transaction History → Generate all data. Binance: Wallet → Transaction History → Export all relevant sheets. Kraken: Reports → Export → Ledger with staking included. Save filenames and export dates for audit trails.
Normalising CSVs for HMRC
Map every exchange column to the canonical CSV header and ensure GBP conversions use the historic rate at transaction time. Tag internal transfers and remove duplicates. Calculate GBP countervalues for crypto-to-crypto swaps at swap time.
Quick exchange filename examples
Example names you might see: coinbase_transactions_2024-03-01.csv, binance_spot_trades_2023-12.zip, kraken_ledger_2023.csv. Record the export time in your ledger.
Plazo legal: HMRC can request records from up to four years after the tax year end.
HMRC can request records up to six years when carelessness is suspected.
Process: export → normalise → calculate → file
Export CSVs
Map fields
Compute gains
Attach to SA108
Keep raw files and a one‑page summary for HMRC.
HMRC visibility will depend on the exchange and the data they export. Most major platforms provide an export function and will join CARF and DAC8 reporting. Practical export steps for common platforms:
Coinbase: Accounts → Reports → Transaction History → Generate full history. Select all date ranges and include staking and rewards.
Binance: Wallet → Transaction History → Export. Choose Spot Trades, Orders and Rewards. Save the ZIP and note the export timestamp.
Kraken: Reports → Export → Ledger. Select include staking and margins.
Gemini: Reports → Transaction History → Download CSV or JSON.
Bitstamp: Account → Reports → Transactions → Request full CSV.
Bitpanda: Settings → Reports → Export transactions.
For each export, preserve the original filename and export timestamp. Capture any accompanying JSON or ZIP. Add a short note in your manifest if the platform splits trades, deposits and rewards into separate files so a reviewer can see how you normalised them into the canonical CSV.
Label each file with the export time and platform name.
Responding to HMRC and disclosures
Reply to any HMRC contact promptly and with a clear plan. A short factual initial reply reduces penalty risk and buys time to collate records. Use the template below for first contact responses.
Start with acknowledgement, list the export files you will provide, and give a clear date when full calculations will follow. Keep statements factual and avoid admitting deliberate understating of liability.
[Date]
HM Revenue & Customs
Re: Notice reference [REF]
Dear Sir or Madam,
I acknowledge receipt of your letter dated [date]. I am preparing the requested transaction history and calculations. I will provide a CSV ledger and a one‑page summary by [date, within 14 days].
Yours faithfully,
[Name]
When to use the disclosure facility
Consider voluntary disclosure if historical returns omit significant gains or income. Voluntary disclosure can reduce penalties compared with waiting for a full HMRC enquiry. Use a professional adviser when exposures exceed basic thresholds.
Penalty timings
HMRC enquiries normally open up to four years after a return. They can extend to six years for careless errors and longer for deliberate cases. Cooperate early and supply complete exports to limit escalation.
Answer HMRC within the time they set, if possible.
NFTs, DeFi and complex scenarios
Treat NFTs, yield farming and DeFi positions as distinct events for tax purposes. Each mint, sale, swap, or reward can be a taxable event. Track minting fees and on-chain addresses like any other transaction.
Tax rules for NFTs
An investor selling a single NFT normally reports a CGT disposal. A creator who mints and sells many NFTs may have trading Income to report. Royalties received are taxable as receipts when received.
DeFi: swaps and liquidity
Swaps on decentralised exchanges trigger disposals that need GBP countervalues at the swap time. Providing both sides' GBP values avoids double counting and shows how impermanent loss was realised when withdrawing liquidity.
This works well in theory; in practice, many ledgers fail to capture gas costs and timestamp mismatches. The error most common in high-volume DeFi is missing on-chain fee records. That error reduces allowable costs and inflates gains. A short audit of 100 swaps often finds five to ten timestamp mismatches needing manual correction.
In an anonymous case, a UK freelancer failed to include mint gas and marketplace fees on sales, and corrected filings showed £19,600 less gain after including costs and pooling. That correction reduced penalties when disclosed voluntarily.
Cross‑border rules and CARF impact
Assume CARF and DAC8 will increase HMRC's visibility of foreign exchanges from 2026. Do not assume anonymity or that overseas accounts shield undeclared profits. Plan as if HMRC can match exchange records to UK taxpayers.
What CARF changes from 2026
CARF requires participating jurisdictions to exchange crypto transaction data from 2026. This makes hidden accounts far more detectable. Plan remediations early if past returns omitted overseas exchange activity.
HMRC guidance on cryptoassets
Residency and non‑resident notes
UK residents pay tax on worldwide crypto gains and income. Non‑residents may still have UK tax if they have a UK source or a UK taxable presence. Consider residency tests when large cross‑border trades occurred.
If your situation includes high frequency trading or large undisclosed historical gains, get a specialist review within two weeks. Also get a review for complex DeFi positions. A timely professional check reduces penalty risk and surfaces errors before HMRC discovery.
This checklist does not apply if you have no UK tax nexus. Also, it does not apply if every movement is an internal wallet transfer with no disposal. Keep records regardless to prove the lack of taxable events.
If unsure about past unreported transactions, arrange a professional tax review within 14 days. Ask the reviewer to assess disclosure options and prepare SA108 entries.
FAQ: HMRC crypto compliance questions
What records must I keep?
Keep exports showing date, time, tx id, asset, quantity and GBP value. Include acquisition cost, fees, wallet addresses and tx type. Store raw exchange files and a normalised CSV. Maintain a one-page summary mapping totals to SA108 lines.
How do I calculate gains for crypto‑to‑crypto
Compute GBP countervalue for both sides at swap time and use that as disposal proceeds. Deduct acquisition cost including fees, convert all values using historic rates, and use Section 104 pooling when multiple acquisitions exist.
When is crypto income rather than CGT?
If activity resembles a business with regular sales, automation or promotion, treat receipts as Income. Occasional sales by an investor are generally CGT. The decision depends on frequency, scale and business indicators.
How long will HMRC keep asking about past years?
HMRC normally opens enquiries up to four years after the return. They can extend to six years for careless errors and longer for deliberate cases. Keep records for at least six years after filing when you have complex transactions.
Can I attach a CSV to my online SA108 submission?
Yes. Upload a one-page summary and include the normalised CSV when prompted. Keep raw export files and file names for your audit trail. If posting, include printed CSV and a cover letter.
When should I hire a specialist?
Hire a specialist for high frequency trading, cross-border holdings, large airdrops, or unclear NFT/DeFi outcomes. If exposure exceeds a professional threshold, arrange a review within 14 days to limit penalties.
What to do now
Export all exchange and wallet histories today and save the raw files. Map each export into the canonical CSV header provided above. Run the worked examples in this article with your numbers and prepare draft SA108 entries. If any historical returns omit material crypto gains, consider voluntary disclosure and get professional advice. Early cooperation reduces penalty risk and speeds resolution.
| Scenario |
Tax treatment |
Where to report |
| Occasional sale by investor |
Capital Gains Tax (CGT) |
SA108 capital gains |
| Regular sales with bots |
Income Tax on trading receipts |
Self Assessment income pages |
| Staking rewards |
Usually Income when received |
Income pages or company accounts |
Which exchanges report to HMRC?
Major global exchanges plan to share data under CARF and DAC8 from 2026. Also consider that UK‑based intermediaries already cooperate with HMRC. Treat all exchange activity as potentially visible to HMRC.