FIFO (First-In-First-Out) cost basis accounting can cost you thousands in extra taxes when you sweep NFT collections and later sell pieces individually.
By default, the IRS assumes you sell your oldest NFT first. If you bought 10 Azukis during the bull market and 10 more at floor prices, FIFO forces you to “sell” the expensive ones first when you need cash—maximizing your losses or minimizing your gains in the wrong direction.
How FIFO Works Against You
You swept 10 DeGods in January 2023 for 40 SOL each (8,000 total). The floor crashed. You swept 10 more in June 2024 for 8 SOL each (80 SOL total).
In December 2024, you need $500 and sell one DeGod for 10 SOL.
With FIFO (default):
- You’re forced to sell one from your January batch
- Cost basis: 40 SOL
- Sale price: 10 SOL
- Capital loss: 30 SOL ($4,500 if SOL is $150)
With Specific ID:
- You choose to sell one from your June batch
- Cost basis: 8 SOL
- Sale price: 10 SOL
- Capital gain: 2 SOL ($300)
Same economic outcome (you got $500), but FIFO gives you a $4,500 loss while Specific ID gives you a $300 gain.
When FIFO Hurts Most
Selling to raise cash: If you need money and the collection recovered slightly, FIFO sells your high-basis NFTs first, locking in maximum losses when you might want to hold those for future recovery.
Holding winners, selling losers: If you want to harvest losses, FIFO might prevent it by making you sell older pieces that have smaller losses or even gains.
Selling after accumulation: Swept 50 pudgy penguins over 18 months? FIFO sells them in chronological order regardless of which ones make tax sense to sell.
The Specific Identification Solution
Specific ID lets you choose which exact NFT you’re selling based on when you bought it.
To use Specific ID:
- Document your choice before the sale
- Note the specific NFT’s acquisition date and cost basis
- Include this in your tax records
Example documentation: “Selling Bored Ape #7234, acquired on 3/15/2023 for 52 ETH.”
Most tax software supports this, but you need to actively select it. The default is FIFO.
Real-World Example: Collection Exit
You own 30 CryptoPunks bought at various prices from 15 ETH to 95 ETH. Current floor: 35 ETH. You decide to sell 5 to diversify.
FIFO approach:
- Sells your 5 oldest Punks (bought at 70 ETH, 65 ETH, 80 ETH, 95 ETH, 60 ETH)
- Average cost basis: 74 ETH
- Average sale price: 35 ETH
- Total loss: 195 ETH ($292,500 if ETH is $1,500)
Specific ID approach:
- You choose to sell the 5 most recent Punks (bought at 20 ETH, 18 ETH, 22 ETH, 25 ETH, 15 ETH)
- Average cost basis: 20 ETH
- Average sale price: 35 ETH
- Total gain: 75 ETH ($112,500)
Depending on your tax situation this year, you might want the losses (offset other gains) or prefer smaller gains (if you’re in a low tax bracket or have loss carryforwards to use).
FIFO removes your choice. Specific ID gives you control.
What You Need to Track
For Specific ID to work, you must track:
- Acquisition date for each NFT
- Purchase price for each NFT
- Unique identifier (token ID, collection name)
- Which specific NFT you sold (document before sale)
If you can’t prove which NFT you sold, the IRS defaults to FIFO.
Action Step
Review your NFT collection right now. If you own multiple pieces from the same collection bought at different prices, decide whether FIFO or Specific ID makes sense for your tax strategy.
Before selling any NFT from a collection where you own multiple pieces, calculate the tax outcome under both methods. Document your choice of Specific ID before the transaction.
The right accounting method can save you thousands in taxes or help you harvest losses when you need them. The wrong method—or just accepting the default—costs you that advantage.