Impermanent loss has a great PR team. The name makes it sound temporary, theoretical, maybe even reversible. In practice, when you exit a Uniswap V3 position that drifted outside your range for six months, the loss is neither impermanent nor small — and the IRS does not care what the marketing copy said.
This guide covers the actual tax mechanics of LP positions: what triggers a taxable event, what doesn’t, how to track basis through pool entry and exit, where most tax software fails you, and how we handle reconciliation for clients carrying multi-year DeFi activity. There’s also an FAQ at the bottom for the questions we get most often.
What Impermanent Loss Actually Is
Skip the diagrams showing two coins and a smiley face. Here’s the math.
You deposit ETH and USDC into a 50/50 pool at a 1:1 value ratio. ETH is $2,000 at entry. The pool holds your assets as a constant-product AMM: x * y = k. When ETH rises to $4,000, arbitrageurs rebalance the pool, selling USDC in and buying ETH out until the pool ratio reflects the new price. You end up holding less ETH and more USDC than you deposited.
Impermanent loss is the gap between what you’d have held by doing nothing (just holding ETH + USDC) versus what you actually hold in the pool after that price divergence. The formula:
“`
IL = 2 * sqrt(price_ratio) / (1 + price_ratio) – 1
“`
At a 2x price move on one asset, that’s roughly -5.7% IL. At 4x, roughly -20%. At 10x, you’re looking at -42% relative to hold. Fees may offset some of this. They frequently don’t offset all of it — especially in concentrated liquidity positions where your range goes inactive.
The word “impermanent” implies it reverses if prices return to entry levels. It does, mathematically. But most positions don’t stay open until prices mean-revert. You exit, you realize, you report.
The Core Tax Question: What Is and Isn’t a Taxable Event
LP Token Receipt is Not (by Itself) a Taxable Event
When you deposit ETH and USDC into a Uniswap V2 pool and receive LP tokens, the IRS has not issued explicit guidance calling that a taxable exchange — and the dominant practitioner position (consistent with the framework in IRS Notice 2014-21 and subsequent virtual currency FAQs) treats it as a non-taxable deposit into a liquidity position, similar to contributing assets to a partnership interest.
You’re not selling ETH. You’re not selling USDC. You’re receiving a receipt token that represents your proportional claim on the pool. Your basis in the LP token equals your basis in the assets you put in.
The caveat: this position is not settled law. It’s a reasonable, defensible interpretation. Your situation may differ. This isn’t tax advice — check with us or your CPA before filing.
The Token-to-Token Swaps Inside the Pool ARE Taxable (For You)
Here’s where it gets inconvenient. As the pool rebalances around your position, the assets underlying your LP token shift. When you exit the pool and receive a different ratio of tokens than you deposited, the IRS views that exit as a disposition of your original assets.
You deposited 1 ETH ($2,000) and 2,000 USDC. You exit and receive 0.7 ETH ($2,800) and 2,800 USDC. The IRS does not see a simple return of capital. It sees:
- A disposition of 1 ETH with proceeds attributable to your exit value
- A receipt of 0.7 ETH + 2,800 USDC with new basis
The math compresses into a gain or loss calculation at exit. If ETH ran up and you’re withdrawing fewer ETH at a higher price, you may have a taxable gain on ETH even while experiencing nominal impermanent loss. This is the part that surprises people.
The inverse is also true and more forgiving: if prices diverged hard and your position bled value, your exit can generate a real capital loss that’s larger than your nominal IL — because you’re marking a basis difference on assets that moved significantly against you.
Tracking Basis Across Pool Entry and Exit
Basis tracking for LP positions requires logging four things at entry:
- The token amounts deposited (e.g., 1 ETH, 2,000 USDC)
- The fair market value of each asset at deposit time (USD)
- The date of deposit (for short vs. long-term holding period)
- The number of LP tokens received (for V2) or the NFT token ID (for V3)
At exit, you need:
- The token amounts received
- The fair market value of each asset at withdrawal time (USD)
- The date of withdrawal
- Any fees earned and claimed (these are ordinary income at time of claim, or at exit if auto-compounded)
The gain or loss is calculated per underlying asset: your proceeds are the FMV of what you received, your cost basis is the FMV of what you put in (adjusted for any previously recognized income from fees).
Concentrated Liquidity: Uniswap V3 NFT Positions
V3 positions are represented as NFTs, not fungible LP tokens. Each position is unique. Each has its own price range, liquidity depth, and fee accrual history.
When a V3 position goes out of range, it stops earning fees and becomes 100% one asset. A position set at $1,800–$2,200 on ETH/USDC that gets blown through when ETH hits $3,000 is now entirely USDC — you’ve effectively been sold out of ETH entirely within the pool mechanics.
Rebasing events — when you add liquidity to an existing V3 position, or when the position auto-compounds via a wrapper like Gamma or Arrakis — create additional basis events. Each add is a new deposit with a new cost basis tranche. Each removal is a partial exit. If you’re using a managed vault on top of V3, your transaction history is going to look like someone ran a keyboard across a spreadsheet.
If you’re just tracking this in TurboTax’s crypto import and hoping it works out, it won’t.
The Reporting Gap in Most Tax Software
We’ve reviewed a lot of imported reports from common tax tools. The LP handling is, charitably, inconsistent.
Several popular tools classify LP token receipt as a taxable swap — treating the deposit as a sale of ETH for LP tokens. This is wrong on its face (LP tokens aren’t a separate asset class in the exchange sense) and creates phantom gains at entry that overstate your tax liability.
Others treat pool exits as simple returns of the LP token with zero tracking of the underlying asset composition changes. That misses the actual gain/loss on underlying assets entirely.
Concentrated liquidity positions — V3, Curve, Balancer weighted pools — are handled inconsistently at best, missing entirely at worst. Fee income is often not separated from return of principal. In some tools, the collected fees just disappear into an untracked bucket.
For a client with 12 months of active LP positions across three protocols, the delta between “what the software says” and “what the correct number is” can be substantial. We’ve seen six-figure discrepancies. Not because the client did anything wrong — because the tools don’t have the logic to handle it correctly.
How BCTP Handles LP Reconciliation
For multi-protocol LP clients, our process runs through our multi-chain transaction processor to pull raw on-chain data — every deposit, every withdrawal, every fee collection event. We don’t rely on the categorization layer most consumer tools use. We go to the block.
For each LP position we:
- Reconstruct the entry basis from the deposit transactions
- Identify every partial exit, rebase, and fee claim event in the position’s lifecycle
- Calculate the token-level gain/loss at exit using FMV sourced from on-chain price oracles, cross-referenced against exchange data for that timestamp
- Separate fee income (ordinary income) from return of principal and capital gain/loss
- Flag V3 NFT positions for manual range review if the position crossed its bounds mid-period
The output lands on Form 8949 with the correct short or long-term classification and a reconciliation schedule that shows exactly how each number was derived. This is the file that holds up under audit — not the CSV import from a consumer tool.
Case Study: Multi-Year DeFi Catch-Up (CS-4)
A client came to us in early 2025 needing three years of DeFi activity reconciled — 2022, 2023, 2024. They’d been active across Uniswap V2 and V3, Curve, and a couple of smaller AMMs. They had partially filed using a consumer tax tool for one of those years and were unsure whether it was correct.
The specific problem: their 2022 return showed approximately $84,000 in capital gains from crypto activity. After our reconciliation, the actual number was closer to a $31,000 net loss — a $115,000 swing. The discrepancy came almost entirely from two sources: (1) LP token receipts being classified as taxable swaps at entry, creating phantom gain, and (2) the consumer tool completely missing the capital losses realized at exit from three V2 positions that had experienced severe IL during the 2022 market downturn.
They amended the 2022 return. They had a clean baseline for 2023 and 2024 that properly carried forward the corrected loss figures. The three-year project paid for itself many times over.
Case details anonymized and used with client consent.
FAQ: Impermanent Loss and Crypto Tax
Is impermanent loss tax deductible?
Not directly and not as a standalone item. IL only becomes a realized loss when you exit the pool and the basis of the assets you deposited exceeds the FMV of the assets you received. At that point, yes — it’s a capital loss on the disposition of those assets. You can’t deduct “impermanent loss” as a concept; you deduct the actual realized loss on the underlying tokens at exit.
How do I report LP earnings (trading fees, liquidity mining rewards)?
Fees earned and collected from LP positions are generally treated as ordinary income at the time they’re received or claimed — similar to interest income. If fees auto-compound back into the pool without a separate claim transaction, the timing gets murkier. Liquidity mining rewards (extra tokens on top of fees) are also ordinary income at FMV when received. Both create new cost basis for the tokens you’re receiving.
Do I need to track every internal swap inside the AMM pool?
The internal pool mechanics — the constant-product rebalancing between other traders’ swaps — are not your transactions. You don’t have a taxable event every time the pool ratio shifts. Your taxable events are: (1) entry, if structured as a swap into LP tokens (debated), (2) exit, when you receive underlying tokens back, (3) fee claims, and (4) any reward token distributions. You don’t need to track intra-pool arbitrage that you didn’t initiate.
My tax software shows a huge gain from LP token receipt. Is that right?
Probably not. Several tools misclassify the LP deposit as a taxable swap — treating you as if you sold ETH to buy an LP token. This is not the correct treatment under the dominant practitioner interpretation. You should flag this for manual review or work with a preparer who can correct it.
Can I use specific identification (SpecID) for LP positions?
For V2 LP tokens, which are fungible, SpecID becomes complicated — you’d need to track each deposit tranche separately and have a clear record showing which tranche you’re withdrawing. For V3 NFT positions, each position is by definition unique, so the basis is tied to that specific position ID. SpecID is more naturally supported there.
What about Uniswap V3 positions that expired out of range without a manual withdrawal?
The position still exists until you close it. If you never withdrew, there’s no exit event and no realized gain or loss — you still hold the LP NFT. The loss is unrealized until you exit. If the position sat entirely in one asset for months because it crossed its range, that’s still an open position from a tax standpoint.
What if I provided liquidity on a chain where I lost access to the wallet?
You may have a claim for a loss deduction under certain conditions, but the rules here are narrow and specific. The position needs to be genuinely abandoned with zero recovery value. This requires documentation and careful treatment. Not something to wing on a self-filed return.
Impermanent loss is a real economic cost of being an LP. The tax treatment isn’t clean or obvious, and the tooling hasn’t caught up to the complexity. If you’ve been LP’ing across multiple protocols and trusting a CSV import to handle it, it’s worth a second look before you file.
You can estimate the scale of your realized IL with our impermanent loss calculator. If the number is material, see how we work or schedule a call and we’ll run through what a proper reconciliation looks like for your situation.
This post is general information, not tax advice. LP tax treatment involves unsettled areas of law. Your situation depends on your specific transaction history. Consult a qualified tax professional before filing.
Need help with your crypto taxes? Mike Ring and the BCTP team handle the messy stuff — multi-chain DeFi, 1099-DAs that don’t add up, prior-year amendments. Free consult at cryptotaxprep.io or call 410-320-7348.
This isn’t tax advice. Talk to a professional about your specific situation.