Wallet by Wallet Cost Basis Crypto 2025: What Changed and What to Keep per Account
If you searched for "wallet by wallet cost basis crypto 2025", you probably already suspect the answer: the way many US holders used to calculate crypto gains, one big pile of coins across every exchange and wallet, gave way to a wallet-by-wallet requirement at the start of 2025. This article explains the wallet by wallet cost basis rule for crypto in 2025 and after, in plain English, links each IRS source, and then shows with two accounts and one sale why the change moves real dollars.
I am not an accountant. Full disclosure: I build Holdbound, so read the product parts with that in mind. The rule changed how such a tool has to store lots, which I cover near the end. Scope: US individuals holding spot crypto as an investment; staking income, DeFi, NFTs and business inventory are out.
The wallet by wallet cost basis rule for crypto from 2025
Since January 1, 2025 the IRS requires cost basis to be tracked wallet-by-wallet (or exchange-account-by-account) under its 2024 final regulations; before that many people pooled all wallets together (Reg. § 1.1012-1(j), T.D. 10000; IRS Digital assets page). In practice: when you sell 0.5 BTC out of a particular exchange account or self-custody wallet, the lots you can use to figure the gain are the lots sitting in that same account or wallet, not the cheapest or oldest coins you own anywhere.
Two wording points:
- It is "wallet-by-wallet (or account-by-account)", not "per exchange". A hardware wallet is its own pool; a second account at the same exchange is separate from the first.
- The 2024 final regulations impose the rule. Rev. Proc. 2024-28, mentioned everywhere, is the transition rule on top of it, not the thing that ended pooling.
Which methods are recognized
For US taxpayers the IRS recognizes specific identification (with contemporaneous records) or, by default, FIFO, applied wallet-by-wallet since 2025 (IRS virtual currency FAQ, Q39–Q41; Reg. § 1.1012-1(j)).
"HIFO" and "LIFO" are not separate IRS methods; they are ways of choosing which lot to specifically identify (Reg. § 1.1012-1(j)(4)). A tool's "HIFO" setting is really specific identification (choosing the highest-cost lot), with the record-keeping burden that comes with it.
Average cost is a mutual-fund rule and is not a recognized method for crypto in the US (Publication 550, "Average Basis"; T.D. 10000 preamble, where a request for an averaging rule was "not adopted").
What specific identification asks of your records
Specific identification works only if, no later than the time of sale, your records show for every unit of that coin in that wallet: date and time acquired, basis and value at acquisition, date and time sold, and value or proceeds at sale (IRS FAQ Q40; Reg. § 1.1012-1(j)(2)).
The records are per wallet, per coin, for every unit, and they have to exist by the time you sell, not be reconstructed in March. If you cannot meet that, the default inside that wallet is FIFO.
The one-time safe harbor, and where it stands now
People who had pooled for years had no record of which old lot lived in which wallet. Rev. Proc. 2024-28 gave a one-time safe harbor to assign pre-2025 lots to the wallets that held them (Rev. Proc. 2024-28). The allocation assigned your pre-2025 lots to the wallets that actually held them at the start of 2025, and it had to be recorded.
The safe-harbor allocation had to be in place before your first post-2024 sale of that coin and in any case by the due date of your 2025 return (October 15, 2026 on extension); for most people it is now closed or closing, but the allocations you made still govern the basis of pre-2025 coins (Rev. Proc. 2024-28, § 5.02). If you sold a coin during 2025 without allocating first, the window for that coin passed at that sale. I found no IRS extension of these dates as of August 2026. What to do if you missed it is a question for an accountant, not an article.
Relief for coins held on an exchange
Notices 2025-7 and 2026-20 let you keep your lot choices for exchange-held coins in your own records through the end of 2026 instead of instructing the exchange; they do not cover self-custody wallets (Notice 2025-7; Notice 2026-20).
What the notices change is who you tell about a lot choice for exchange-held coins: your own books, by the time of sale, instead of the exchange. I found nothing in them that moves the Rev. Proc. 2024-28 dates above; how the two interact in your case is a question for your accountant.
Form 1099-DA will not do this for you
US exchanges began sending Form 1099-DA for 2025 sales (proceeds only); cost basis appears only for coins bought and kept on that same platform from 2026 onward, so your own wallet-level records remain the source of truth for everything else (IRS Digital assets page; 2025 Instructions for Form 1099-DA; About Form 1099-DA).
So for a coin bought in 2023, or bought on one exchange and moved to another, or ever self-custodied, the form shows what you received, and what you paid has to come from your own records. The "gains" tab inside an exchange app has the same blind spot: it sees only the lots that exchange knows about. Individuals report crypto sales on Form 8949 and Schedule D; if the broker's basis is missing or wrong you enter or adjust it from your own records (Instructions for Form 8949).
Holding period still travels with the lot
A gain is long-term only if you held the coins more than one year, counting from the day after purchase; one year or less is short-term (IRS FAQ Q6; Publication 550, "Holding Period"). And moving crypto between wallets you own is not a taxable event in the US, and the coins keep their original purchase date and cost (IRS FAQ Q38). Which lot a sale draws from therefore decides both the gain and its short- or long-term label.
Worked example: two accounts, one sale, two answers
Invented, rounded numbers; fees already folded in.
| Account A (exchange) | Account B (self-custody wallet) | |
|---|---|---|
| Purchase | 0.5 BTC on 2023-03-01 | 0.5 BTC on 2024-11-15 |
| Cost including fee | $11,000 ($22,000 per BTC) | $45,000 ($90,000 per BTC) |
On 2025-06-10 you sell the 0.5 BTC that sits in Account B for net proceeds of $52,500 ($105,000 per BTC). Nothing is sold from Account A. No specific identification was made, so the default applies.
Universal FIFO (the pre-2025 habit). All BTC is one pile; the oldest lot anywhere goes first, and that is Account A's 2023 lot.
- Proceeds $52,500 − basis $11,000 = gain $41,500
- Lot acquired 2023-03-01, holding period counted from 2023-03-02 to 2025-06-10: more than one year, so long-term
Per-account FIFO (the rule since 2025-01-01). The sale happened in Account B, so only Account B's lots are eligible. The only lot there is the 2024 one.
- Proceeds $52,500 − basis $45,000 = gain $7,500
- Lot acquired 2024-11-15, holding period counted from 2024-11-16 to 2025-06-10: one year or less, so short-term
Same sale, same proceeds, a $34,000 difference in the gain and a different holding-period label. The 2023 lot does not vanish; it still sits in Account A with its $11,000 basis and 2023 date, waiting for a sale from Account A.
One detail hidden here: both lots were bought before 2025, so which lot "belongs" to which account is exactly what the Rev. Proc. 2024-28 allocation was meant to pin down. The coins never moved, so each lot sits in the wallet that held it at the start of 2025. If you had shuffled coins between the accounts during 2024, working out which lot belonged where took more thought, and that is the part people skipped.
What to keep, per wallet and per account
- One ledger per wallet or account, per coin. Not one per exchange if you have two accounts there, and not one combined ledger for "all my BTC".
- For every lot: date and time acquired, what you paid including fees, and the value at acquisition if you got the coins some way other than buying.
- For every sale: date and time, proceeds after fees, and which lot or lots it came from. A specific-identification choice has to be recorded by the time of the sale.
- For every transfer between your own wallets: the withdrawal, the matching deposit, the network fee, and which lots moved. The lots keep their date and cost; they just change ledgers. A network fee paid in crypto on a self-transfer is a small disposal of the coins used for the fee (IRS Digital assets page), so it belongs in the ledger too.
- Your safe-harbor allocation document, if you made one, with its date. It governs the basis of pre-2025 coins from now on.
- The original exchange CSVs and wallet transaction lists, untouched, as evidence behind the ledgers.
Questions worth asking an accountant
- Did I make a Rev. Proc. 2024-28 allocation, and if not, where do my pre-2025 lots stand?
- Am I defaulting to FIFO in each wallet, or specifically identifying, and do my records meet the time-of-sale bar for that?
- For exchange-held coins, am I relying on Notices 2025-7 / 2026-20, and what changes after the end of 2026?
- How should Form 8949 handle a 1099-DA with proceeds but no basis, or a basis that disagrees with my ledgers?
- How do you want self-transfer fees recorded? The IRS has not said whether a self-transfer fee can be added to your cost basis; most tax tools treat it conservatively as neither deductible nor basis-increasing (T.D. 10000 preamble).
Bring the per-wallet ledgers.
Where Holdbound fits, and who should not use it
Your trades stay on your computer. Pay once.
The rule above is a data-structure question before it is a tax question. Holdbound is a single HTML file you download from https://holdbound.com/download and open in your browser; nothing to sign up for and nothing running on a server. Every transaction carries an account field, and the app keeps its lots in a separate pool per account. When a withdrawal from one account is matched to a deposit in another, the lots move from the first pool to the second with their original date and cost, rather than being sold and rebought. Automatic matching needs the same coin, different accounts, a deposit within 48 hours, and a received amount equal to or smaller than the sent amount by no more than a fee-sized allowance; when two candidates tie it matches nothing and lists the pair as ambiguous, and your manual link, unlink or exclude always wins.
Beyond that it is a deliberately small tool. CSV import from Binance, OKX, Coinbase and Kraken is auto-detected; a generic template (timestamp,type,asset,amount plus optional columns such as account, fee_amount, txid) covers the rest. Fees are part of cost on a buy and reduce proceeds on a sell. You get realized and unrealized P&L, a trade log with notes, and a holding-period view comparing trades closed inside 7 days with those held past 90 days; those are performance windows, not tax categories. Data lives in your browser's IndexedDB with one-click JSON backup; the app is offline except for a manual CoinGecko price refresh. Exports are a full CSV and an annual realized-gains summary. It produces no tax forms.
Two cautions. First, the app offers FIFO or average cost. Average cost is a mutual-fund rule and is not a recognized method for crypto in the US; that mode exists for readers in jurisdictions that pool, such as Canada's adjusted cost base, or for comparison. You and your accountant choose the method; the app does not choose for you. Second, the app gives you lots per account and the arithmetic on them. Whether your records meet the specific-identification bar, whether an allocation was made in time, and what goes on Form 8949 are judgments it cannot make.
Pricing is a free, full-featured 30-day trial, then $29 once. Every version released in the following 12 months is yours to keep and keeps working forever; renewing for more updates is $15 a year and optional. If the trial ends without a purchase the app goes read-only — you can still open it, view everything and export all your data; only adding transactions and refreshing prices stop. That is the only case: once you have paid, nothing is ever switched off, including if you let the optional renewal lapse. everything stays viewable and exportable, nothing can be added or refreshed, and buying or renewing restores it.
You should not use Holdbound if:
- You need Form 8949, Schedule D or any tax form produced for you. It exports CSV and an annual summary only.
- You are active in DeFi or NFTs. Liquidity pools, bridges, mints and airdrops are not parsed.
- You trade margin, perpetuals or options. Spot only.
- You want many exchange accounts synced over API. There is no API sync.
- More than one person needs to work in the same data. One user, one machine.
- You want someone else responsible for your backups. The JSON backup is one click, but pressing it is on you.
This article is for general information only — not financial or tax advice.