Key takeaways
- Every disposal is one line. Sells, crypto-to-crypto trades, and spends each get their own row on Form 8949.
- Six boxes, two holding periods. Short-term uses A, B, C and long-term uses D, E, F, chosen by whether basis was reported to the IRS.
- Codes B and E fix bad basis. When a broker reported the wrong basis, an adjustment code and a column (g) amount correct your gain.
- Your CSV becomes your 8949. Each disposal row maps cleanly to one line, which is why a clean export matters.
If the 1099-DA is what the broker tells the IRS, Form 8949 is what you tell the IRS. It is the detailed ledger of every capital asset you disposed of during the year, and for crypto investors it is usually the longest form in the return, because every swap counts. Understanding its columns and boxes is the difference between a crypto tax return that matches the IRS records and one that triggers a notice. This crypto tax Form 8949 guide walks through the form step by step and column by column, explains the six boxes, shows how adjustment codes fix a wrong cost basis, and maps a real exchange CSV onto the lines.
What Form 8949 is for
Form 8949 is titled "Sales and Other Dispositions of Capital Assets." It exists so the IRS can see the detail behind your capital gains, not just a total. Stocks, real estate, and crypto all land here. Because the IRS treats cryptocurrency as property, every time you part with crypto, you have a disposition, and that disposition belongs on this form. Every one of those lines feeds your capital gains total for the year.
The form feeds Schedule D. Schedule D shows the big-picture netting of all your gains and losses, but it relies entirely on the line-by-line detail you provide here. Think of Form 8949 as the receipts and Schedule D as the summary tape. It is also just one piece of the return: our crypto tax forms hub covers how the 8949 fits together with the 1099-DA, Schedule 1, and the rest.
What counts as a disposal
A disposal is any event where you give up ownership of a crypto asset. For tax purposes that is broader than just selling for cash.
| Crypto event | On Form 8949? | Why |
|---|---|---|
| Sell crypto for USD | Yes | Disposition of property for cash. |
| Trade one coin for another | Yes | You disposed of the coin you gave up. |
| Spend crypto on goods | Yes | Spending is a disposal at fair market value. |
| Buy crypto with USD | No | Acquisition only. Sets your basis. |
| Hold crypto | No | No disposition has occurred. |
| Move to your own wallet | No | A transfer, not a sale. Basis carries. |
What does not go on Form 8949: crypto income
Form 8949 only handles capital gains and losses. Crypto you earn, such as staking rewards, mining income, airdrops, and referral bonuses, is ordinary income at fair market value when you receive it, reported on Schedule 1 (or Schedule C if it is a business). That fair market value then becomes your cost basis. When you later sell or swap those earned coins, that disposal does go on Form 8949, and the income you already reported keeps you from being taxed twice on the same dollars.
How to fill out crypto tax Form 8949: 6 steps
Here is the whole crypto tax Form 8949 workflow at a glance. Each step links to the deeper section below that covers its columns, boxes, or codes.
| Step | What you do |
|---|---|
| 1. Export every transaction | Pull complete history from every exchange and wallet, not just the platforms that sent you a tax form. |
| 2. Establish cost basis per lot | Match each disposal to the specific lot you sold and its purchase cost, including fees. |
| 3. Split short-term and long-term | Held one year or less goes in Part I. Held more than a year goes in Part II at lower capital gains rates. |
| 4. Pick the right box | A/B/C for short-term, D/E/F for long-term, based on what was reported to the IRS (the six boxes). |
| 5. Enter each disposal | Description, dates, proceeds, cost basis, plus any adjustment code in columns (f) and (g). |
| 6. Total and carry to Schedule D | Subtotal each box and move the totals to Schedule D, which nets your final capital gain or loss. |
Steps 1 and 2 are where crypto tax returns are won or lost. If the export is incomplete or the cost basis is missing on transferred coins, every line downstream inherits the error. The rest of this guide unpacks each step in detail.
The columns of Form 8949
Each line on Form 8949 has the same set of columns. Filling them correctly is the whole job.
- Column (a) Description. What you sold, such as "0.5 BTC" or "1,000 USDC." Identify the asset and quantity.
- Column (b) Date acquired. When you originally bought or received the specific lot you disposed of.
- Column (c) Date sold or disposed. When the disposal happened.
- Column (d) Proceeds. The fair market value you received, in US dollars, at the moment of disposal.
- Column (e) Cost basis. What you originally paid for that lot, plus acquisition costs.
- Column (f) Adjustment code. A letter code when something needs correcting, such as B for a wrong reported basis.
- Column (g) Adjustment amount. The dollar amount of the correction that goes with the code.
- Column (h) Gain or loss. Proceeds minus basis, plus or minus any adjustment.
The six boxes: A/B/C and D/E/F
Form 8949 is split into two parts. Part I is for short-term dispositions, those you held one year or less, taxed at ordinary rates. Part II is for long-term dispositions, those held more than a year, taxed at the lower long-term capital gains rates. Within each part, you choose a box based on whether a broker reported your basis to the IRS.
| Box | Holding period | When to use it |
|---|---|---|
| A | Short-term | Basis was reported to the IRS on a broker form. |
| B | Short-term | Reported on a form, but basis was not reported to the IRS. |
| C | Short-term | Not reported on any broker form. |
| D | Long-term | Basis was reported to the IRS on a broker form. |
| E | Long-term | Reported on a form, but basis was not reported to the IRS. |
| F | Long-term | Not reported on any broker form. |
For many crypto investors, a lot of early activity falls into boxes C and F, because no broker form covered it. As the 1099-DA phases in, more activity will land in boxes A and D, with cost basis reported. The transferred-in lots, where proceeds were reported but basis was not, are the classic B and E cases. One niche case worth flagging: NFTs that count as collectibles are taxed at up to 28% long-term, so keep collectible NFT disposals separately identifiable in your records.
Adjustment codes: fixing a wrong basis
The most useful columns for crypto filers are (f) and (g), the adjustment code and amount. They exist precisely because broker basis is often wrong or missing for crypto. The two codes that matter most are B and E.
- Code B (short-term): the basis reported to the IRS on the broker form was incorrect. You report the proceeds and the broker basis, enter code B in column (f), and put the dollar correction in column (g) so the gain is right.
- Code E (long-term): the same situation for a long-term disposition.
Without code B, that line would show a $30,000 gain. With the adjustment, it shows the true $8,000. This is the mechanism that protects you from the transferred-in zero-basis problem, but only if you have the records to back up the $22,000.
Every Form 8949 adjustment code
B and E do the heavy lifting for crypto, but the form has a full alphabet of codes. If a line needs more than one, you enter the codes together in column (f) and combine the adjustments in column (g).
| Code | When to use it |
|---|---|
| B | Basis reported to the IRS was incorrect (short-term or long-term as placed). |
| E | Selling expenses or option premiums not reflected in the proceeds or basis reported. |
| H | Excluding gain on the sale of a main home. |
| L | A nondeductible loss, such as a personal-use loss, other than a wash sale. |
| N | You received the form as a nominee for someone else's transaction. |
| Q | Qualified small business stock gain exclusion. |
| T | The holding period category on the broker form was wrong (short reported as long or vice versa). |
| W | A wash sale loss that must be disallowed. Applies to securities such as crypto ETFs, not to directly held crypto. |
| X | Exclusion for DC Zone or qualified community assets. |
Crypto filers touch B, E, T, and occasionally W in the same return. W deserves a note: the wash sale rule does not apply to coins you hold directly, but it fully applies to spot crypto ETFs, which are securities.
Hundreds of trades to put on Form 8949?
A busy crypto year can mean thousands of lines. We turn your raw exchange and wallet history into a clean, complete Form 8949 with the right boxes, codes, and basis.
See how it worksHow your exchange CSV maps to Form 8949
Most crypto filers never hand-write Form 8949. Instead, an exported CSV of transactions becomes the source data, and each disposal row maps to one line. Knowing the mapping helps you spot errors before they reach the IRS.
| CSV column | Form 8949 column | Notes |
|---|---|---|
| Asset + amount sold | (a) Description | For example "0.75 ETH." |
| Acquisition date | (b) Date acquired | From the matching buy lot. |
| Disposal date | (c) Date sold | Sets short vs long term. |
| Sale value (USD) | (d) Proceeds | FMV at disposal, net of fees. |
| Cost (USD) | (e) Cost basis | Purchase price plus fees. |
| Gain/loss | (h) Gain or loss | Should equal (d) minus (e). |
The two failure points are usually dates and basis. If your CSV does not track which specific lot you sold, the holding period and basis can be wrong, which is why a clean accounting method (such as consistent first-in-first-out or specific identification) across all wallets matters so much.
Accounting methods and why they matter
When you own several lots of the same coin bought at different prices, the basis you use on a given sale depends on which lot you are treated as selling. The method you choose changes the gain on every line of Form 8949, so it is one of the most consequential decisions behind the form.
- First-in, first-out (FIFO). The oldest lots are sold first. This is the common default and is simple, but in a rising market it tends to surface the lowest-basis, highest-gain coins first.
- Specific identification. You identify exactly which lot you are selling, which lets you choose, for example, a high-basis lot to minimize gain, provided you have the records and meet the identification requirements at the time of sale.
- Other methods. Variations like last-in, first-out or highest-in, first-out are sometimes used, but they require careful, contemporaneous records and consistency.
Whatever method you use, consistency and documentation are what make it defensible. Switching methods mid-stream, or claiming specific identification without records that prove which lot you sold, is how a reasonable position becomes an indefensible one.
How Form 8949 works with the 1099-DA in 2026
Starting with the 2025 tax year, brokers report your crypto proceeds to the IRS on Form 1099-DA. That form is what the broker says happened. Form 8949 is what you say happened, and the IRS matches the two. When the 1099-DA shows a missing or zero basis on transferred coins, your 8949 is where you fix it with your real records and an adjustment code. Reconcile every 1099-DA against your own history before filing, because a mismatch in either direction is what generates automated CP2000 notices proposing extra tax. Our guide to reconciling Form 1099-DA walks through the process.
| Form 1099-B | Form 1099-DA | Form 8949 | |
|---|---|---|---|
| Who prepares it | Traditional brokers (stocks; some crypto platforms historically) | Crypto brokers and exchanges, starting with 2025 activity | You (or your crypto tax software or professional) |
| What it shows | Proceeds, and often cost basis, for securities sales | Digital asset proceeds; cost basis only when the broker has it | Every disposal with your true cost basis, corrected as needed |
| What you do with it | Reconcile it against your records | Reconcile it, then fix wrong or missing basis on Form 8949 | File it with your return; totals flow to Schedule D |
One more change is coming. Crypto you buy at a broker starting in 2026 is a "covered" asset, meaning the broker must track and report its cost basis. As covered lots become the norm, more of your activity migrates from box B to box A (and E to D). Coins you bought before 2026 or hold in self-custody stay noncovered, so the basis-correction skills on this page will matter for years.
Common Form 8949 crypto mistakes
The form is unforgiving at scale, and the same capital gains errors recur across thousands of crypto tax returns.
- Accepting a zero basis. Letting a transferred-in lot show no basis, which inflates the gain. Use a basis adjustment code and your real records.
- Missing crypto-to-crypto trades. Treating only cash-outs as taxable and skipping the swaps, which are just as reportable.
- Wrong holding period. Misdating the acquisition of the specific lot sold, which flips short-term and long-term and changes the capital gains rate.
- Double-reporting transfers. Listing a wallet-to-wallet move as a sale because an exchange export labeled it as a withdrawal.
- Inconsistent data across platforms. Pulling clean data from one exchange and ignoring another, leaving gaps the IRS matching can flag.
Too many crypto transactions for Form 8949?
An active trading year can produce thousands of disposals, and DeFi or bot activity can produce tens of thousands. The IRS does not expect you to hand-type them, but it does expect the full detail to exist. You have two practical options.
- Attach a statement. Report consolidated totals for each box on Form 8949 with "see attached statement," then attach the line-by-line detail in the same format as the form. If you e-file and the detail cannot be transmitted, you send it with Form 8453 within three business days of acceptance.
- Use software or a professional. Crypto tax software generates the complete Form 8949 and the attachment automatically. Consumer tax software also caps how many transaction rows you can import, which is exactly when the consolidated-totals approach (or a professional preparing the whole package) earns its keep.
What you cannot do is skip trades or report a single net number with no detail behind it. The IRS matching runs against broker-reported proceeds, and unexplained gaps between your 1099-DA totals and your Form 8949 totals are what trigger notices.
Filing crypto tax Form 8949 with TurboTax or other software
TurboTax, H&R Block, and TaxAct can all build Form 8949 from imported transactions, and most crypto tax software exports a gain-loss CSV or a ready-made 8949 in a format they accept. The import path works well for simple, single-exchange years. It gets shaky when you have transferred coins with missing cost basis, more rows than the software allows, or years of history across many wallets, because the import faithfully reproduces whatever errors are in the source data.
If your situation is messy, fix the data before it reaches the tax software: reconcile every wallet, repair the cost basis, and generate one clean Form 8949. That is the core of what our crypto tax preparation service does, including the reconciliation and the attachment handling, so the numbers that reach your return are ones you can defend.
Form 8949 vs Schedule D
Once every line is entered, you total each box and carry the subtotals to Schedule D. Short-term box totals go to the short-term section, long-term box totals to the long-term section, and Schedule D nets them into your final capital gain or loss. The detail stays on the 8949, the netting happens on Schedule D, and the result lands on your Form 1040. Long-term capital gains are taxed at 0%, 15%, or 20% for most filers, while short-term gains are taxed at ordinary income rates.
If the netting produces a loss, Schedule D is also where the loss limit applies. Capital losses first offset capital gains without limit, then up to $3,000 of net loss per year ($1,500 if married filing separately) offsets ordinary income. Anything beyond that carries forward to future years, so a rough crypto year keeps paying you back at tax time.
| Form 8949 | Schedule D | |
|---|---|---|
| Role | Line-by-line detail of every disposal | Summary and netting of the totals |
| Granularity | One row per sale, trade, or spend | One line per box category |
| Output | Box subtotals | Your final capital gain or loss for Form 1040 |
When you do not need Form 8949
There are two situations where the form can be skipped. First, if you had no disposals during the year (you only bought and held), there is nothing to report and neither Form 8949 nor Schedule D is triggered by your crypto. Second, if every disposal was reported on a broker form with the correct cost basis sent to the IRS and nothing needs adjusting, the IRS lets you report those totals directly on Schedule D lines 1a or 8a and skip the 8949 detail.
Skipping the form does not mean skipping the question. Every Form 1040 asks whether you received or disposed of digital assets during the year, and you answer it under penalty of perjury whether or not you file a Form 8949. Our guide to the 1040 digital asset question covers how to answer it correctly.
In practice, most crypto filers cannot use the shortcut. Transferred coins arrive with missing basis, early activity was never covered by a broker form, and 1099-DA basis reporting is still phasing in. If any line needs a correction, that line belongs on Form 8949.
Records you need before you start
Every line on the form is only as good as the records behind it. Before building your crypto tax Form 8949, collect:
- Complete transaction exports from every exchange you used, not just the ones that sent a form.
- Wallet transaction history for self-custody activity, including DeFi swaps and NFT trades.
- Every 1099-DA or 1099-B you received, to reconcile against your own numbers.
- Purchase records proving cost basis for coins you transferred between platforms.
- Records of fees paid on acquisitions and disposals, which adjust basis and proceeds.
If exchange history is missing because a platform shut down or an account was closed, reconstruct it before filing. Estimated or zero basis is where returns lose real money.
Crypto Form 8949 video walkthrough
Form 8949 FAQ
What is Form 8949 used for?
What is the difference between Schedule D and Form 8949?
Do I report every crypto trade on Form 8949?
How do I know if I need Form 8949?
When do I not need Form 8949?
What records do I need for Form 8949?
What are the short-term and long-term boxes on Form 8949?
What is adjustment code B on Form 8949?
Can I summarize trades instead of listing them all?
What if my crypto has no cost basis on the form?
Does TurboTax generate a crypto tax Form 8949?
Can crypto losses on Form 8949 offset my other income?
Do staking and mining rewards go on Form 8949?
Do I file Form 8949 for crypto in an IRA?
The 2025/26 Crypto Tax Guide. Built by former Big 4 accountants.
A printable, step-by-step guide and checklist to reconcile every coin and wallet, recover missing cost basis, and file accurately before the deadline.
- Form 8949, Schedule D, and Schedule 1 walkthroughs
- How to handle staking, DeFi, NFTs, and lost coins
- The $0-basis 1099-DA trap (and how to avoid it)
- FBAR, Form 8938, and foreign exchange reporting