If you hold Bitcoin in more than one place, say an exchange account, a second exchange, and a hardware wallet, the way you track your cost basis matters more than it used to. Beginning with transactions in 2025, the general approach is to track basis separately for each wallet or account, rather than treating all of your Bitcoin as one big pool. It sounds like a technical bookkeeping detail, but it can change the gain you report when you sell.

A quick refresher on cost basis

Cost basis is generally what you paid for your Bitcoin, including certain fees. When you sell, spend, or trade it, your gain or loss is the difference between what you received and the basis of the specific units you disposed of. (See Tracking Your Bitcoin Cost Basis.) Because most people buy Bitcoin at many different prices over time, the key question is always: which units did you just sell?

The old habit: one universal pool

For years, many people and some tax software used a “universal” approach. All Bitcoin you owned, wherever it sat, was treated as one pile. If you sold on Exchange A, you might match that sale against Bitcoin you had bought on Exchange B years earlier, because it was the oldest (or highest-cost) coin anywhere in your holdings.

That was convenient, but it did not match how the units actually moved. The coins you sold on Exchange A were, physically and on the records, the coins sitting in Exchange A.

The current approach: wallet by wallet

The IRS has indicated that, starting in 2025, basis should generally be tracked on a wallet-by-wallet or account-by-account basis. In plain terms:

  • Each wallet or exchange account has its own set of tax lots, with their own purchase dates and costs.
  • When you sell from an account, the units you sell generally come from the lots held in that account.
  • If you want to choose specific lots, the identification is made within that account, not across all of your holdings. (See Specific Identification Basics.)
  • If you do not identify specific units, a first-in, first-out (FIFO) order within that account is generally the default.

This lines up with broker reporting as well. Exchanges now issue Form 1099-DA based on the activity in your account with them, so your own records should be able to match what each platform reports. (See Form 1099-DA Basics.)

What about Bitcoin you already owned?

Because many people had years of records kept the old way, the IRS provided transition relief for moving to the new method. Generally, taxpayers were allowed to allocate the basis of their existing, unsold Bitcoin to the wallets and accounts where it was held as of the start of 2025, using a reasonable and consistent approach. The details of that relief have specific requirements and timing, so if you have a large or complicated history, it is worth having a tax professional confirm how your opening balances were set up.

A simple example

Suppose you own 1 Bitcoin on Exchange A, bought at $60,000, and 1 Bitcoin in a hardware wallet, bought years ago at $10,000. You sell the Bitcoin on Exchange A for $70,000.

Under the old universal habit, someone using FIFO might have matched that sale against the older $10,000 coin and reported a $60,000 gain. Under the wallet-by-wallet approach, the sale generally comes from the Exchange A lot, so the gain is $10,000. The low-basis coin stays in the hardware wallet with its original basis and date. Same sale, very different number on the return.

Transfers carry basis with them

Moving Bitcoin between your own wallets generally is not a taxable event. (See Moving Bitcoin Between Your Own Wallets.) But under wallet-by-wallet tracking, it is important that the original basis and purchase date travel with the coins. A receiving exchange may not know what you paid, and could show the basis as missing or zero. Keeping your own transfer records lets you fix that when you report the sale.

Practical steps

  • List every account: Write down each exchange, app, and self-custody wallet where you hold or have held Bitcoin.
  • Keep lots per account: Make sure your records or software show which lots sit in which account.
  • Log transfers: Record date, amount, and the source and destination wallets for every move.
  • Check software settings: If you use crypto tax software, confirm it is set to track by wallet or account rather than a universal pool.
  • Compare to 1099-DA: At tax time, reconcile each platform’s form against your own records.

For a broader list, see Bitcoin Tax Records to Keep.

Key takeaways

Bitcoin basis is generally tracked account by account now, not as one combined pool. That can shift which coins count as sold and how big your gain is. Keep lots organized by wallet, keep transfer records, and make sure your software matches the approach. If your history spans many years and platforms, a CPA can help confirm your starting point.

This article is general information only and is not tax, legal, or investment advice. Tax treatment depends on your specific facts and can change. Consult a qualified CPA or tax advisor about your situation before acting.