Yield farming — providing liquidity to DeFi protocols for rewards — creates multiple taxable events that require careful tracking.
The Core Tax Events
| Action | Tax Event |
|---|---|
| Deposit tokens into a liquidity pool | Not a disposal (if same tokens back) |
| Receive LP tokens | Not a disposal |
| Earn trading fees | Miscellaneous income at receipt |
| Receive governance tokens | Miscellaneous income at receipt |
| Withdraw different tokens than deposited | Disposal |
| Withdraw same tokens | Not a disposal |
Providing Liquidity
| Scenario | Tax |
|---|---|
| Deposit ETH + USDC into Uniswap pool | Not a disposal |
| Receive UNI-V2 LP tokens | Not a disposal |
| Pool earns trading fees | Income (value at receipt) |
| Withdraw ETH + USDC (proportions changed) | Disposal of LP tokens |
The deposit itself is not a disposal. But the balance of tokens changes over time (impermanent loss), which is realised on withdrawal.
Fee Income
| Fee Type | Tax Treatment |
|---|---|
| Trading fees from pool | Miscellaneous income |
| Protocol rewards (in native token) | Miscellaneous income |
| COMP, SUSHI, CRV rewards | Miscellaneous income |
| Staking LP tokens for extra rewards | Miscellaneous income |
All rewards are taxed at market value when received.
Governance Token Airdrops
| Scenario | Tax Treatment |
|---|---|
| UNI airdrop to historical users | No action → CGT on sale |
| Liquidity mining rewards (ongoing) | Miscellaneous income |
| Retroactive airdrop for past activity | No action → CGT on sale |
The LP Token Problem
When you deposit into a pool, you receive LP tokens (e.g., UNI-V2). These represent your share of the pool.
| Event | Tax Treatment |
|---|---|
| Receive LP tokens | Not a disposal |
| Transfer LP tokens to another wallet | Disposal of LP tokens |
| Redeem LP tokens for underlying assets | Disposal of LP tokens |
| Stake LP tokens in a rewards contract | Not a disposal |
Tracking Cost Basis
| Asset | Cost Basis |
|---|---|
| LP tokens | Value of deposited assets |
| Yield farming rewards | Market value when received |
| Governance tokens | Market value when received |
Record Keeping for Yield Farming
| Record | Why |
|---|---|
| Date of deposit | Start of position |
| Deposited tokens and amounts | Cost basis |
| LP token amount received | Position tracking |
| Each reward received (date, token, value) | Income tracking |
| Date of withdrawal | Disposal event |
| Withdrawn tokens and amounts | Gain/loss calculation |
| Transaction hashes | Proof for HMRC |
Common Mistakes
| Mistake | Consequence |
|---|---|
| Not tracking LP token cost basis | Wrong gain calculation on withdrawal |
| Ignoring small reward claims | Each is a taxable event |
| Forgetting impermanent loss | Realised on withdrawal |
| Not reporting governance token airdrops | Missed income |
Bottom Line
Yield farming generates taxable income from fees and rewards. Depositing into a pool is not a disposal; withdrawing different tokens is. Track every reward at market value when received. LP tokens have a cost basis that must be tracked. Keep detailed records — yield farming is one of the most complex areas of crypto tax. Consider using DeFi-specific tax software.
What yield farmers need to know about UK tax
Yield farming is one of the most tax-complex activities in crypto. Here are the points that matter most:
- Deposits are not disposals — putting tokens into a liquidity pool does not trigger CGT, as long as you receive the same tokens back.
- Every reward is income — trading fees, governance tokens, and staking incentives are all taxed as miscellaneous income at their pound market value when received.
- LP tokens have a cost basis — track the value of your deposited assets, because this becomes the baseline for calculating gains or losses when you withdraw.
- Withdrawing different tokens is a disposal — if the tokens you receive differ from what you deposited, CGT applies to any gain above your cost basis.
- Record-keeping is essential — HMRC expects detailed records of every deposit, reward, and withdrawal. DeFi-specific tax software is typically necessary to assemble this accurately.
Building a tax-efficient farming strategy
Once you understand the tax events, the next question is how to farm in a way that minimises unnecessary complexity. The simplest approach is to stick with a small number of pools, use the same token pair across pools where possible, and avoid frequently rotating between protocols. Each new pool creates a fresh set of cost-basis calculations and disposal events, so the fewer moving parts, the cleaner your tax return.
Claiming rewards less frequently can also help — if your platform allows it, batching reward claims into quarterly or annual events reduces the number of individual income entries on your Self Assessment. The trade-off is that you lose real-time visibility on your holdings, so this only makes sense if you are comfortable with the protocol and its smart contracts.
Finally, consider the tax year boundary. If you are sitting on unrealised gains within a liquidity pool, withdrawing before 5 April and re-depositing after 6 April crystallises the gain in the current tax year, using your CGT annual exempt amount. This is only worthwhile if you have remaining allowance and the gain is within the £3,000 threshold — otherwise, leaving the position open and deferring the disposal may be the better move.
Common errors in yield farming tax
| Error | Why it matters |
|---|---|
| Treating deposits as disposals | Over-reports gains; HMRC does not require CGT on same-token deposits |
| Ignoring small reward claims | Each claim is a separate income event, even if the value is a few pence |
| Forgetting impermanent loss on withdrawal | The difference between deposited and withdrawn value is a disposal gain or loss |
| Not tracking LP token cost basis | Without a cost basis, you cannot calculate your gain accurately on withdrawal |
| Assuming pool staking is capital income | HMRC classifies staking rewards as miscellaneous income, not capital gains |