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.

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.
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
| Column | What goes here (crypto) |
|---|---|
| (a) Description | What you sold: "0.5 BTC", "100 SOL". Be specific enough to identify the asset. |
| (b) Date acquired | Purchase date (MM/DD/YYYY). For grouped rows, "Various" is allowed — see below. |
| (c) Date sold | Disposition date. For grouped rows, "Various" is allowed. |
| (d) Proceeds | USD 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) Adjustments | Dollar 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.
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.
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
Keep learning
- How to Report Crypto on Your Tax Return — the full filing picture.
- Cost Basis Methods Explained — where column (e) comes from.
- Free Crypto Tax Calculator — estimate one trade's gain.