Your 1099-DA is almost certainly not your tax bill

Three places cost basis disappears

Basis is what you paid, plus the costs of getting it. It rarely vanishes in one dramatic event. It leaks out at three predictable seams.

Reviewed September 2026.

The three seams

Each one produces the same symptom on the form: proceeds with nothing, or zero, next to them.

Transfers between your own wallets

The sending venue knows the purchase. The receiving venue knows only that units arrived. Unless your records tie the withdrawal to the deposit, the receiving side treats those coins as having no known cost, and some software books the transfer as a sale on one side and a free acquisition on the other. The same coins get taxed twice or their long-term holding period resets to the arrival date.

Symptom: a large short-term gain on coins you have held for years, or “missing purchase history” warnings in your software.

Assets that arrive with no history

Closed platforms, exchanges that purged old data, early token sales, OTC purchases paid by wire, mining payouts, airdrops, coins received as payment, DeFi positions you exited into a wallet. None of these leave a basis record at the broker where you eventually sell.

Symptom: box 9 checked, box 1g blank, box 12a showing units transferred in.

Fees, wraps and swaps booked as new lots

A swap is a disposal and a new acquisition; the new token’s basis is its value at the swap. Gas paid in a token is a small disposal of that token. Wrapping and bridging have no IRS guidance directly on point, and tools disagree on whether they are sales. Every extra “sale” splits lots, moves basis, and can turn long-term into short-term.

Symptom: proceeds in your software higher than the sum of your 1099-DAs, and a long tail of tiny disposals.

The reconstruction list

Run it in this order. Each step depends on the one before.

  1. Inventory every venue and walletEvery exchange, broker app, payment app with crypto, and every self-custody address by chain, back to your first purchase. Include ones you closed.
  2. Pull complete historiesFull CSV exports, not tax-report summaries. For closed accounts, search email for trade confirmations, statements and data-export notices.
  3. Add on-chain historyImport each self-custody address through a block explorer export or read-only address import. Never share a seed phrase or private key with anyone for this.
  4. Match transfersPair each outbound with its inbound by asset, units less the network fee, time window and transaction hash. Mark matched pairs as self-transfers.
  5. Carry original lots throughMatched transfers keep the original acquisition date and basis. That is what preserves long-term treatment.
  6. Log what still has no basisPut every orphan on the Missing basis sheet: asset, units, where it arrived, and what evidence you have.
  7. Search for evidenceBank and card statements for funding wires, emails, old screenshots, wallet history showing the purchase address. Assign basis only where evidence supports it.
  8. Record income lotsStaking, mining, airdrops and payments at fair market value when received, with the price source. That value is the lot’s basis.
  9. Classify swaps, wraps and bridgesSwaps as disposals. For wraps and bridges, choose one position, apply it everywhere, and write it down.
  10. Set lots wallet by walletSince January 1, 2025, basis is tracked per wallet and account. Confirm your tool is not using a single pool across everything.
  11. Reconcile to each 1099-DAProceeds per broker should tie to box 1f. Differences are missing rows, duplicates, time zones or fee treatment until proven otherwise.

When the records are really gone

Reasonable reconstruction is normal. Invention is not.

The taxpayer carries the burden of showing basis. Where purchase records no longer exist, reconstruction from indirect evidence is common: a bank wire to an exchange on a date, followed by a purchase of a known amount, is evidence. A guess entered to make a number smaller is not.

EvidenceStrengthNote
Exchange CSV or trade confirmationStrongKeep the original file, not only the tool import.
Bank or card statement plus on-chain arrivalGoodTie the fiat amount, date and units together.
Email receipts, platform noticesGoodSave as PDF with headers visible.
Screenshots of past balancesPartialSupports holdings and dates, weak on price paid.
Memory, averages, “about what it cost then”WeakTake it to a professional before using it on a return.

If basis cannot be supported, reporting it as zero is the conservative default. It overpays but does not misstate. A CPA, enrolled agent or tax attorney can tell you whether your evidence supports more than that on your facts.

Revenue Procedure 2024-28 provided a transition safe harbor for moving from a single pool to wallet-by-wallet basis at the start of 2025, with its own timing rules. If you relied on it, keep the allocation record with this year’s workpapers.