Uniswap V3 LP Position Tax Treatment: Complete CPA Reference
TL;DR for practitioners: Uniswap V3 LP positions involve up to six distinct taxable events across the position lifecycle. Minting (deposit) is a grey area: the house default treats it as a §1001 disposal in exchange for the LP NFT, while many practitioners treat it as non-taxable pool-position continuity -- choose one method, apply it consistently, document it. Fee collection is ordinary income at fair market value when collected. Impermanent loss is not realized until exit. The position NFT is a transferable asset with its own tax implications. Burning (withdrawal) triggers capital gain or loss recognition. Tick-range changes constitute a disposal and re-entry -- two taxable events. This guide walks through each event with IRS citations, on-chain data mapping, and Form 8949 line entries.
LP grey area, stated once for this whole guide: adding or removing pool liquidity is contested under IRC §1001. House default: a taxable disposal and reacquisition at entry and exit. Alternative position: pool-position continuity (non-taxable entry/exit, economics recognized at final exit). Fees are ordinary income at collection (Notice 2014-21 by analogy; timing is a judgment call). CryptoTaxEdge flags this as grey_area and shows both positions rather than silently asserting one. For the protocol-agnostic version of this question, see how liquidity pool deposits are taxed in general.
UNISWAP V3 LP POSITION LIFECYCLE
═════════════════════════════════
1. ENTRY (Mint) 2. ACTIVE POSITION
┌─────────────────┐ ┌─────────────────────────┐
│ Deposit ETH + │ │ Fees accrue from trades │
│ USDC into pool │ │ within your tick range │
│ │ │ │
│ Receive: LP NFT │ │ Collect fees anytime │
│ (ERC-721) │ │ (taxable income at FMV) │
│ │ │ │
│ Tax: Non-taxable│ │ Tax: INCOME per │
│ (Add to Pool) │ │ IRS Notice 2014-21 │
└────────┬────────┘ └───────────┬─────────────┘
│ │
└──────────────┬──────────────────────┘
↓
3. EXIT (Burn) 4. POSITION NFT TRANSFER
┌─────────────────┐ ┌─────────────────────┐
│ Burn LP NFT │ │ Transfer/sell the │
│ Receive: tokens │ │ position NFT itself │
│ back (may differ│ │ │
│ from deposit │ │ Tax: DISPOSAL │
│ due to IL) │ │ Capital gain/loss on │
│ │ │ NFT value vs. cost │
│ Tax: DISPOSAL │ │ basis │
│ if value changed│ │ │
└─────────────────┘ └───────────────────────┘
1. How Uniswap V3 Concentrated Liquidity Works
Uniswap V3, launched in May 2021, introduced concentrated liquidity -- a departure from the uniform liquidity model of Uniswap V2. Rather than spreading capital evenly across all possible prices (zero to infinity), V3 allows liquidity providers (LPs) to allocate capital within a specific price range, called a tick range.
Key mechanics CPAs need to understand:
- Tick ranges: LPs choose a lower and upper price bound. Their capital is only active (earning fees) when the trading pair's market price falls within that range.
- Capital efficiency: Concentrating liquidity within a narrow range provides greater fee income per dollar deployed, but increases exposure to impermanent loss if price moves outside the range.
- Position NFTs: Each LP position is represented as a unique ERC-721 NFT minted by the Uniswap V3 NonfungiblePositionManager contract. This NFT encodes the token pair, fee tier, tick range, and liquidity amount.
- Fee accrual: Fees accrue to the position continuously as trades execute within the tick range. Fees are not automatically reinvested; the LP must explicitly collect them via a Collect transaction.
For a detailed technical specification, see the Uniswap V3 Core whitepaper.
The accounting complexity arises because a single LP position can span multiple tax years, involve two underlying assets simultaneously, and generate income through an entirely on-chain mechanism with no traditional intermediary reporting.
2. LP Entry (Deposit): The Mint Event
On-Chain Mechanics
When an LP deposits assets into a Uniswap V3 pool, the NonfungiblePositionManager contract executes a Mint function. The LP transfers two tokens (e.g., ETH and USDC) to the pool contract and receives an ERC-721 NFT representing the position.
Tax Treatment
Under current guidance, depositing tokens into a liquidity pool is generally treated as non-taxable. The IRS has not issued definitive guidance on DeFi liquidity provision, but the prevailing interpretation among practitioners aligns with the principle that transferring assets into a pool -- where the LP retains a proportional claim to those assets -- does not constitute a sale or exchange under IRC Section 1001.
Important caveats:
- This treatment assumes the LP retains beneficial ownership of the underlying assets through the pool position.
- If the IRS were to characterize the deposit as a swap of tokens for an LP token (in this case, an NFT), the deposit itself could be taxable. Some practitioners take this more conservative position.
- The cost basis of the deposited assets carries over to the LP position. Document the FMV of each token at the time of deposit.
Documentation required: - Transaction hash of the Mint event - FMV of each token deposited at the block timestamp - Quantity of each token deposited - Tick range selected (lower tick, upper tick) - NFT token ID issued
For more on how CryptoTaxEdge handles DeFi transaction classification, see the Classification Explorer.
3. Fee Collection: The Collect Event
On-Chain Mechanics
Trading fees accumulate within the position as swaps execute in the LP's tick range. The LP claims these fees by calling the Collect function, which transfers accrued fees (denominated in both pool tokens) to the LP's wallet.
Tax Treatment
Collected fees are ordinary income, valued at the fair market value of the tokens received at the time of collection. This is consistent with IRS Notice 2014-21, Q&A 8, which establishes that virtual currency received for services (or, by analogy, for providing liquidity) is income at FMV.
Specific considerations:
- Timing: Income is recognized when the Collect transaction is confirmed on-chain, not when fees accrue within the position. Accrued but uncollected fees are not taxable income under a cash-basis method.
- Dual-token income: Fees are received in both pool tokens. Each must be valued independently at FMV.
- Cost basis of received tokens: The cost basis of fee tokens equals their FMV at the time of collection (the amount reported as income). Subsequent disposition of these tokens triggers capital gain or loss.
- Self-employment tax: For LPs operating as a trade or business, fee income may be subject to self-employment tax. For passive investors, it is generally reported as other income.
IRS citation: IRS Notice 2014-21, Q&A 8.
Learn more about how we classify DeFi income events across protocols.
4. Impermanent Loss
What It Is
Impermanent loss (IL) occurs when the relative price of the two pooled tokens changes from the ratio at which the LP deposited them. Because the automated market maker continuously rebalances the position, the LP ends up holding more of the token that decreased in relative value and less of the token that increased.
In Uniswap V3, concentrated liquidity amplifies impermanent loss within the selected tick range. If price moves to the boundary of the tick range, the position becomes 100% composed of a single token.
Tax Treatment
Impermanent loss is not a realized tax event. It represents an unrealized change in the composition and value of pooled assets. No gain or loss is recognized until the LP exits the position (burns the NFT).
Why this matters for client advisory:
- Clients may report large "impermanent losses" from DeFi dashboards. These figures reflect economic loss but are not deductible until the position is closed.
- IL is only "impermanent" if the price reverts. If the LP exits at an unfavorable ratio, the loss becomes permanent and is recognized at that point.
- The realized loss at exit is calculated as the difference between the cost basis of deposited assets and the FMV of withdrawn assets -- impermanent loss is embedded in that calculation, not reported separately.
5. The Position NFT
On-Chain Mechanics
Uniswap V3 positions are represented as ERC-721 NFTs minted by the NonfungiblePositionManager contract (address: 0xC36442b4a4522E871399CD717aBDD847Ab11FE88 on Ethereum mainnet). Each NFT has a unique token ID and encodes the full position parameters.
Tax Implications of NFT Transfer
Because the position NFT represents a claim on the underlying pooled assets plus accrued fees, transferring the NFT transfers the entire economic interest. A transfer of the position NFT to another wallet is a disposal under IRC Section 1001 and triggers gain or loss recognition.
Scenarios:
- Sale of NFT for consideration: Capital gain or loss = proceeds minus adjusted cost basis of the position.
- Gift of NFT: No gain or loss to the donor (subject to gift tax rules). Recipient takes carryover basis.
- Transfer between own wallets: Not a taxable event if the beneficial owner does not change, but documentation must clearly establish same-owner status.
Cost basis of the NFT: The cost basis equals the FMV of the tokens deposited at the time of minting, plus any transaction fees (gas) paid to open the position.
6. LP Exit (Withdrawal): The Burn Event
On-Chain Mechanics
To exit, the LP calls DecreaseLiquidity (partial or full withdrawal) followed by Collect to retrieve the tokens. A full exit effectively burns the position's liquidity to zero. The NFT may still exist on-chain but represents an empty position.
Tax Treatment
Withdrawing liquidity is a taxable event under IRC Section 1001. The LP is disposing of their pool position and receiving tokens in return.
Gain/loss calculation:
- Amount realized: FMV of all tokens received at the time of the Burn/Collect transaction (both the principal token amounts and any remaining uncollected fees).
- Adjusted basis: Cost basis of the tokens originally deposited, plus the cost basis of any additional liquidity added. (Collected fees are ordinary income with their own fair-market-value basis in the tokens received; they do not reduce the LP position's basis.)
- Character: Capital gain or loss. Holding period runs from the date of the original Mint transaction. If held more than one year, long-term capital gain rates apply.
Practical note: The tokens received at exit will almost certainly differ in quantity from the tokens deposited, due to the AMM rebalancing. This is where impermanent loss becomes realized. The gain or loss calculation captures this automatically.
For guidance on tracking cost basis across DeFi positions, see the worked examples later in this post.
7. Tick-Range Changes
What Happens
Uniswap V3 does not allow modifying the tick range of an existing position. To change the price range, the LP must:
- Close the existing position (DecreaseLiquidity + Collect)
- Open a new position (Mint) at the desired tick range
Tax Treatment
This is two taxable events:
- Exit (disposal): Gain or loss recognized on the closed position, calculated as described in Section 6.
- Entry (new position): The newly deposited tokens establish a new cost basis at their FMV on the date of the new Mint. A new holding period begins.
This is a critical point for clients who actively manage V3 positions. Active LPs who frequently adjust tick ranges may trigger dozens of short-term capital gain/loss events per year. Each adjustment resets the holding period, making it difficult to achieve long-term capital gain treatment.
8. Taxable vs. Non-Taxable Events: Summary Table
| Event | On-Chain Function | Taxable? | Tax Type | IRS Authority |
|---|---|---|---|---|
| Deposit (provide liquidity) | Mint | Grey area -- house default: taxable disposal; alternative: non-taxable continuity | Method-dependent | IRC 1001 (contested) |
| Fee collection | Collect | Yes | Ordinary income at FMV | IRS Notice 2014-21, Q&A 8 |
| Impermanent loss (unrealized) | N/A (continuous) | No | Not recognized until exit | IRC 1001 (no realization event) |
| Position NFT transfer (sale) | transferFrom / safeTransferFrom | Yes | Capital gain/loss | IRC 1001 |
| Position NFT transfer (gift) | transferFrom / safeTransferFrom | No (to donor) | Gift tax rules apply | IRC 102, 1015 |
| Withdrawal (exit position) | DecreaseLiquidity + Collect | Yes | Capital gain/loss | IRC 1001 |
| Tick-range change | DecreaseLiquidity + Collect + Mint | Yes (two events) | Capital gain/loss + new basis | IRC 1001 |
9. Example Transactions
The following examples use hypothetical transaction hashes and values for illustration. All hashes follow Ethereum mainnet format but do not correspond to real transactions.
Example A: Mint (Deposit)
- Tx Hash:
0xa1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2 - Action: Deposit 1.5 ETH ($4,500) and 4,500 USDC into ETH/USDC 0.3% pool
- Tick Range: 2,800 - 3,200 (price range in USDC per ETH)
- NFT Token ID: 482901
- Gas Fee: 0.008 ETH ($24)
- Tax Treatment: Non-taxable. Record cost basis: 1.5 ETH at $3,000/ETH = $4,500; 4,500 USDC at $1.00 = $4,500. Total position basis: $9,024 (including gas).
Example B: Collect (Fee Income)
- Tx Hash:
0xb2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3 - Action: Collect accrued fees: 0.012 ETH ($38.40) and 36.50 USDC
- Tax Treatment: Ordinary income of $74.90 ($38.40 + $36.50). Basis of received tokens: 0.012 ETH at $3,200 = $38.40; 36.50 USDC at $1.00 = $36.50.
Example C: Withdrawal (Full Exit)
- Tx Hash:
0xc3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4 - Action: Full withdrawal receives 0.9 ETH ($3,060) and 5,850 USDC
- Amount Realized: $8,910 ($3,060 + $5,850)
- Adjusted Basis: $9,024
- Capital Loss: ($114) -- this reflects the impermanent loss now realized
- Holding Period: 8 months (short-term)
Example D: Tick-Range Change
- Tx Hash (Exit):
0xd4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5 - Tx Hash (Re-entry):
0xe5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6 - Tax Treatment: Exit triggers gain/loss (see Example C methodology). Re-entry establishes new basis and resets holding period.
10. Reporting on Form 8949
Each taxable Uniswap V3 event must be reported on Form 8949 (Sales and Other Dispositions of Capital Assets) and flow through to Schedule D. Fee income is reported on Schedule 1 (line 8z, Other Income) or Schedule C if the activity constitutes a trade or business.
FORM 8949 + SCHEDULE 1 ENTRIES — UNISWAP V3 LP EXAMPLE
──────────────────────────────────────────
(a) Description (b) Date Acquired (c) Date Sold (d) Proceeds (e) Cost Basis (f) Gain/Loss
LP Exit: 2.1 ETH 2024-03-15 2024-09-20 $5,250 $4,800 $450
Fee Income: 0.05 (Schedule 1 only -- never a Form 8949 row) 2024-06-15 $125 ordinary income
ETH collected
Form 8949 Line Entries
For LP Exit (Example C above):
| Column | Entry |
|---|---|
| (a) Description | 1.5 ETH + 4,500 USDC -- Uniswap V3 LP Position #482901 |
| (b) Date acquired | 2025-06-15 |
| (c) Date sold or disposed | 2026-02-10 |
| (d) Proceeds | $8,910.00 |
| (e) Cost or other basis | $9,024.00 |
| (g) Adjustments | -- |
| (h) Gain or (loss) | ($114.00) |
Report on Part I (short-term) with Box C checked (no 1099-B received).
For Position NFT Sale:
| Column | Entry |
|---|---|
| (a) Description | Uniswap V3 Position NFT #482901 (ETH/USDC LP) |
| (b) Date acquired | 2025-06-15 |
| (c) Date sold or disposed | 2026-03-20 |
| (d) Proceeds | [Sale price of NFT] |
| (e) Cost or other basis | $9,024.00 |
| (h) Gain or (loss) | [Proceeds minus basis] |
For Fee Income (Example B above):
Report on Schedule 1, Line 8z as "Uniswap V3 LP fee income" or, if operating as a business, on Schedule C. The $74.90 is reported as ordinary income for the tax year in which the Collect transaction was confirmed.
Documentation Best Practices
For each Uniswap V3 position, maintain a record that includes:
- Mint transaction hash and block timestamp
- Token pair, fee tier, and tick range of the position
- NFT token ID issued by NonfungiblePositionManager
- Quantities and FMV of both tokens at deposit
- All Collect transaction hashes with fee amounts and FMV at each collection
- Exit transaction hash with quantities and FMV of tokens received
- Gas fees paid for each transaction (these adjust basis or are deductible as investment expenses)
Block explorers provide this data, but manually compiling it across dozens of positions and hundreds of fee collections is impractical for most clients. This is precisely the workflow that automated classification engines are designed to handle.
11. Key IRS and Legal Citations
- IRC Section 1001: Recognition of gain or loss on sale or exchange of property. Establishes the framework for determining when a disposition occurs. (26 U.S.C. 1001)
- IRS Notice 2014-21: The foundational IRS guidance on virtual currency taxation, establishing that virtual currency is property for federal tax purposes. (IRS Notice 2014-21)
- IRC Section 61: Gross income defined -- applicable to fee income received from LP activity. (26 U.S.C. 61)
- Rev. Rul. 2023-14: IRS ruling confirming that staking rewards are includible in gross income when the taxpayer gains dominion and control. Relevant by analogy for LP fee income timing. (Rev. Rul. 2023-14)
- Uniswap V3 Core Whitepaper: Technical specification of concentrated liquidity mechanics. (uniswap.org/whitepaper-v3.pdf)
Note: As of the publication date of this article, the IRS has not issued specific guidance addressing DeFi liquidity provision, automated market makers, or LP tokens/NFTs. The tax treatments described in this guide represent prevailing practitioner interpretations based on existing law and published guidance. Practitioners should monitor IRS developments and advise clients that positions may need to be revised as new guidance is issued.
Automate Uniswap V3 Classification with CryptoTaxEdge
Manually classifying Uniswap V3 LP transactions is one of the most time-consuming tasks in crypto tax preparation. Each position generates Mint, Collect, DecreaseLiquidity, and transfer events that must be individually identified, valued, and mapped to the correct tax treatment.
CryptoTaxEdge auto-classifies all Uniswap V3 events -- mints, fee collections, exits, tick-range changes, and NFT transfers -- directly from on-chain data. Our classification engine parses the contract interactions, maps them to the correct tax treatment, and outputs Form 8949-ready data.
What you get: - Automatic detection of Mint, Collect, DecreaseLiquidity, and Burn events - FMV pricing at the block timestamp for both pool tokens - Impermanent loss calculation embedded in exit gain/loss - Separation of fee income (ordinary) from position gain/loss (capital) - Export-ready data for your tax preparation software
Try CryptoTaxEdge free -- enter any Uniswap V3 transaction hash in the Classification Explorer and see its classification in seconds.
This article is for informational purposes only and does not constitute tax advice. Consult a qualified tax professional for guidance specific to your client's situation. Tax law is complex and evolving; all positions should be evaluated against the most current IRS guidance available.