If you bought crypto in one app, moved it to a wallet, swapped it on a different exchange, and then cashed out somewhere else… you’re not alone. Mid-February is often when people discover their records don’t match across platforms—and the missing piece is usually cost basis.
This guide is organization-first: how to spot cost basis gaps, reconcile transfers so they don’t look like “sales,” and create a clean paper trail you (or a tax pro) can rely on. It’s general educational information, not tax advice—think of it as a calm checklist for getting your crypto tax records into shape.
Cost basis, in plain English (and why it matters)
Cost basis is essentially what you paid to acquire an asset, plus certain costs you can document. When you later sell, trade, or otherwise dispose of it, basis helps determine the gain or loss you report. If basis is missing, some systems default to “unknown,” which can make your taxable gain look larger than it really was—or simply leave you with incomplete records.
In IRS terminology you’ll often see “digital assets” or “virtual currency.” Regardless of the label your exchange uses, your goal during a crypto cost basis cleanup is consistent: connect each disposal to the original acquisition details and any related fees you can substantiate.
Why transfers can look like “sales” if you don’t label them correctly
One of the biggest headaches in crypto tax reconciliation is that moving coins between your own accounts can resemble a taxable event in raw data. A withdrawal from Exchange A and a deposit to Exchange B may appear as two unrelated transactions unless you link them as a transfer.
When transfers aren’t matched, you can end up with problems like:
- Phantom disposals: the sending platform shows an “outgoing” transaction that looks like you sold or sent crypto away permanently.
- Phantom acquisitions: the receiving platform shows a “deposit” with no purchase attached, creating missing cost basis crypto records.
- Fee confusion: network fees and exchange fees can cause the amount in to be slightly less than the amount out, which makes matching harder unless you record the fee.
The fix is rarely complicated—it’s mostly careful labeling and documentation.
The 6 most common reasons cost basis goes missing
If your numbers don’t tie out, it’s usually one (or more) of these:
- Old or closed exchanges: you can’t easily access full trade history, especially if you changed emails or lost 2FA access.
- Wallet-to-wallet movement: self-custody transfers don’t come with a neat “purchase” receipt inside an exchange report.
- Chain fees: network fees reduce amounts and can create small mismatches unless you note them consistently.
- Partial fills and multiple lots: one “buy” may be filled in pieces, or you may have many purchase lots that later get sold in one order.
- Token migrations, renames, or wrapped assets: the asset you received may not match the symbol you originally bought.
- CSV/report limitations: some exports lack key fields (IDs, wallet addresses, timestamps with time zones) or differ across platforms.
None of these are unusual. The point is to identify which category you’re dealing with before you try to “fix” anything.
A step-by-step reconciliation workflow (no special tools required)
You can do a solid cleanup with folders, spreadsheets, and exports. The goal is to create a master inventory you can defend with documentation.
- 1) Inventory everything: list every exchange, broker app, wallet, and blockchain you used (even briefly). Include the email/login used, and the date range.
- 2) Export histories: download trade history, deposits/withdrawals, and fee reports where available. Save original files unchanged.
- 3) Create a “transfer map”: for each withdrawal, look for a corresponding deposit (same asset, close timestamp, similar amount minus fees). Record the sending/receiving platforms, TXID if you have it, and the fee.
- 4) Match disposals to acquisitions: identify every sale/trade/spend and make sure it ties back to one or more purchase lots with dates and amounts.
- 5) Flag gaps: mark items like “deposit with unknown origin,” “trade missing fee,” or “exchange report incomplete.” Don’t guess—flag.
- 6) Build a documentation packet: keep screenshots of account statements, emails confirming deposits/withdrawals, and wallet addresses used. If you later need to explain a number on Form 8949 crypto records, this is what you’ll want handy.
If you can’t retrieve older data, consider requesting account statements from the platform and gathering secondary evidence (bank records, confirmations, on-chain transaction links). Keep descriptions factual and avoid making tax conclusions on your own.
When to get professional help (and what to bring)
If your activity is simple, a careful cleanup may be enough. But it’s wise to consult a qualified tax professional when the recordkeeping gets messy—especially if you have many platforms, high volume trading, DeFi activity you don’t fully understand, or significant missing history.
Bring a “ready-to-work” package:
- Your master inventory and transfer map
- All CSV exports and original statements (unmodified)
- Notes on any missing periods and what you tried to obtain
- Examples of tricky items (token swaps, wrapped assets, migrations)
- Your questions, written down: “Which documents support this transfer?” “What’s a reasonable way to handle incomplete records?”
This article is for education and organization only, not tax, legal, or financial advice. Rules can be nuanced, and the right approach depends on your facts and documentation.
Sources
Recommended sources to consult for verification of IRS terminology, recordkeeping expectations, and reporting concepts. (Note: confirm current IRS language on digital assets, basis, and record retention before filing.)
- Internal Revenue Service (irs.gov)
- Taxpayer Advocate Service (taxpayeradvocate.irs.gov)
- SEC Investor.gov (investor.gov)
- American Institute of CPAs (aicpa.org)
- FINRA (finra.org)