Skip to main content

Crypto Cost Basis: FIFO vs Spec ID After the Wallet Rule

FIFO is the default crypto cost basis method. Specific ID can cut your gain, but only if you identify the lot before you sell. Here's how both work now.

Jump to section
  1. #Crypto is property, not currency
  2. #What changed: no more pooling basis across wallets
  3. #The default: FIFO
  4. #The alternative: specific identification
  5. #Worked example: same sale, two different tax bills
  6. #The current relief window, and why it won’t last
  7. #Where the wash sale rule stands
  8. #Common questions

TLDR

When you sell crypto, you have to know which “lot” you sold, because each lot has its own cost basis and that basis sets your gain or loss. If you do nothing, the IRS makes you use FIFO (first in, first out), you’re treated as selling your oldest coins first. If you want to pick a different lot (usually your most expensive one, to shrink the gain), you have to specifically identify it before or at the moment you sell. Since 2025, this all happens wallet by wallet, not across your whole crypto portfolio at once. Get the timing wrong and you lose the choice, FIFO applies whether it helps you or not.

In this guide, you’ll learn:

  • What changed in 2025, why you can no longer pool basis across every wallet and exchange you own
  • How FIFO works as the default, and why it usually creates the biggest gain
  • What “specific identification” actually requires, and why the timing is the whole ballgame
  • A full worked example showing the same sale taxed two different ways
  • The temporary relief that’s letting you use specific ID without telling your exchange, and when that ends
  • Where the wash sale rule stands for crypto right now

#Crypto is property, not currency

Start here, because it explains everything else. Per IRS Notice 2014-21, crypto is treated as property for federal tax purposes, the same category as stock or real estate. It is not currency.

That single classification is why every sale, swap, or spend of crypto is a taxable event. You’re not “spending money.” You’re disposing of property, and property disposals require you to know your cost basis, what you paid for the specific units you’re getting rid of.

For crypto, that’s harder than it sounds. You probably didn’t buy all your Bitcoin at one price. You bought some in 2021, some in 2023, some last month. Each purchase is its own “lot” with its own basis and its own purchase date. The cost basis method is the rule that decides which lot you’re treated as selling when you don’t sell all of them at once.

#What changed: no more pooling basis across wallets

Until the end of 2024, most people tracked crypto basis on a “universal” basis. If you owned Bitcoin across Coinbase, Kraken, and a MetaMask wallet, you could treat all of it as one big pool and pick whichever lot helped you most, regardless of which wallet it actually sat in.

Final IRS broker regulations ended that. Starting January 1, 2025, basis has to be tracked wallet by wallet, or account by account. You can no longer treat your Coinbase BTC and your self-custody BTC as one interchangeable pile. Each wallet or account is its own bucket, with its own set of lots and its own basis.

The practical result: your Coinbase account has its own FIFO order. Your Kraken account has its own FIFO order. Your hardware wallet has its own FIFO order. They don’t mix.

#The default: FIFO

If you sell crypto and don’t do anything special, the IRS assumes FIFO, first in, first out. You’re treated as selling the oldest units in that wallet first.

FIFO is simple, and it needs no paperwork. But it usually creates your biggest taxable gain, because your oldest coins are usually your cheapest coins (crypto has, historically, gone up over time). Sell your oldest BTC first, and you’re recognizing the biggest spread between what you paid and what it’s worth now.

FIFO isn’t always bad. If your oldest coins happen to be your most expensive ones (say you bought a chunk near a price peak years ago), FIFO can actually work in your favor. The point isn’t that FIFO is wrong. It’s that FIFO is automatic, whether or not it’s the best choice for your situation.

#The alternative: specific identification

Specific identification (spec ID) lets you choose which lot you’re selling, instead of defaulting to oldest-first. Most people using spec ID pick their highest-cost lots first (sometimes called HIFO, “highest in, first out”) because that minimizes the gain on each sale.

Here’s the part that trips people up: spec ID is not a box you check on your tax return in April. It’s a real-time requirement.

Adequate identification has to happen no later than the date and time of the sale, disposition, or transfer. For crypto held with a custodial broker (an exchange like Coinbase or Kraken), that means specifying the particular units, by whatever identifier the broker recognizes, at or before you hit “sell.” You can also set up a standing order with the broker (a rule like “always sell my highest-cost lot first”) that counts as identification made at the time of each future sale, once it’s on file.

If you decide after the fact which lot you “meant” to sell, that’s not adequate identification. It’s too late, and FIFO applies by default.

FIFO vs. specific identification
FIFO (default)Specific ID
What happens if you do nothing This is doing nothing. It's the automatic resultNever applies automatically, you must act
Timing requirement NoneMust identify the lot at or before the sale/transfer
Typical effect on gain Usually the largest gain (oldest, often cheapest, lots sold first)Usually a smaller gain if you pick your highest-cost lots
Paperwork / recordkeeping None requiredYou need dated records showing exactly which lot you picked, and when
Applies per... Wallet or accountWallet or account

#Worked example: same sale, two different tax bills

Say you hold Bitcoin in one Coinbase account, bought in three separate purchases:

  • Lot A, January 2024: 0.5 BTC at $40,000/BTC → basis $20,000
  • Lot B, June 2024: 0.5 BTC at $60,000/BTC → basis $30,000
  • Lot C, January 2025: 0.5 BTC at $95,000/BTC → basis $47,500

In March 2026, you sell 0.5 BTC when the price is $110,000/BTC. Sale proceeds: $55,000.

Under FIFO (the default): you’re treated as selling Lot A, your oldest lot.

  • Proceeds: $55,000
  • Basis: $20,000
  • Gain: $35,000
  • Held January 2024 to March 2026, over a year, so long-term

Under specific identification (you pick Lot C, your highest-cost lot):

  • Proceeds: $55,000
  • Basis: $47,500
  • Gain: $7,500
  • Held January 2025 to March 2026, over a year, so long-term

Same sale. Same 0.5 BTC. Same $55,000 in your pocket. But the taxable gain is $27,500 lower under specific ID ($7,500 vs. $35,000). At a 15% long-term capital gains rate, that’s the difference between owing $5,250 and owing $1,125, a $4,125 tax savings on this one sale, just from picking the right lot at the right moment.

The only reason you get to make that choice is because you identified Lot C before the sale went through. Wait until tax season to decide, and the IRS puts you back in Lot A, FIFO, $35,000 of gain.

$27,500

Lower taxable gain in the example above

Same sale, FIFO ($35,000 gain) vs. specific ID ($7,500 gain)

#The current relief window, and why it won’t last

The permanent rule for broker-custody crypto (Coinbase, Kraken, and similar) requires you to communicate your specific-lot choice to the broker itself, by the date and time of the sale. Most exchanges weren’t built to accept that kind of instruction when the rule took effect.

So the IRS granted temporary relief. Notice 2025-7 (issued December 31, 2024) let taxpayers satisfy the identification requirement using their own books and records for 2025 transactions, without notifying the broker at all, either lot by lot or through a standing order (like “always sell highest-cost first”). Notice 2026-20 extended that same relief through December 31, 2026.

If you hold crypto in a self-custody wallet (not with a broker), there’s no “communicate to the broker” step at all. There’s no broker. Your obligation is simpler in form but no less real: keep records specific enough to show, for any given sale, exactly which units (by wallet, acquisition date, and cost) you’re selling.

#Where the wash sale rule stands

The wash sale rule (IRC §1091) disallows a tax loss when you sell a security at a loss and buy a “substantially identical” one within 30 days before or after. It’s the reason stock investors can’t sell a losing position on December 30 and rebuy it December 31 just to claim the loss.

Section 1091, by its own text, applies to “stock or securities.” Crypto is property, not a security, under current IRS guidance. As of this writing, the wash sale rule does not apply to direct crypto-to-crypto trades. You can sell BTC at a loss and immediately buy it back, and the loss still counts.

This has been proposed for change in Congress more than once, and it could change in a future tax year. It has not changed as of 2026. If you hold crypto exposure through a security wrapper, certain ETFs, for example. That position is a security, and the normal wash sale rule applies to it the same as any stock.

#Common questions

Do I have to pick the same cost basis method for every wallet? No. Because tracking is now wallet by wallet, you can use FIFO in one account and specific identification in another. What you can’t do is mix methods for lots inside the same wallet on the same sale without proper identification of each one.

Can I switch from FIFO to specific ID partway through the year? Generally yes, for future sales. What you can’t do is go back and reclassify a sale you already made under FIFO because you didn’t identify a lot in time.

What happens if I use a crypto tax software tool, does it handle the identification timing for me? Some tools let you set a standing order (like “always HIFO”) that applies going forward, which can satisfy the timing requirement if it’s in place before the sale. But the software doesn’t fix a sale that already happened under the default. Check what method your tool is actually applying, and when it was set.

Is HIFO the same thing as specific identification? No. HIFO (highest in, first out) is one particular strategy for choosing lots. Specific identification is the method that lets you choose any lot you want, as long as you identify it in time. HIFO is usually the strategy people use once they have the ability to specifically identify.

Does this apply to NFTs and other digital assets, or just Bitcoin and Ethereum? The wallet-by-wallet basis rule and the FIFO-versus-specific-ID choice apply to digital assets generally, not just the two largest coins. NFTs carry their own valuation and classification questions on top of this (see our NFT tax treatment guide), but the basis-tracking mechanics are the same family of rule.

What if I move crypto between my own wallets, does that reset anything? No. A transfer between wallets you own isn’t a sale, so it doesn’t trigger a taxable event and your basis carries over with the coins. But it does mean your basis records need to follow the coins to the new wallet, or you’ll lose track of which lot is which. That’s its own common failure point, see our wallet transfer reconciliation guide.

Do I need to worry about any of this if I only sell once or twice a year? The rules apply regardless of how often you trade. But the operational burden scales with activity. If you’re making a handful of sales, the recordkeeping is manageable by hand. If you’re staking, trading, or moving crypto often, this is exactly the kind of thing that gets missed without a system (see our crypto bookkeeping fundamentals guide).


If you’re holding meaningful crypto gains and want to know whether FIFO or specific identification puts more money in your pocket before you sell, the Discovery call is the right next step. We handle crypto cost basis as part of our crypto bookkeeping engagements.

Search the whole site.

Articles, services, segment pages, tech stack. Start typing, or jump to a topic.

Tip: to navigate · Enter to open · Esc to close