The IRS wants to know your cost basis. That much is clear. What’s not clear—and what most crypto tax guides leave entirely unexplained—is how to actually find your cost basis when your assets have moved through five wallets, three bridges, and a liquidity pool.
This article addresses the specific problem that catches most cryptocurrency investors off guard: you have transaction records scattered across exchange exports, blockchain explorers, wallet backups, and protocol dashboards. Some of it doesn’t match. Some of it is incomplete. And you need to reconstruct a defensible cost basis history before April 15th.
We’ll walk through a practical methodology for doing this. This isn’t about what’s taxable. It’s about how to know what you actually paid for what you own.
The Core Problem: Why Your Records Don’t Line Up
According to the 2024 IRS Compliance Data Book, the IRS received approximately 2.2 million cryptocurrency-related information returns, but audit rates on cryptocurrency transactions remain elevated because cost basis reconstruction is where most taxpayers fail. Not because they’re dishonest—because the trail simply fragments.
Here’s why. When you move cryptocurrency from an exchange to a self-hosted wallet, the exchange has a record, but your wallet software might not. When you bridge assets from Ethereum to Arbitrum, the Arbitrum side of the transaction might show up on Arbiscan but not on your exchange statement. When you swap tokens in a DEX (decentralized exchange), you get a transaction hash, but no receipt with a purchase price.
The IRS’s position, as stated in its 2023 virtual currency guidance, is that you must maintain contemporaneous records of acquisition date, cost, and fair market value at the time of disposition. “Contemporaneous” means you made the record around the time of the transaction, not retroactively reconstructed it three years later.
This creates a real problem: if your records are incomplete, you have to reconstruct them. If you reconstruct them, you have to show your work. And showing your work requires a systematic approach that auditors can follow.
Building a Three-Layer Recordkeeping System for Fragmented Histories
Layer 1: Aggregate all transaction sources into a single timeline.
Start by exporting everything. Exchange statements (CSV files), blockchain transaction histories (from Etherscan, Arbiscan, Solscan), wallet exports, and protocol dashboards. Create a master spreadsheet with these columns:
- Transaction ID (hash or order number)
- Date (ISO 8601 format: YYYY-MM-DD)
- Source system (e.g., “Coinbase”, “Uniswap v3”, “Metamask”)
- Asset in
- Quantity in
- Asset out
- Quantity out
- Wallet addresses involved
Sort by date. You will immediately see gaps and duplicates. A deposit to your self-hosted wallet that shows up in Etherscan probably also shows up in your exchange export as a “withdrawal.” That’s one transaction, not two.
The key move here is flagging each source: where did this data come from? This matters because if you’re audited, you need to explain how you obtained the records. “I downloaded the transaction history from Etherscan” is better documentation than “I remember doing this trade.”
Layer 2: Establish the cost basis for each asset based on when you acquired it.
For assets purchased directly, this is straightforward: the price you paid is your cost basis. For assets received through airdrops, forks, or staking rewards, the fair market value on the date received is your cost basis, according to IRS Notice 2014-21.
Here’s the tricky part: if you acquired the same asset on multiple dates at different prices, and later you dispose of some of it, which acquisition are you disposing of? The IRS allows three methods:
- FIFO (First In, First Out): assumes you sold the oldest holdings first
- Specific identification: you choose which holdings you’re selling
- Average cost (permitted in limited circumstances)
Most people use FIFO by default because it’s simple. But specific identification can sometimes minimize tax liability. You must declare your method and stick with it consistently. If you’ve been using FIFO and want to switch to specific identification, you need IRS approval (Form 3115).
For each acquisition, document:
– The date you acquired the asset
– The quantity
– The cost per unit (in USD or your functional currency)
– The total cost
– The source (exchange name, wallet transaction hash, etc.)
Layer 3: Match dispositions to acquisitions using your chosen method.
Every time you dispose of cryptocurrency—selling it, swapping it, spending it—you’re triggering a taxable event. You need to match that disposal to a specific acquisition.
If you’re using FIFO, this is mechanical: each disposal comes from your oldest holdings first. Create a separate “dispositions” table that lists:
- Disposition date
- Asset disposed
- Quantity disposed
- Acquisition date (from Layer 1)
- Cost basis per unit
- Total cost basis
- Fair market value of asset on disposition date (this determines your gain or loss)
- Gain or loss
The critical metric is FMV (fair market value) at the time of disposition. If you swapped 1 ETH for 20 USDC on March 15, 2025, you need to know the USD value of 1 ETH on March 15, 2025. CoinGecko and Messari both maintain historical price data. Document which source you used.
A concrete example: You bought 0.5 BTC on June 1, 2024, at $62,000/BTC (cost basis: $31,000). On November 15, 2024, you swapped 0.25 BTC for ETH when BTC was trading at $91,000. Your disposition records should show:
– Disposition date: November 15, 2024
– Asset: 0.25 BTC
– Acquisition date: June 1, 2024
– Cost basis: 0.25 × $62,000 = $15,500
– FMV at disposition: 0.25 × $91,000 = $22,750
– Gain: $7,250
This gain is taxable in 2024.
Addressing Incomplete or Missing On-Chain Data
Here’s where most guides stop and you’re left alone with your problem: what do you do when the data is missing?
If you have an exchange record but no blockchain confirmation, use the exchange record. Exchanges are regulated entities (if they operated in the US), and their records carry more weight than a private wallet’s records.
If you have a blockchain record but no exchange record—say, you received a transfer from someone else’s wallet—you need the fair market value at that moment. If it’s an airdrop or reward, this is your acquisition cost basis. Use the price from CoinGecko or Messari on that date, and document which source you used.
If you have neither, you have a real problem. You can attempt reconstruction using historical prices, but you’re now relying on inference. Document your methodology clearly: “I did not retain contemporaneous records of this acquisition. I reconstructed the cost basis using historical prices from [source] based on the transaction date recorded on the blockchain.”
The IRS won’t automatically reject reconstructed records, but they’re weaker than contemporaneous ones. If you’re in this situation, the cost of fixing it now (buying tax software, consulting a CPA) is almost always less than the cost of fixing it in an audit later.
One counterintuitive point: paper wallets and hardware wallets make cost basis reconstruction harder, not easier. Because you control them, there’s no intermediary record. If you can’t remember or didn’t record acquisition details, they’re gone. Exchange wallets create friction, but they also create documentation. This is an argument for keeping some holdings on regulated platforms specifically for the records.
FAQ: What Crypto Tax Professionals Actually Get Asked
Q: Do I need to report every swap, even small ones?
Yes. Every swap is a taxable event. The IRS has said explicitly (in Notice 2014-21) that exchanges of one cryptocurrency for another are treated as dispositions. The quantity doesn’t matter. You owe capital gains tax on your profit, calculated from cost basis to FMV at the time of the swap.
The reporting threshold is zero. There is no de minimis exception for cryptocurrency like there is for some securities.
Q: If my records are incomplete, can I use the “average cost method” to reduce my tax burden?
Not as a workaround. The average cost method is only available under specific circumstances, and you need IRS approval (Form 3115) to use it if you haven’t been using it consistently from the start.
More importantly: you can’t choose your tax method retroactively to minimize tax. That’s the IRS’s argument against letting people reconstruct missing records with made-up prices. Your method must be systematic and consistently applied.
Q: What if I can’t find the price of an obscure token on a particular date?
Use the closest available data from a reputable source (CoinGecko, Messari, Yahoo Finance crypto feeds). Document which source and which date. If the token delisted and has no historical price data, document that too. Then make a reasonable estimate based on the last available price or any transaction data you have.
You won’t have perfect information. The IRS understands this. What they want is evidence that you made a good-faith effort.
Your Next Step
Reconsting cost basis is tedious, but it’s not optional. Start today with one asset class: gather all your exchange exports for Bitcoin and Ethereum. Create the three-layer spreadsheet. Match your acquisitions to your dispositions. Get that one section defensible.
Then move to the next asset. You don’t have to solve it all at once, but you do have to start.
Leave a Reply