|12 min read

CEX vs DeFi — How Your Crypto Is Taxed Differently in the UK

HMRC doesn't care where you traded — all disposals of the same token share one Section 104 pool. But exchange trades and DeFi activity create very different classification challenges. Here's why you need one tool for both.

Most UK crypto investors use both centralised exchanges and DeFi. You buy ETH on Coinbase, bridge it to Arbitrum, swap it on Uniswap, stake it on Lido, and eventually sell some back to GBP on Kraken. That is a completely normal workflow — and it creates a tax calculation problem that no single platform can solve on its own.

HMRC does not care where you traded. All disposals of the same token draw from one Section 104 pool. But the type of activity — exchange trade, swap, LP removal, staking reward — determines whether the event is capital gains, income, or non-taxable. The rules are the same; the complexity is not.

This guide compares how exchange trades and DeFi activity are taxed, explains why using separate tools for each produces wrong numbers, and shows what a correct combined calculation looks like.

The tax basics — same rules, different complexity

UK crypto tax follows two tracks: Capital Gains Tax (CGT) on disposals, and Income Tax on rewards and earnings. Both apply regardless of whether the activity happened on an exchange or on-chain.

ActivityExchange (CEX)DeFiTax treatment
Buy crypto with GBPBuy orderOn-ramp (rare)Acquisition — no tax
Sell crypto to GBPSell orderOff-ramp (rare)CGT at 18% / 24%
Token-to-token swapConvertUniswap, Curve, 1inchCGT (disposal of outgoing token)
Staking rewardsCoinbase Earn, Kraken stakingLido rebases, CRV gaugeIncome at 20% / 40% / 45%
LP position addN/AUniswap, Balancer, CurveCost basis change (tokens exit pool)
LP position removeN/AUniswap, Balancer, CurveCGT (disposal of LP token)
Bridge transferN/AHop, Arbitrum, OptimismNon-taxable (cost basis carries over)
Deposit / withdrawalSend / ReceiveAave supply, WETH wrapNon-taxable transfer

Exchange activity is straightforward: buy, sell, convert, earn. DeFi introduces LP positions, protocol-specific staking, bridging, wrapping, and interactions that most tax tools misclassify. The underlying tax rules are identical — the difficulty is in correctly identifying what happened.

Exchange trades — straightforward but not automatic

Exchange trades map cleanly to HMRC tax events. A buy is an acquisition. A sell is a disposal. A convert is both. Staking rewards are income. Deposits and withdrawals between your own wallets are non-taxable transfers.

The catch is that your exchange's tax report uses the wrong cost basis method. Coinbase uses FIFO, Binance offers multiple methods (none of which are Section 104), and Kraken shows raw trade data without any gain calculation at all.

FIFO is not Section 104

Your exchange's tax report uses FIFO (first in, first out). HMRC requires Section 104 pooling (weighted average cost). They produce different gains. Using the wrong method on your Self Assessment is incorrect and could result in penalties.

DeFi — where most tools get it wrong

DeFi transactions are harder to classify because the raw on-chain data does not tell you the intent. A Uniswap V3 LP position involves multiple token transfers, NFT mints, and internal calls — but the tax treatment depends on whether tokens were deposited (cost basis change), removed (disposal), or earned as fees (income).

DeFi interactionCorrect classificationWhat generic tools often show
Uniswap LP addCost basis changeDisposal (creates phantom gain)
Bridge (Arbitrum, Optimism)Non-taxable transferDisposal (creates phantom gain)
WETH wrap/unwrapNon-taxable transferSwap (taxable disposal)
Aave depositNon-taxable transferDisposal or unknown
Staking rewards (Lido, CRV)Income at FMVIgnored or classified as transfer
LP fee collectionIncome at FMVCapital gain or ignored

Each misclassification has a knock-on effect. A bridge incorrectly classified as a disposal creates a phantom gain and corrupts the Section 104 pool for every subsequent disposal of that token. For more on bridge classification, see is bridging crypto taxable in the UK.

The S104 pool doesn't know where you bought

This is the core reason you cannot use separate tools for exchange and DeFi activity. The Section 104 pool for ETH includes every ETH acquisition you have ever made, regardless of source:

Combined S104 pool example

1. Buy 1 ETH on Coinbase at £1,800  —  pool: 1 ETH, cost £1,800

2. Swap 2,000 USDC → 1 ETH on Uniswap (ETH at £2,000)  —  pool: 2 ETH, cost £3,800

3. Receive 0.1 ETH staking on Lido (ETH at £2,200)  —  pool: 2.1 ETH, cost £4,020

Average cost per ETH: £4,020 ÷ 2.1 = £1,914.29

Sell 1 ETH on Kraken for £2,500. Gain = £2,500 − £1,914.29 = £585.71

Coinbase only: gain = £2,500 − £1,800 = £700 (wrong)

The £114 difference here is from just three transactions. A user with hundreds of DeFi interactions feeding the same S104 pool will see much larger errors in any single-platform report.

CARF changes everything for exchange users

Under the Crypto-Asset Reporting Framework (CARF), from January 2026 UK exchanges report your transaction data directly to HMRC. Coinbase, Kraken, and other FCA-registered platforms share buy, sell, and income records automatically.

Here is the implication: HMRC will have your exchange data. If your Self Assessment only reports exchange gains but you also have DeFi activity on the same assets, there is a mismatch. HMRC knows you hold ETH (from exchange data). If your Section 104 pool does not include DeFi acquisitions and disposals, the gain calculations on your return will not align with the asset holdings they can see.

The CARF + DeFi gap

Exchanges report to HMRC. DeFi does not. If you only report exchange gains, HMRC may query why your declared disposals do not match the asset acquisitions they can see. A complete return requires both exchange and DeFi data reconciled into one calculation.

Income tax — staking, rewards, and yield

Both exchange and DeFi income are taxed identically: as miscellaneous income at your marginal rate (20%, 40%, or 45%). The difference is detection.

Exchange income is explicit — Coinbase labels it "Coinbase Earn" or "Staking Income". DeFi income is harder. Lido stETH rebases happen at the protocol level without generating a transaction in your history. CRV gauge rewards require decoding the Minter contract logs. LP fee collection on Uniswap V3 is embedded within position management calls.

All income events — exchange and DeFi — enter the Section 104 pool as acquisitions at FMV. This increases your cost basis, which reduces future capital gains. For a full breakdown, see DeFi income vs capital gains.

Gas fees — the DeFi-only allowable cost

When you trade on an exchange, the spread and trading fees are baked into the execution price. These are not separately deductible for CGT purposes.

DeFi transactions are different. You pay gas fees in ETH (or the network's native token) for every on-chain interaction. HMRC treats gas fees as an allowable cost, which means they directly reduce your taxable gain on each disposal.

For active DeFi users, cumulative gas fees over a tax year can be significant — hundreds or even thousands of pounds. Failing to include them as allowable costs means overpaying CGT. This is an advantage DeFi users have that exchange-only users do not.

Why you need one tool for both

The fundamental constraint is that HMRC matching rules operate across all platforms. The same-day and B&B rules match disposals against acquisitions regardless of where they happened. Sell ETH on Coinbase and buy ETH on Uniswap on the same day? Same-day rule applies. Sell on Kraken and swap USDC→ETH on Curve within 30 days? B&B rule applies.

No tool that only sees one side can detect cross-platform matching. And since the Section 104 pool is per-asset (not per-platform), every acquisition and disposal must be in the same calculation for the average cost to be correct.

How ChainTax reconciles exchange + DeFi

ChainTax is built for users who trade across both exchanges and DeFi. The workflow:

  1. Import exchange CSVs. Upload from Coinbase, Binance, or Kraken. The format is auto-detected and every transaction is classified for HMRC.
  2. Connect DeFi wallets. Add your wallet addresses across Ethereum, Arbitrum, Optimism, Base, and Polygon. 28 protocol-specific classifiers handle the on-chain activity.
  3. Unified calculation. All sources feed the same Section 104 pools. Same-day and B&B matching operates across exchange and DeFi transactions. Gas fees are included as allowable costs.
  4. HMRC-ready output. SA108 boxes 13.1–13.8 are computed from the combined data. Every disposal shows the matching rule used, the S104 pool state, and the full gain working.

You can try the classification engine for free using the transaction explainer — paste any transaction hash to see how it is classified.

Get your complete crypto tax picture

Import your exchange trades and connect your DeFi wallets. ChainTax reconciles everything into one HMRC-compliant calculation — correct Section 104 pools, cross-platform matching, and SA108 boxes auto-filled. Free for up to 75 transactions.

This article is for informational purposes only and does not constitute tax, legal, or financial advice. Tax rules can change, and individual circumstances vary. Always consult a qualified tax adviser before filing your Self Assessment return. HMRC guidance referenced: CRYPTO22000 (capital gains on disposals), CRYPTO61000 (DeFi income), CRYPTO10100 (definition of cryptoassets), s104 TCGA 1992, s106A TCGA 1992 (B&B rule). CGT rates and annual exempt amounts from GOV.UK (2024/25 and 2025/26 tax years).

Related articles