Following up on Fred’s LA Tech Week discussion, I want to dive DEEP into DeFi yield farming accounting because this is where traditional accounting completely breaks down.
Why I’m Writing This
I have 3 clients who got into yield farming in 2024-2025. One of them asked me: “Alice, can you help with my taxes?”
I looked at his transaction history:
- 1,247 transactions across 4 DeFi protocols
- Liquidity pools: Uniswap V3, Curve, Balancer
- Yield farming: Compound, Aave
- Multiple token swaps every single day
- Impermanent loss situations
- Auto-compounding rewards
My initial quote: $3,500
My actual time: 62 hours
My actual cost at my billing rate: $12,400
I lost $8,900 on this client. Never again.
What is Yield Farming? (For Those Who Don’t Know)
Traditional finance equivalent:
You deposit money in a savings account, earn 0.5% interest. Simple.
DeFi yield farming:
- You deposit Token A + Token B into liquidity pool
- Receive LP (liquidity provider) token representing your share
- Stake LP token in yield farm
- Earn Token C as rewards (often daily/hourly)
- Rewards auto-compound or require manual harvesting
- When you exit: Withdraw LP token, redeem for Token A + Token B (different amounts than deposited)
Tax events in this process:
- Depositing tokens → potential taxable event (some say no, some say yes)
- Receiving LP token → basis allocation issue
- Earning rewards → ordinary income at FMV upon receipt
- Compounding rewards → new income + new capital asset
- Impermanent loss → not deductible until you exit
- Exiting pool → capital gain/loss calculation on LP token AND on underlying tokens
The “Most Complicated Accounting on Earth” Quote
At LA Tech Week, a Deloitte crypto partner said: “DeFi accounting is some of the most complicated accounting on earth.”
Here’s why:
1. No Standard Reporting
Uniswap doesn’t send you a 1099. Curve doesn’t mail you a tax statement. You get:
- Transaction hashes on blockchain
- Token addresses
- Timestamps
- Gas fees in ETH
You must reconstruct everything from blockchain data.
2. Continuous Rebalancing
In Uniswap V3, your position constantly rebalances based on price movements. Every block could technically be a taxable event (though most CPAs aggregate daily).
3. Multiple Token Complexity
Example from my client:
- Deposited ETH + USDC into Curve pool
- Received LP token (Curve-ETH-USDC)
- Staked LP token in Convex
- Earned CRV + CVX rewards
- Rewards auto-swapped for more ETH + USDC
- Re-deposited into pool
- Received more LP tokens
How many tax events? Depends on how you classify each step. Could be 6-10 per auto-compound cycle.
The Impermanent Loss Problem
This is philosophically controversial:
Scenario:
- Deposit $10,000 ETH + $10,000 USDC (total $20,000)
- ETH price increases significantly
- When withdraw: $8,000 ETH + $12,000 USDC (total $20,000)
- Lost $2,000 in ETH appreciation vs just holding
Tax question: Is this $2,000 “impermanent loss” deductible?
IRS position (implied): No, because you didn’t have a loss. You got back $20,000.
Economic reality: You LOST the opportunity to gain $2,000.
My position: Not deductible until you exit the position and can calculate actual basis vs. proceeds.
Real Example: Uniswap V3 LP Position
Let me walk through an actual client transaction:
January 1, 2025:
- Client deposits 1 ETH ($3,500) + 3,500 USDC
- Receives Uniswap V3 NFT position (representing concentrated liquidity)
- Cost basis: $7,000 total
Throughout 2025:
- Earns trading fees in ETH and USDC
- Fees automatically accumulate in position (not claimed)
- Position value fluctuates with ETH price
December 31, 2025:
- Position now worth: 0.8 ETH ($4,000) + 4,200 USDC = $8,200
- Unclaimed fees: 0.05 ETH ($250) + 100 USDC
Tax questions I had to answer:
- Are unclaimed fees taxable income in 2025? (I said yes, conservatively)
- What’s the basis in the ETH vs. USDC received?
- How do we track impermanent loss vs. capital gain/loss?
- Is the NFT position itself a capital asset?
Time spent: 8 hours just on this ONE position.
Stablecoin Yield Farming: Simpler, But Still Complex
Stablecoin-only pools are supposedly “simple”:
Example:
- Deposit USDC into Aave
- Earn aUSDC (interest-bearing token)
- aUSDC value increases over time
Tax treatment:
- Interest accrues daily → ordinary income
- Value at time of accrual = ???
- Most people report when they withdraw, not daily (IRS may disagree)
My client with $100K in aUSDC:
- Earned $4,200 in interest over the year
- Received no 1099
- Had to calculate daily accrual from blockchain data
- Total time: 12 hours to reconstruct
Questions for the Community
-
For CPAs: How are you handling LP token basis allocation? Splitting 50/50 between the paired tokens?
-
For tax specialists: Unclaimed fees in Uniswap V3 - income when earned or when claimed?
-
For Beancount users: How do you track LP tokens? As a separate commodity? How do you handle the underlying tokens?
-
For everyone: Am I crazy, or is this actually impossible to do accurately without spending $10K+ on specialized software?
I’m seriously considering referring all DeFi clients to specialists. The liability exposure is too high.
Alice Thompson, CPA
Thompson & Associates