← All Guides

How to Track Crypto Cost Basis Across Multiple Exchanges

Published August 24, 2026

If you bought crypto on one exchange, moved it to another, and eventually sold or spent it somewhere else, figuring out what you actually paid for it is harder than it sounds. Cost basis — the original price you paid for an asset, used to calculate your taxable gain or loss when you dispose of it — doesn't travel automatically between platforms. Each exchange only knows what happened on its own system. The moment you transfer an asset elsewhere, you become the one responsible for carrying that basis forward. This guide explains why that's gotten more complicated, what the rules actually require, and how to keep your records straight.

Why This Is Harder Than It Used to Be

For years, a lot of crypto holders treated their cost basis informally — pooling all their purchases of a given coin together regardless of which exchange or wallet held it, and calculating gains from that single pool when they sold. That approach, sometimes called the universal or account-agnostic method, is no longer accepted. Since January 1, 2025, the IRS requires cost basis to be tracked on a wallet-by-wallet, account-by-account basis. Each exchange account, self-custody wallet, and piece of cold storage is its own ledger. When you sell or spend an asset from a specific wallet, the basis has to come from lots that were actually acquired in or transferred into that same wallet — not from a combined pool across everything you own.

This matters more than it might seem at first. Say you bought one Bitcoin on Coinbase in 2021 for $30,000, and a separate Bitcoin on Kraken in 2023 for $60,000. Under the old pooled approach, if you sold the Kraken coin, you might have applied whichever cost basis gave you the tax outcome you wanted. Under the current rule, you can't do that — the coin sold from the Kraken wallet has to use the Kraken-associated basis, full stop. If you transfer coins between wallets, the basis moves with them, so you need a record of which lot went where and when.

FIFO, Specific Identification, and What's Actually Allowed

Within each wallet's ledger, you still need a method for deciding which specific units you're selling when you have multiple purchases at different prices. The two accepted approaches are First-In-First-Out (FIFO), where the oldest units in that wallet are treated as sold first, and Specific Identification, where you designate exactly which lot you're selling — as long as you can document it at the time of the transaction. Strategies like Highest-In-First-Out (HIFO) or Last-In-First-Out (LIFO) aren't separate IRS-approved methods; they're lot-selection strategies you can use under the Specific Identification umbrella, provided you keep adequate records showing which lot you picked and when.

If you don't make an affirmative election and can't produce records supporting specific identification, the default is FIFO. Exchanges have been rolling out broker reporting under Form 1099-DA, but the rollout has been staged: 2025 transactions triggered gross-proceeds reporting only, with cost basis reporting by brokers generally starting for transactions from January 1, 2026 onward. The IRS has also granted relief — most recently Notice 2026-20 — extending taxpayers' ability to use specific identification without pre-notifying their broker of a standing order. None of that changes the wallet-by-wallet requirement; it just affects how much of the bookkeeping burden falls on the broker versus you.

Why Exchanges Can't Solve This for You

Every exchange's tax report or CSV export is scoped to that exchange alone. Coinbase's report shows the deposits, trades, and withdrawals that happened on Coinbase. It has no visibility into what you did with the withdrawn coins afterward — whether they sat in a hardware wallet for two years, got sent to Kraken, or were spent directly. If you only ever look at one exchange's report in isolation, you'll either miss the original cost basis for anything transferred in, or lose track of it for anything transferred out.

This is the core problem with multi-platform crypto activity: the ledger you need doesn't exist anywhere as a single document. You have to assemble it yourself from every exchange export, every wallet transaction history, and every on-chain record you can pull together, then match the outbound side of each transfer to its corresponding inbound side. Get the matching wrong — misidentify a transfer as a sale, for instance, or fail to connect a withdrawal to its destination — and your gain/loss calculation will be wrong too, sometimes significantly.

A Practical Approach to Keeping Records Straight

Start by exporting a full transaction history from every platform you've ever used, not just the ones you're actively trading on now. Include exchanges you've stopped using, wallets you've migrated away from, and anything you might have forgotten about. Missing a source is the single most common reason cost basis records fall apart later.

Next, go through each export and separate the events into three categories: acquisitions (purchases, trades that resulted in acquiring a new asset, staking rewards, airdrops), disposals (sales, trades where you gave up the asset, spending), and transfers (movements of the same asset between your own wallets or exchanges, which aren't taxable events but do need their basis carried forward). Transfers are the part people get wrong most often, because a withdrawal on one exchange and the matching deposit on another look, in isolation, like two unrelated events. If you don't explicitly link them, tax software or a manual spreadsheet will often mischaracterize one side as a disposal or acquisition it wasn't.

Once transfers are matched, apply your chosen method — FIFO by default, or Specific Identification if you're keeping the documentation to support it — consistently within each wallet's own lot history. Keep a written record of which method you're using and why, especially if you're using Specific Identification, since the burden of proof is on you if the IRS asks.

Where Crypto Transaction Log Fits In

This is exactly the reconciliation work Crypto Transaction Log is built to automate. Import your CSV exports from every exchange and wallet you've used, and it identifies matching transfers between them automatically instead of leaving you to eyeball timestamps and amounts across separate spreadsheets. It carries cost basis forward through transfers the way the wallet-by-wallet rule requires, keeps each wallet's lots straight, and applies your chosen accounting method consistently across the whole history — not just within a single exchange's export.

The result is one unified timeline instead of a pile of disconnected exchange reports. If you've used more than a couple of platforms over the years, that consolidation is the difference between a tax filing you can actually stand behind and one built on guesswork. It's free for unlimited transactions, so there's no reason to keep juggling exchange-specific spreadsheets by hand.

The Bottom Line

Cost basis tracking used to be forgiving. It isn't anymore. The wallet-by-wallet requirement means you can't pool your holdings across platforms and pick whichever basis is convenient, and no single exchange's export gives you the full picture once you've moved assets around. The fix is the same regardless of how you do it: pull every export, match every transfer, and apply your method consistently per wallet. Crypto Transaction Log does that matching and tracking automatically, so your records hold up whether you're filing your own return or handing everything to an accountant.

Stop Guessing at Cost Basis

Import every exchange and wallet export into one place, automatically match transfers, and track cost basis the way the rules actually require — no subscription required.

Track your crypto free →