Form 8949 is the tax form where your crypto gains and losses actually live. Everything else — software imports, 1099-DA reconciliation, basis adjustments, wash sale gymnastics — eventually resolves into a row on Form 8949. Get the form right and your return is clean. Get the form wrong and you either overpay or trigger a CP2000 notice when the AUR system matches your return against the 1099s it already has. Here's how to fill it without creating a problem.

What Form 8949 Does

Form 8949 reports every sale or disposition of a capital asset. For crypto, that includes selling for USD, swapping one coin for another, spending crypto on goods or services, and most DeFi dispositions. The form feeds Schedule D, which nets your gains and losses and drops the final number on Form 1040 Line 7.

Form 8949 has two parts:

Each part has three boxes to check. You pick one box per Form 8949 page, so multiple box situations require multiple pages. The boxes are the entire reconciliation system between your return and the 1099s the IRS already has.

The Six Boxes Explained

Short-Term (Part I)

Long-Term (Part II)

Every crypto transaction belongs in one of these six buckets. If you had 400 trades across Coinbase, Kraken, and a self-custody wallet, you probably need four or five separate Form 8949 pages — one per box — or a summary statement under the attached-statement rules.

The 1099-DA Transition

Starting with 2025 calendar-year transactions, centralized exchanges are required to issue Form 1099-DA reporting gross proceeds under IRC §6045. Basis reporting phases in for 2026 transactions under §6045A. For 2025 returns filed in 2026, most centralized-exchange transactions will land in Box B or Box E — proceeds reported, basis not. For 2026 transactions, the mix shifts toward Box A and Box D as basis reporting comes online.

Pre-2025 transactions that never hit a 1099 — Binance International, old Gemini ActiveTrader history without 1099, decentralized exchanges, self-custody — continue to land in Box C or Box F. The IRS has no third-party proceeds number to match those against.

Column-by-Column Walkthrough

Each Form 8949 row has eight columns. Filling them correctly is the whole game.

Column (a) — Description of property

The token and quantity. "0.5 BTC" or "1.25 ETH." Enough detail to identify the lot.

Column (b) — Date acquired

The date you took control of the specific lot being sold. For purchased coins, the purchase date. For mined, staked, or airdropped coins, the date of receipt. "Various" is acceptable if the sale draws from many lots, but the IRS prefers specificity.

Column (c) — Date sold or disposed

The date of the sale, swap, or spend. Crypto-to-crypto swaps are dispositions; the date of the swap is the date to enter.

Column (d) — Proceeds

The USD value of what you received on the disposal date, net of fees. For a BTC-for-ETH swap, the proceeds are the USD value of the ETH received. For a sale in USD, the net USD received after exchange fees.

Column (e) — Cost or other basis

USD basis of the asset disposed. For purchased coins, what you paid plus purchase fees. For mined coins, FMV at mining. For airdrops, FMV at receipt. See crypto mining self-employment tax on mined basis and NFT capital gains tax on NFT basis specifics.

Column (f) — Code(s)

The adjustment codes that tell the IRS why your numbers differ from the 1099. The most common crypto codes:

Column (g) — Amount of adjustment

The dollar adjustment corresponding to the code(s) in column (f). Signed: positive for additional gain, negative for additional loss.

Column (h) — Gain or loss

(d) − (e) + (g). The signed result. The column that flows to Schedule D.

Worked Example: Reconciling a 2025 Coinbase 1099-DA

Coinbase 1099-DA shows gross proceeds of $48,200 for 2025 and no basis reported (Box B territory). Your own records show you sold 1.2 BTC with a total cost basis of $28,400, held from April 2024 — long-term, so Box E not B. Exchange labeled it all short-term on the 1099-DA because of an account migration. You need:

By filing with code T, you're explicitly telling the IRS: "Yes, I have the 1099, I'm reporting the same proceeds, and here's why my holding period is different." AUR will match cleanly. Without the code, you'll get a CP2000.

Attached Statement Rules for Large Volumes

If you have more than a handful of trades, Form 8949 entry-by-entry is miserable. The instructions allow a summary entry per Form 8949 page if you:

  1. Enter a single line with "See attached statement" in column (a), totals in columns (d), (e), and (h), and appropriate box check.
  2. Attach a detailed statement showing each transaction with the same eight columns.
  3. Mail the statement with Form 8453 if e-filing, or include with the paper return if filing paper.

For active traders, a single-page summary per box with a 200-page PDF attachment is clean. For casual investors with 20 trades, line-by-line entry is easier.

Cross-Year Issues: Lost Basis and Ghost Trades

Every tax season, we see the same three problems:

Lost basis from a defunct exchange. FTX, Celsius, Voyager, BlockFi. The exchange is gone and your transaction history with it. The IRS default position when you cannot prove basis is zero basis — meaning the entire proceeds are gain. Reconstruct by cross-referencing your bank records (wires to the exchange), your own wallet history, and any annual statements you saved. A defensible reconstructed basis always beats zero.

Ghost trades from the 1099-DA. Exchanges sometimes report wash transactions — a coin moving between accounts you control — as if they were sales. Override with code O and a note.

Wallet-by-wallet under Rev. Proc. 2024-28. Starting in 2025, the IRS requires basis tracking per wallet, not universally pooled. If your software is pooling across wallets, your 2024 basis is probably slightly off and your 2025 basis will be substantially off unless you run the per-wallet conversion.

Common Mistakes That Trigger CP2000 Notices

Related Reading

Everything that produces a Form 8949 row eventually lives elsewhere on the return. For tax-loss harvesting that drives losses onto the form, crypto tax loss harvesting. For NFT-specific entries with the collectibles flag, NFT capital gains tax. For mining income basis, crypto mining self-employment tax. For theft-loss entries that bypass Form 8949 entirely, crypto scam write-off and crypto theft loss deduction.

Got a 1099-DA that doesn't match your records?

Bad 1099-DA data is the single most common reason we see CP2000 notices land this year. If the numbers on the form don't match what you actually did — fix it before you file, not after. Call (813) 229-7100 for a free consultation, or book at https://getirshelp.com/contact. Straight answers, no pitch.