Form 8949 for Crypto: Line-by-Line Guide

Form 8949 is where your crypto sales get reported, line by line. This guide walks through Parts I and II, boxes A through F, the columns and adjustment codes, plus the aggregation rules and Schedule D shortcuts that simplify the job.

10 min read · Sources

A film-grain photograph over the shoulder of hands filling in a large blank gridded paper form with a pencil on a wooden desk under warm lamplight, with a blank notebook beside it.
Line by line, the long form gets done. Editorial image for CryptoTaxAI.

Form 8949 — Sales and Other Dispositions of Capital Assets — is where most crypto sales are listed, one row per transaction (or per aggregated group). Its totals flow to Schedule D, which flows to your Form 1040. If crypto tax has a "main form," this is it.

What Form 8949 is

Every sale, trade, or spend of crypto is generally a disposition of a capital asset, and Form 8949 is the IRS's worksheet for listing them. You report proceeds, basis, dates, and any adjustments; the form computes each gain or loss; and the column totals carry to Schedule D. You'll generally file a separate Form 8949 (or separate sections) for short-term and long-term transactions.

The flowForm 8949 (each transaction) → Schedule D (totals by category) → Form 1040 (taxable income). Software that "generates your tax report" is mostly generating these two forms.

If you still need the numbers themselves, start with how to calculate crypto gains and losses; for where this form sits inside the full return, see how to report crypto taxes.

Part I vs. Part II, and boxes A–F

At the top of each Form 8949 you check one box describing the transactions listed:

  • Part I — Short-term (held one year or less):
    • Box A — basis was reported to the IRS (e.g., on a 1099-B/1099-DA showing basis)
    • Box B — basis was not reported to the IRS
    • Box C — transactions not reported to you on a 1099 (most self-custody/DeFi sales land here)
  • Part II — Long-term (held more than one year): Boxes D, E, F mirror A, B, C.

For crypto, Boxes B, C, E, and F are the common ones — brokers historically reported proceeds without basis, and self-custody sales generate no 1099 at all. You'll often file multiple 8949s: one per checked box.

Columns (a) through (h), explained

ColumnWhat goes here (crypto)
(a) DescriptionWhat you sold: "0.5 BTC", "100 SOL". Be specific enough to identify the asset.
(b) Date acquiredPurchase date (MM/DD/YYYY). For grouped rows, "Various" is allowed — see below.
(c) Date soldDisposition date. For grouped rows, "Various" is allowed.
(d) ProceedsUSD received (sale price × quantity, minus nothing — fees go in basis).
(e) Cost (basis)What you paid + purchase fees. Leave blank for Box A/D only if basis was reported.
(f) Code(s)Adjustment code(s) from the instructions, if any (see below).
(g) AdjustmentsDollar amount of the adjustment (gain or loss).
(h) Gain or (loss)(d) − (e), adjusted by (g). Parentheses for losses.

Adjustment codes you'll actually use

Most crypto rows need no code. When they do, these are the common ones (the instructions list the full set):

  • Code B — basis shown on the 1099 is wrong, so you're correcting it. Classic crypto case: the broker reported proceeds but no (or wrong) basis.
  • Code W — wash-sale loss disallowed (a securities concept; note the crypto debate in our mistakes guide).
  • Code T — the transaction type needs clarification (e.g., proceeds shown but it wasn't really a sale).

When in doubt, read the current year's Form 8949 instructions — codes and their meanings are defined there, and they can change.

Aggregating many trades

Listing 500 individual trades is nobody's idea of fun. The instructions allow you to aggregate transactions within the same box category: one row per group with "Various" in the date columns and combined proceeds/basis. Typical grouping: all Box C short-term sales on one row, all Box F long-term sales on another.

Keep the detail anywayAggregation is a reporting convenience, not a record-keeping shortcut. Keep the per-trade detail in your files — if the IRS asks, "Various" won't satisfy them.

When you can skip to Schedule D

The Form 8949 instructions list narrow exceptions that let you enter totals directly on Schedule D instead of filing 8949 — generally when you have no adjustments to make and basis was already reported to the IRS. Most crypto filers (missing basis, self-custody sales, DeFi) don't qualify and should file the 8949. Read the current instructions before skipping it.

Common crypto mistakes

  • Proceeds in crypto, not USD. For crypto-to-crypto trades, column (d) is the USD fair market value of what you received — not the coin amount.
  • Forgetting fees in basis. Purchase fees raise basis; sale fees are handled per the instructions. Either way, don't ignore them.
  • Wrong box. No-1099 self-custody sales go in Box C/F, not A/D.
  • Mixing short and long. Part I and Part II are separate; totals flow to different Schedule D lines.
  • Copying the 1099 blindly. A 1099-DA shows what the broker knows — usually proceeds. Your basis and holding period come from your records.
Not tax advice. This guide is educational. Form line numbers, codes, and exceptions change — always use the current year's official Form 8949 and its instructions when you file.

Before you file

  • Proceeds in USD. For crypto-to-crypto trades, column (d) is the dollar fair market value of what you received — not the coin amount.
  • Fees accounted for. Purchase fees raise basis; sale fees are handled per the form instructions. Either way, don't ignore them.
  • Right box checked. No-1099 self-custody sales go in Box C or F, not A or D.
  • Short and long kept separate. Part I and Part II are separate; their totals flow to different Schedule D lines.
  • Per-trade detail kept. Aggregation is a reporting convenience — your own records must back every grouped row.

Sources

Frequently asked questions

Part I lists short-term transactions — assets held one year or less — and Part II lists long-term ones, held more than one year. In each part you check one box: A, B, or C in Part I and D, E, or F in Part II, based on whether your basis was reported to the IRS. For crypto, Boxes B, C, E, and F are the common ones, and you'll often file multiple copies of the form — one per checked box.
Most crypto rows need no code at all. The common ones are B — the basis shown on the 1099 is wrong, so you're correcting it; W — a wash-sale loss disallowed; and T — the transaction type needs clarification. The full set is defined in the current year's Form 8949 instructions, and codes can change.
Transactions within the same box category can be aggregated: one row per group with "Various" in the date columns and combined proceeds and basis. Keep the per-trade detail in your own files, though — aggregation is a reporting convenience, not a record-keeping shortcut. The instructions also list narrow exceptions that let you enter totals directly on Schedule D, generally when you have no adjustments and basis was already reported to the IRS; most crypto filers don't qualify.

Keep learning