Providing liquidity to an AMM like Uniswap or Curve is where taxes get genuinely complicated. Here's the sequence that matters:
1. Deposit: You supply two tokens (e.g., ETH and USDC) to a Uniswap V3 pool. You receive an LP position (in V3, this is an NFT). Whether this deposit is a taxable disposition is debated โ same gray zone as staking deposits. Conservative treatment: taxable exchange.
2. While in the pool: The AMM continuously rebalances your position. If ETH rises, the pool sells some of your ETH for USDC. If ETH falls, it buys ETH with your USDC. This rebalancing may constitute a series of taxable swaps happening continuously inside the contract. This is the event most people miss entirely.
3. Fees earned: Trading fees accrue to your position. In Uniswap V3, fees are claimable separately. Each claim is likely ordinary income.
4. Withdrawal: You remove liquidity and receive a different ratio of tokens than you deposited. The difference between what you put in and what you take out involves both impermanent loss and earned fees.
The IRS has not issued specific guidance on AMM rebalancing. Two approaches exist in practice: (a) treat the entire LP lifecycle as a single taxable event at withdrawal, calculating gain or loss on the full position, or (b) attempt to track each internal swap. Approach (a) is more practical and is what most tax software (Koinly, CoinTracker, TokenTax) attempts. Approach (b) is theoretically more accurate but nearly impossible to execute manually.
Impermanent loss is not directly deductible as a standalone loss. It's baked into your overall gain or loss calculation when you exit the position. If you deposited $10,000 worth of assets and withdrew $9,400 worth (after impermanent loss, net of fees), the $600 difference factors into your capital gain or loss โ but only if you treat the deposit as a taxable event or calculate basis correctly.
โ Common mistake: Reporting only the fee income from an LP position and ignoring the rebalancing entirely. If you deposited 1 ETH + 2,000 USDC and withdrew 0.8 ETH + 2,400 USDC, the composition change has tax implications regardless of whether the total USD value went up or down.