Skip to main content
All articles
·Updated |12 min read

DeFi Income vs Capital Gains UK: HMRC Tax Guide

How UK rules distinguish taxable DeFi receipts from disposals, why Aave depends on beneficial ownership, and where ChainTax keeps review boundaries.

DeFi income and capital gains are taxed at different rates in the UK, and an incomplete or catch-all transaction history may not distinguish between them. Staking rewards from Lido are income. Swapping ETH for USDC on Uniswap is a capital disposal. An Aave deposit requires a separate beneficial-ownership and receipt-token analysis. Getting the classification wrong can change the rate, form, and Section 104 pool.

Capital gains are taxed at 18% or 24%. Income is taxed at 20%, 40%, or 45%. They go on different tax forms and have different allowances, so you work out your crypto gains independently from income. The difference can double your tax bill, or halve it.

This guide explains exactly when DeFi activity is income, when it's a capital gain, when it's a non-taxable transfer, and why the classification matters more than most people realise.

The fundamental distinction

HMRC applies a simple test: is this a return on an investment (capital), or compensation for an activity (income)?

TypeTax treatmentRate (2024/25–2026/27)Reported on
Capital gainDisposal of an asset at profit18% basic / 24% higherSA108
Capital lossDisposal of an asset at a lossOffsets gains (carry forward)SA108
IncomeTokens received as reward/yield20% / 40% / 45%SA100 ("Other income")

This matters because the two tax types go on different forms, have different allowances, and are calculated independently. You can't offset capital losses against income, and you can't use the £3,000 CGT annual exempt amount against income.

What counts as income in DeFi

DeFi income is tokens you receive without disposing of an existing asset. You didn't swap, sell, or exchange anything. Tokens simply arrived in your wallet as compensation for an activity.

Staking rewards

When you stake ETH through Lido and receive stETH rebases, or deposit into a Curve gauge and claim CRV rewards, those new tokens are income. You are being compensated for securing the network or providing liquidity: the tokens are earned, not traded for.

HMRC's position (CRYPTO21200): staking rewards are miscellaneous income, taxed at your marginal rate, at fair market value on the date of receipt.

Liquidity pool fee income

Uniswap V3 concentrated liquidity positions earn trading fees continuously. When you collect these fees, the received tokens are income, not a capital gain. You haven't disposed of your LP position; you've collected earnings from it.

Yield farming rewards

Harvesting reward tokens from MasterChef contracts, claiming MAGIC from Atlas Mine staking, or collecting protocol incentives: all income. The reward tokens are acquired at FMV on the harvest date.

Income enters your cost basis

When you receive 100 CRV as a gauge reward worth £50, two things happen: (1) you owe income tax on £50, and (2) those 100 CRV enter your Section 104 pool at a cost basis of £50. If you later sell those CRV for £80, your capital gain is only £30, and you are not double-taxed on the original £50.

What counts as a capital gain

A capital gain arises when you dispose of a cryptoasset: sell it, swap it, spend it, or provide it as liquidity. The gain is the difference between disposal proceeds and your cost basis (from the Section 104 pool, after same-day and 30-day B&B matching).

Token swaps

Swapping ETH for USDC on Uniswap is a disposal of ETH. The USDC you receive is an acquisition. If the market value of the ETH at the time of swap exceeds your cost basis, you have a capital gain.

Selling for fiat

The straightforward case: selling crypto on an exchange for GBP. Proceeds minus cost basis equals your gain.

LP removal

When you remove liquidity from a pool and receive tokens back, you are disposing of the LP token. The tokens you receive are the disposal proceeds. The LP token exits your S104 pool, and the gain or loss is calculated against its cost basis.

NFT purchases

Buying an NFT with ETH is a disposal of the ETH. The NFT is the acquisition. If the ETH has appreciated since you acquired it, you have a capital gain, even though you "just bought something."

What is neither: non-taxable transfers

Some DeFi operations are not taxable events at all. These are movements of assets that don't change beneficial ownership or exchange one asset for another:

These are classified as Transfer: cost basis carries over, no gain or loss is recognised.

Receipt-token lending is different. For Aave deposits and withdrawals, current HMRC treatment depends on beneficial ownership and the asset or right received. Do not place them in this non-taxable list without checking those facts.

Why this matters so much

If a report applies either disposal or transfer treatment without the required Aave evidence, it can put the wrong proceeds or cost into the Section 104 pools. The error then affects later disposals, which is why ChainTax leaves missing token legs in Needs review.

The grey areas

Some DeFi transactions don't fit neatly into income or capital gains. HMRC guidance is evolving, and reasonable positions exist on both sides:

Liquid staking (ETH → stETH, rETH)

When you stake ETH with Lido and receive stETH, is this a swap (capital gain) or a staking deposit (transfer)? HMRC hasn't issued definitive guidance on liquid staking tokens specifically.

The conservative position, which ChainTax takes, is that acquiring stETH or rETH is a token swap (disposal of ETH, acquisition of stETH/rETH) because the received token has different economic characteristics. Subsequent stETH rebases are then income.

LP deposits (Uniswap, Curve, Balancer)

Adding liquidity to a pool involves depositing tokens and receiving an LP token. ChainTax classifies this as a cost basis change (shown as “Liquidity”), but under HMRC's strict reading it is a disposal of the deposited tokens: you realise a capital gain or loss against their Section 104 cost basis, and the LP token you receive enters your pool at its market value on the day. The gain is usually small (only the appreciation since you acquired the deposited tokens) but it is a chargeable event, not a deferral.

Airdrops

Airdrops received in return for, or in expectation of, a service can be income at market value on receipt. If Income Tax applies but the tokens had no market value (for example before trading began), the income value may be nil, with the full amount becoming a capital gain when you later sell.

Protocol-by-protocol classification

Here is how ChainTax classifies the most common DeFi protocols, based on HMRC guidance and conservative tax treatment:

Protocol / actionClassificationTax type
Uniswap / 1inch swapDisposalCGT (18% / 24%)
Uniswap V3 fee collectionIncomeIncome tax (20% / 40% / 45%)
Curve gauge CRV rewardsIncomeIncome tax
Lido stETH rebaseIncomeIncome tax
Lido ETH → stETH depositDisposalCGT
Aave deposit / withdrawFact-specificCGT or transfer treatment
Atlas Mine MAGIC rewardsIncomeIncome tax
MasterChef harvestIncomeIncome tax
LP add (Uniswap/Curve)LiquidityCGT (disposal of deposited tokens)
LP removeDisposalCGT
Bridge (Hop, Arbitrum, etc.)TransferNone
OpenSea NFT buy/sellDisposalCGT

Why transaction-level classification matters

A common failure mode is working from token movements, not transaction intent. They see tokens leave and tokens arrive. They don't understand why.

This means:

  • CRV rewards look like "tokens received from a contract", classified as a capital gain instead of income. Wrong tax form, wrong rate.
  • Aave deposits can be reduced to "tokens sent, new tokens received" without examining beneficial ownership, receipt-token rights, or whether both economic legs were decoded.
  • LP fee collection gets merged with LP removal, with income and capital gains lumped together as a single event.
  • Bridge transfers look like "tokens sent to an external address", classified as a disposal with a phantom gain.

ChainTax reads the contract address, method signature, and decoded event logs of supported transactions. It knows that Minter.mint() on Curve is a reward claim, not a token purchase. It knows that Pool.supply() on Aave is a deposit, not an ordinary swap, then applies the disclosed current-period treatment or leaves missing evidence for review. Contract recognition is evidence for the analysis; it does not replace the legal analysis.

The compounding cost of misclassification

One misclassified event doesn't just create one wrong tax figure. It cascades:

  1. Wrong cost basis enters the S104 pool. If an Aave deposit receives the wrong treatment, the underlying and aToken pools can receive the wrong proceeds or acquisition cost.
  2. Every subsequent disposal of that token uses the wrong pool average. Your gains or losses are wrong on every trade from that point forward.
  3. Income reported as capital gains (or vice versa) goes on the wrong tax form. HMRC can challenge returns where income appears on SA108 instead of SA100. The split also changes when you pay: income feeds payments on account; gains never do.
  4. Loss carry-forward is miscalculated. Phantom losses from misclassified transfers inflate your carried-forward losses, which then incorrectly offset real gains in future years.

Real numbers

A DeFi user with 50 Aave deposits, 30 bridge transactions, and 20 staking harvests across a tax year has 100 transactions that need correct classification. If those 100 are all treated as capital gains, the user is potentially over-reporting gains by tens of thousands of pounds, and under-reporting income.

See exactly how your DeFi activity is classified

ChainTax uses protocol-specific logic for supported swaps, income, transfers, and LP events. Unresolved or low-confidence activity stays visible for review. Inspect the breakdown free for up to 200 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: CRYPTO10100, CRYPTO22100, CRYPTO21200. CGT rates shown are for 2024/25 onward (18%/24% from 30 October 2024). DeFi income treatment based on HMRC's general staking guidance, and protocol-specific positions may evolve.

Related articles