Swapped ETH for USDC across several routes and now facing HMRC questions?
Many investors underestimate how multi-swap paths and intermediate tokens trigger taxable disposals.
Loose records then create unexpected liabilities and penalties.
A concise practical checklist turns swap histories into HMRC-ready figures in under a day.
This reduces errors and shows which timestamps and GBP valuations matter.
Crypto-to-Crypto Trades are, in most cases, taxable disposals for UK Capital Gains Tax.
Treat each swap as a disposal valued in GBP at the time.
Apply same-day then 30-day matching and then pooling rules.
Calculate the gain or loss in GBP and report it on Self Assessment.
Keep timestamped records.
Get professional advice for complex DeFi, LP tokens or trading as a business.
Summary of the process
This section lists the exact steps to turn swaps into HMRC-ready numbers in under a day.
Read the list and follow the order to avoid the most common errors.
- Convert the disposed crypto to GBP at the exact swap timestamp.
Save the source.
- Apply matching rules in order.
Follow same-day, then 30-day, then Section 104 pooling.
- Compute taxable gain or loss in GBP.
Use proceeds minus allowable costs including the GBP value of fees.
- Keep CSV/JSON exports, trade fills and transaction hashes as primary evidence.
- Report on Self Assessment if net gains exceed the annual exempt amount.
Also report if the activity counts as trading income.
Double check timestamps and GBP conversions for every disposal.
Step 1: confirm taxable status
Exchanging one cryptoasset for another is a disposal liable to Capital Gains Tax for most private UK residents.
This does not apply when the receipt is income. For example, staking rewards and some airdrops are taxed on receipt as income, or when the activity meets trading tests and attracts Income Tax.
The legal framework includes the HMRC Cryptoassets Manual.
It also includes principles in TCGA 1992.
When a swap is income not CGT
A receipt taxed as income happens when the asset arrives as a reward.
Income also arises if the activity meets trading tests like regularity and a business-like organisation.
If an airdrop or staking reward is received, value it in GBP at the moment of receipt.
Treat it as miscellaneous income for Income Tax purposes.
The distinction matters because Income Tax uses different allowances, thresholds and reporting rules than CGT.
Indicators of trading activity
HMRC looks at patterns such as frequent similar transactions.
They also look for a business-like system and an intention to profit from short-term price moves.
These indicators shift the tax view from capital gains to trading income and can change tax rates and deductions.
The most frequent error here is to assume every frequent swap is capital.
Do not forget to examine whether the overall activity shows trading characteristics.
Step 2: how to value a swap in GBP
Value each disposal in GBP at the exact time of the swap.
Do not compare token prices in native crypto.
The GBP amount forms the proceeds and is the backbone of gain or loss calculations.
If the exchange gives a GBP quote, use it.
If no GBP quote exists, use a reliable market feed.
Record the provider and timestamp.
What timestamp and rate to use
Use the precise blockchain or exchange execution timestamp recorded in UTC.
Convert that instant to UK local date and time for same day matching.
Keep both the original UTC timestamp and the UK local date in your records.
This allows the matching rules 00:00 to 23:59 UK tax day to apply unambiguously.
Apply the market price at that instant.
Use a mid-market rate or the execution price on the platform.
Then convert to GBP.
Keep a screenshot, CSV row or API response showing the time and rate.
This lets a third party reconstruct the method.
DEX and on-chain valuation specifics
For DEX swaps capture the pool price, token reserves, transaction hash and block number at the swap block.
If a pool uses an intermediate token record each leg and the implied prices.
Reconstruct the GBP proceeds for each implied disposal.
If the pool price is not directly available rebuild it from nearby block trades and document the method clearly.
On DEXs the market price at a block is recoverable from pool reserves.
- For a simple constant product pool instantaneous price of token X in token Y equals reserveY divided by reserveX.
- To convert that on chain price to GBP use the bridge token GBP value at the same block.
- Multiply the X to bridge price by the bridge to GBP price.
- Reconstruct the price by copying reserveX and reserveY at the swap block.
- Compute price as reserveY divided by reserveX or use an oracle value.
- Then apply the bridge token GBP rate from the same block timestamp.
If, for example, WETH at that block is £1,200, then token A's price would be about £12.00.
Capture slippage by comparing the pool mid price to the actual execution price in the swap event.
The execution price will incorporate the trade size and fees.
Record both the pool mid price and the execution price.
This lets HMRC see the method used for DEX valuation.
This concrete DEX valuation workflow helps close gaps in crypto valuation and evidence for HMRC enquiries.
Step 3: same-day, 30-day and pooling rules
Apply matching rules in strict order.
Use same day matching first then 30 day matching and then Section 104 pooling.
The rules determine which acquisitions match a disposal and therefore which cost basis to use.
These rules are statutory or long standing HMRC policy and they materially change gains when many quick swaps occur.
How same-day matching works
Same-day matching pairs disposals with acquisitions that occur within the same UK tax day.
The matching happens irrespective of wallets or exchanges.
Holdings must be the same token and acquisitions must be identifiable.
This rule often forces a higher cost basis for rapid buy/sell activity carried out on the same day.
How the 30-day rule works
If no same-day acquisition exists acquisitions made in the 30 days following a disposal match next.
The 30 day rule is a look forward period measured in calendar days from the disposal timestamp.
The practical effect is to stop simple wash sales from being pooled immediately and to catch quick repurchases.
Section 104 pooling
After same-day and 30 day matches the remaining amount matches the Section 104 pooled average cost for that token.
The pool aggregates past acquisitions of the same token and uses an average cost in GBP.
Transfers between wallets must be evidenced.
Careless transfers can break pooling or create unintended disposals.
| Rule name |
Window |
What matches |
Example effect on cost |
Applies across wallets? |
| Same-day |
00:00–23:59 UK tax day |
Acquisitions same day |
May use higher recent cost, lowering gain |
Yes, if traceable |
| 30-day match |
30 days after disposal |
Acquisitions in next 30 days |
Stops wash sales; can raise cost basis |
Yes, but must be evidenced |
| Section 104 pool |
Ongoing pool |
Remaining quantity after matching |
Uses weighted average cost in GBP |
Depends on transfers/proof |
HMRC can request supporting evidence during an enquiry.
HMRC expects records that allow reconstruction of GBP conversions.
Taxpayers should preserve raw CSV or JSON exports, API responses and snapshots with timestamps.
Be prepared to produce them within HMRC's enquiry timetable.
The timescale for producing evidence depends on whether an enquiry is opened.
The nature of any inaccuracies also affects time limits and penalties.
Careless and deliberate behaviour attract different penalties.
Flow: match disposals to acquisitions
Disposal time (UTC/block)
Same-day acquisitions
30-day acquisitions
Section 104 pool
Follow arrows left to right: if match found stop; if not continue to next box and document each check.
Step 4: multi-swap gain calculation
When swaps chain A→B→C each implied disposal must be valued and matched in order.
Compute proceeds in GBP for each disposal.
Apply matching rules then compute gains or losses for each step.
Do not net token amounts without converting to GBP and applying the matching rules.
Worked numeric example: a → b → c
A concrete example clarifies the method and common pitfalls.
Use timestamps and GBP rates for every step and include fees.
1) 2025-03-01 09:15 UTC: dispose 1.000 A for 10.000 B.
Market price at 09:15 was £2,000.00.
Proceeds = £2,000.00.
Fee charged was 0.005 A.
Treat this as an allowable cost at the A price.
2) 2025-03-01 11:00 UTC: dispose 10.000 B for 100.000 C.
B market price at 11:00 was £210.00 per 10 B, so B per unit was £21.00.
Proceeds equal 10 B times £21.00 which is £210.00.
Fee was 0.1 B and converted to GBP at 11:00.
Compute the gain on A disposal.
Use proceeds £2,000 minus the original acquisition cost of A in GBP and fees.
Compute the gain on B disposal similarly.
Apply same-day matching to any acquisitions on 2025-03-01 before using pool cost.
Routed swaps and exchange aggregation
Routed swaps through an intermediary token still create two disposals in UK tax terms.
This is unless the exchange records a single fiat settled trade with a GBP fill for each leg.
Reconstruct each implied leg if the platform does not provide a single GBP figure.
The most frequent error is using the platform route summary without saving the detailed fills and timestamps.
Verify every fill and timestamp against on-chain data.
Step 5: record-keeping, CSV templates and reporting
HMRC expects clear timestamped evidence that reconstructs the GBP amounts for each disposal.
Exports from exchanges or on chain data are acceptable when they contain enough detail to rebuild prices and fees.
The bare minimum is a CSV row per disposal with timestamp, pair and amounts.
Include the GBP value or a reproducible route to GBP.
Timestamp_utc,tx_hash,exchange_or_wallet,from_token,from_amount,to_token,to_amount,fee_token,fee_amount,gbp_value_of_disposed,gbp_fee,block_number,notes
2025-03-01T09:15:00Z,0xabc...,UniswapV2,A,1.000,B,10.000,A,0.005,2000.00,10.00,17123456,"route:A->B, pool:xxx"
Checklist for HMRC enquiries
Keep raw CSV or JSON exports, trade fills and platform order history.
Also keep account statements showing GBP conversions and on chain tx hashes.
Save snapshots of price feeds with the URL and UTC timestamp and keep evidence of fee valuation.
If an HMRC tax inspector opens an enquiry they will ask for the raw exports first.
One common failure is missing the GBP conversion source for a DEX trade.
HMRC guidance on cryptoassets summarises record keeping expectations and gives practical examples.
DEX swaps, LP tokens and DeFi traps
Supplying liquidity to a pool disposes of the contributed tokens.
This action creates LP tokens with a GBP cost equal to the combined market value of the supplied assets.
On withdrawal the LP token disposal yields proceeds equal to the GBP value of returned tokens.
The difference gives rise to a gain or a loss.
Fees or reward tokens paid to the provider may be taxable as income at the time of receipt.
Tax treatment of LP provisioning
Deposit A and B to receive LP tokens.
Treat this as two disposals of A and B and one acquisition of the LP token.
The cost basis of the LP equals the GBP value of the deposited A and B at deposit time.
Rewards, fees and income events
Protocol fees and farming rewards normally count as income when received.
Value them in GBP at the block timestamp.
Staking and some airdrops are often Income Tax events not CGT.
A common mistake is folding rewards into the Section 104 pool without treating the reward as taxable income at receipt.
The recommendation is clear.
Always capture the block number, tx hash and pool reserves when interacting with DeFi pools.
That evidence rebuilds pool prices later and defends valuations in an HMRC enquiry.
This method works well only when the taxpayer stores primary data consistently.
It falls short when trades are split across many wallets and exchanges without central records.
In practice this means that small holders can follow the steps and stay compliant.
Larger frequent traders should use specialist software or a tax adviser who can reconstruct routes and apply matching rules correctly.
Errors that ruin the result
Not converting each swap to GBP at the swap timestamp leads to incorrect gains and losses.
Using token to token price comparisons without GBP conversion is the single most frequent error found in enquiries.
Ignore the matching rules and pooling and the final CGT liability is likely wrong.
Common recording mistakes
Missing transaction hashes, not saving CSV or JSON exports and failing to record fees in GBP make defence to HMRC difficult.
Transfers between own wallets without a clear audit trail can be treated as disposals or reduce pooling incorrectly.
The most frequent error in this category is treating wallet transfers as non tax events without contemporaneous documentation.
Reporting pitfalls
Filing only totals in GBP without row level support invites enquiries because HMRC will ask for reconstruction.
Misclassifying staking rewards or airdrops as capital disposals rather than income causes tax underpayment and possible penalties.
A case often seen involves a user who claimed pooling for rapid buybacks within 30 days.
They lost the case because the 30 day matching rule applied.
This method does not apply when the activity qualifies as trading and Income Tax applies.
It also does not apply when the taxpayer is non UK resident or when receipts are income events like staking and rewards.
Reclassify these cases before using CGT rules.
If the swaps or multi-hop routes are complex, seek advice from a tax adviser specialising in crypto.
If HMRC has contacted the taxpayer, get advice quickly.
A properly documented CSV and a clear matching narrative reduce the time and cost of any review.
There are lawful, practical ways to manage crypto tax exposure in the UK that do not amount to avoidance.
Poor reporting creates clear financial risks.
Tax loss harvesting means crystallising genuine losses in one tax year to set against gains.
Be mindful of the 30-day rule, which can rematch quick repurchases and negate the loss.
Timing disposals within the same UK tax day can alter which acquisitions are matched.
This can change the cost basis applied to CGT swaps.
Keep full tax records showing the rationale for timing decisions and any commercial reason for swaps.
This helps avoid allegations of careless or deliberate behaviour.
Penalties in the UK for inaccurate returns increase with the severity.
They may attract interest on unpaid tax.
Careless errors normally incur smaller penalties than deliberate concealment.
HMRC will examine records such as CSV, JSON and transaction timestamps.
They will also look at tx_hashes to decide if under-reporting was negligent or deliberate.
Items taxed as income, staking income or certain airdrops sit outside CGT and require separate reporting.
Conflating staking income with CGT swaps risks both underpayment and penalties.
Final checklist and recommended next steps
Work through this short checklist before filing Self Assessment:
- Convert every disposal to GBP at the swap timestamp.
- Apply same-day, then 30-day matching, then pooling.
- Include the GBP value of fees as allowable costs.
- Keep raw CSV or JSON exports and on-chain tx hashes.
- Note any income events separately.
If net gains exceed the CGT annual allowance for the relevant tax year, report on Self Assessment.
For example, the allowance was £6,000 for 2023/24 and £3,000 for 2024/25.
If uncertainty remains about multi-swaps or an HMRC notice, engage a tax adviser specialising in crypto.
Ask them to review the raw exports and the matching narrative before filing.
Frequently asked questions
Are crypto-to-crypto trades taxable in the UK?
Yes.
Most crypto-to-crypto trades are taxable disposals for Capital Gains Tax when the taxpayer is UK resident.
Each swap is valued in GBP at the time of the swap.
Report gains or losses on Self Assessment when net gains exceed the annual exempt amount.
How do same-day and 30-day rules affect quick disposals?
Match disposals first to acquisitions on the same UK tax day.
Then match to acquisitions in the following 30 calendar days.
After that match remaining amounts to the Section 104 pool.
These rules can change which cost basis applies and can materially change the taxable gain.
What records does HMRC expect for multi-swaps?
HMRC expects timestamped CSV or JSON exports, trade fills, order IDs and transaction hashes.
They also expect a reproducible method for GBP rates.
The minimal CSV headers earlier in this guide meet those expectations if populated fully.
When does crypto become trading income?
Crypto activity becomes trading income where the facts show trading characteristics, for example regularity, a business-like organisation and an intention to profit from short-term price movements.
In those cases Income Tax rules apply to receipts and profits instead of CGT, and reporting and allowances differ accordingly.