Are crypto‑to‑crypto trades taxable in the UK? Does swapping one coin for another create a taxable disposal? For UK taxpayers, the answer is usually yes — but the practical steps to calculate and report gains are where most people fall short. This guide explains the tax position, the mechanics HMRC expects, record‑keeping essentials, worked examples and the tricky DeFi cases that often cause errors.
Key takeaways: what to know in one minute
- Crypto‑to‑crypto trades are generally taxable disposals in the UK. A swap or trade usually triggers a capital gains event for individuals.
- HMRC treats permanent changes in ownership as disposals; conversions and exchanges count unless specific relief applies.
- Accurate records and time‑ordered pooling are essential. Incorrect pools or missing timestamps create incorrect gains.
- Use a consistent exchange rate per transaction and account for fees paid in crypto. Fees reduce proceeds or increase costs depending on how they are paid.
- DeFi swaps, staking rewards and airdrops have special treatments that require extra documentation and valuation evidence.
HMRC guidance makes the core position clear: trading, swapping or exchanging one cryptoasset for another normally counts as a disposal for Capital Gains Tax (CGT) purposes for individuals. The key legal principle is that a disposal occurs when ownership of a chargeable asset ends; exchanging BTC for ETH transfers beneficial ownership and therefore typically creates a gain or loss.
Exceptions and borderline cases:
- Converting between tokens that are functionally identical within a single protocol (rare) may not create a disposal if legal ownership does not effectively change. This is the exception, not the rule.
- Transactions within a single custodial account where the provider records only internal movements can still be disposals if beneficial ownership changes.
Official guidance:
These documents confirm that crypto‑to‑crypto trades are taxable disposals for CGT unless an alternative treatment applies (for example, where trading activity amounts to trading income rather than capital gains — a separate test).

How hmrc treats crypto disposals and capital gains tax: pooling, rates and allowances
HMRC applies standard CGT rules to cryptoassets with two important adaptations: 1) identification and pooling rules and 2) time‑ordering for same‑day, 30‑day and pooled matching.
1) Identification and pooling
- Same asset identification: For CGT matching, HMRC treats assets of the same description as poolable. Units acquired form a pooled asset where an average acquisition cost is used to calculate gains on disposals.
- Section 104 holding (pool): All acquisitions of a particular cryptoasset form a Section 104 holding. When a disposal occurs, the acquisition cost used is the average cost of the units in the pool at that time.
2) Time‑based matching rules (important for quick trades)
- Same‑day rule: Disposals are first matched with acquisitions made on the same day (disposal date).
- 30‑day rule: If no same‑day acquisitions match, acquisitions in the following 30 days are matched next (to prevent artificial loss harvesting by repurchasing).
- Section 104 pooling: Only after same‑day and 30‑day matches are applied will disposals match the pooled average cost.
Rates and allowances
- Annual exempt amount: The CGT allowance for individuals for 2025/26 should be confirmed each tax year with HMRC; gains above this allowance are taxable.
- Rates: Gains are charged at 10% or 20% depending on taxable income and whether gains are from residential property (additional surcharges apply for property). Crypto gains for basic or higher rate bands follow standard CGT bands.
When crypto activity is trading (business) rather than investment, income tax and NICs may apply. Determination uses the usual trade tests (frequency, intention, organisation).
Record‑keeping essentials for crypto‑to‑crypto transactions: minimum dataset and practical templates
Accurate records are the core defence in any HMRC enquiry. At minimum, records should include:
- Date and time (UTC) of transaction. Exact timestamp is crucial for same‑day and 30‑day matching.
- Type of transaction (swap, sale, purchase, fee, airdrop, stake reward).
- Assets involved (symbol and contract address if applicable).
- Quantity traded and unit cost base in GBP. If the counterparty/token price is quoted in crypto, record the GBP equivalent and the exchange rate source.
- Transaction ID / TxHash (for on‑chain trades).
- Exchange or wallet name, and any withdrawal/deposit IDs.
- Fees paid (and currency in which fees were paid).
Practical tip: export CSVs from exchanges and wallets, then normalise fields (timestamp, asset, amount, counter asset, fee, net GBP value). For DeFi, pull tx history from block explorers and label each tx with human‑readable notes.
Downloadable template (example columns):
| Date (UTC) |
Time (UTC) |
TxType |
Asset sold |
Amount sold |
Asset bought |
Amount bought |
Fee (asset) |
Fee (GBP) |
GBP proceeds |
TxHash/ID |
Platform |
Notes |
| 2025-11-02 |
13:45 |
Swap |
BTC |
0.05 |
ETH |
1.2 |
0.0001 BTC |
£2.50 |
£1,500.00 |
0xabc... |
Uniswap |
On‑chain swap |
Ensure each row ties to a single disposal event. When a swap creates both a disposal (asset sold) and an acquisition (asset bought), record both sides to feed pooling and matching steps.
Calculating gains: exchange rates, pooling and allowances — step‑by‑step with worked example
Step 1 — identify the disposal: a swap of BTC for ETH is a disposal of BTC. The proceeds are the GBP value of BTC at disposal.
Step 2 — determine proceeds in GBP: use a reliable exchange rate source and record which source was used (e.g. CoinMarketCap, exchange spot price at timestamp, or an aggregated VWAP). HMRC accepts reasonable contemporaneous evidence.
Step 3 — allocate costs: match the disposal against same‑day and 30‑day acquisitions first, then the pooled average cost.
Worked example (simplified):
- Opening pool for BTC: 0.5 BTC bought across different dates. Average cost = £10,000 (for 0.5 BTC), so cost per BTC = £20,000.
- Disposal: 0.05 BTC swapped for ETH on 2025‑11‑02. Spot price of BTC at disposal = £30,000 per BTC.
- Proceeds = 0.05 × £30,000 = £1,500.
- Cost = 0.05 × £20,000 = £1,000.
- Gain = £500.
Account for fees:
- If a fee was paid in BTC at the swap, either reduce proceeds by the GBP value of the fee or increase cost of the acquired asset if HMRC treatment indicates. The consistent approach is to treat fees as a deduction from proceeds when paid by the seller.
Annual allowance and reporting:
- Add the gain to other gains in the tax year. If total gains exceed the annual exempt amount, report on the Self‑Assessment and pay CGT by the deadline.
Common reporting pitfalls when declaring crypto trades: checklist to avoid HMRC enquiries
- Missing timestamps or using local time rather than UTC leading to incorrect matching.
- Failing to treat swaps as disposals and only reporting fiat sales.
- Ignoring fees paid in crypto or not converting them to GBP correctly.
- Double counting acquisitions when bridging between chains (a cross‑chain transfer is not a disposal; a swap is).
- Using inconsistent exchange rate sources across the tax year.
Checklist to avoid mistakes:
- Keep a single master CSV of every transaction with UTC timestamps.
- Use consistent GBP pricing source and record it.
- Reconcile exchange CSVs to on‑chain TxHashes where possible.
- Document rationale for valuation choices and save screenshots or API queries.
Complex cases: DeFi swaps, staking rewards and airdrops — what changes and what to watch for
DeFi introduces patterns that complicate CGT calculations. The three common issues are:
1) Automated market maker (AMM) swaps and impermanent loss
- Each on‑chain swap is usually a disposal and an acquisition. Gas and protocol fees paid in ETH or gas token must be valued.
- Liquidity provision: providing and removing liquidity are separate events. Adding liquidity is an acquisition of LP tokens; removing liquidity can trigger disposal of LP tokens and receipt of underlying tokens — both need valuation.
2) Staking rewards and protocol emissions
- Staking rewards generally count as miscellaneous income at the time they are received, valued at their GBP fair market value. Later disposal of that token is a capital disposal with a cost base equal to the GBP value when received.
- Where staking rewards are reinvested automatically, treat each receipt as income and record GBP value at the timestamp.
3) Airdrops and forks
- Airdrops: taxable on receipt as miscellaneous income if there is an identifiable value and the recipient has rights. If unclear, obtain contemporaneous valuation evidence.
- Hard forks: HMRC treats proceeds depending on whether the recipient receives new assets with value; treat as income where appropriate and then CGT on later disposal.
Documentation for complex DeFi cases:
- TxHashes for all protocol interactions.
- Screenshots or API outputs showing amounts and timestamps.
- Evidence of how valuations were derived (price feed, timestamped exchange rate).
How to handle chains of swaps: practical approach for multi‑leg transactions
Chains of quick swaps (A→B→C→D) are common. The correct approach is to treat each swap as a separate disposal/acquisition and process same‑day and 30‑day matching in sequence. Practically:
- Export all transactions in time order with UTC timestamps.
- For each disposal event, determine matched acquisition(s) using same‑day, 30‑day then pool rules.
- Compute proceeds (GBP) and cost (GBP) per disposal.
- Aggregate gains per tax year.
Avoid collapsing the chain into a single notional disposition — HMRC expects time‑ordered matching.
Record‑keeping flow for crypto‑to‑crypto trades
Record-keeping flow for crypto-to-crypto trades
🕒 Step 1: Record timestamp (UTC), TxHash and platform
💱 Step 2: Capture assets, amounts and fees (include currency)
📈 Step 3: Fetch GBP value at timestamp and note source
🧾 Step 4: Match disposal to same-day / 30-day / pool
✅ Step 5: Calculate gain/loss and store evidence
Advantages, risks and common errors: when to take extra care
✅ Benefits / when this approach is appropriate
- Clear time‑ordered records reduce HMRC enquiry risk.
- Using pooling simplifies long‑term holdings with many small buys.
- Valuing fees and rewards correctly avoids understated gains.
⚠️ Errors to avoid / key risks
- Applying pooling incorrectly for tokens with frequent swaps.
- Omitting GBP valuations at receipt for staking or airdrops.
- Relying on exchange summaries without cross‑checking on‑chain evidence.
Questions and answers
Frequently asked questions
Are crypto‑to‑crypto swaps treated the same as fiat sales?
Yes. For CGT the disposal mechanics are the same: a swap is treated as a disposal of the asset given up and an acquisition of the asset received; both must be recorded in GBP.
How should same‑day trades be matched for CGT?
HMRC requires same‑day matching first, then 30‑day matching, then Section 104 pooling. Timestamps in UTC determine same‑day status.
Which exchange rate should be used for valuation?
Any reasonable contemporaneous GBP rate is acceptable if used consistently; record the source (exchange, aggregator or VWAP) for each valuation.
Do fees paid in crypto reduce gains?
Fees paid by the seller may be deducted from proceeds (reducing gain). Fees paid in the purchased asset often increase the acquisition cost of that asset. Document the approach.
How are staking rewards taxed?
Staking rewards are typically taxed as miscellaneous income at receipt (GBP value). Subsequent disposal of those tokens is a capital event with cost base equal to the value on receipt.
Are DeFi LP tokens taxed differently?
LP tokens are acquired when providing liquidity. Disposal of LP tokens and receipt of underlying tokens on withdrawal are taxable events; valuations at timestamps are required.
When does HMRC consider crypto activity trading income instead of CGT?
If the activity meets trade tests (frequency, organisation, commerciality), profits may be taxed as income. Each case requires a facts‑based analysis.
Your next step:
- Export transaction history from all exchanges and wallets and convert timestamps to UTC.
- Build a master CSV with the columns in the template above and compute GBP values for each row.
- Reconcile totals, calculate gains per disposal and file any necessary Self‑Assessment entries.