Form 8949 is where your crypto tax rubber meets the road. Every sale, every swap, every disposal—they all land here. Get it wrong and you're either overpaying taxes or inviting IRS scrutiny. This guide walks through every field, every checkbox, and every nuance of filling out Form 8949 correctly for cryptocurrency.
What Form 8949 Does
Form 8949 reports sales and other dispositions of capital assets. For crypto, that means:
- Selling crypto for fiat (BTC → USD)
- Trading crypto for crypto (ETH → USDC)
- Using crypto to buy goods or services
- Disposing of crypto through DeFi activities
- NFT sales
The form captures the details of each transaction: what you sold, when you bought it, when you sold it, what you received, what you paid, and your resulting gain or loss.
Form 8949 feeds into Schedule D, which summarizes your total capital gains and losses. Schedule D then flows to Form 1040, your main tax return.
Form 8949 Structure Overview
The form has two parts:
Part I: Short-Term Transactions (assets held one year or less)
Part II: Long-Term Transactions (assets held more than one year)
Each part has three checkbox options (A, B, C) based on how your transactions were reported:
- Box A: Basis reported to IRS (you received a 1099-DA with basis)
- Box B: Basis NOT reported to IRS (1099-DA without basis, or noncovered)
- Box C: No 1099-DA received (DEX trades, DeFi, etc.)
You'll likely need multiple copies of Form 8949—one for each checkbox category in each part.
The Checkboxes: Getting Them Right
Why Checkboxes Matter
The checkbox tells the IRS whether they already have information about your transaction. This affects how your return is processed:
- Box A checked: IRS expects your reported basis to match what the broker sent
- Box B checked: IRS has proceeds but not basis; your basis is not automatically verified
- Box C checked: IRS has no information; entirely dependent on your reporting
Determining Which Box to Check
Check Box A if:
- You received a 1099-DA with cost basis reported (starting 2026 tax year for covered securities)
- The basis on Form 8949 matches the 1099-DA exactly
Check Box B if:
- You received a 1099-DA
- The 1099-DA did NOT include cost basis
- (This is most 2025 tax year 1099-DAs)
Check Box C if:
- No 1099-DA was issued for this transaction
- DEX trades, DeFi activity, wallet-to-wallet sales
- Transactions on foreign exchanges without US reporting
Digital Asset Checkbox
Starting in recent tax years, Form 8949 includes a digital assets checkbox at the top. You must check this box if any transactions on that copy of the form involve digital assets (cryptocurrency, NFTs, etc.).
This creates separate visibility for crypto versus traditional securities.
Crypto Tax Guide is here
Moonscape's definitive guide to Bitcoin & crypto taxes provides everything you need to know to file your 2025 crypto taxes accurately.
Column-by-Column Breakdown
Let's walk through each column using a real example:
Transaction: You bought 2 ETH on January 15, 2025 for $6,000 total on Coinbase. You sold 2 ETH on November 30, 2025 for $7,200 on Coinbase. Coinbase sent you a 1099-DA with proceeds but no basis.
Column (a): Description of Property
Enter a clear description of what you sold.
Format: [Quantity] [Asset]
Examples:
- "2 ETH"
- "0.5 BTC"
- "1,000 USDC"
- "1 NFT (Bored Ape #1234)"
Our example: "2 ETH"
Tips:
- Be specific enough that someone could identify the asset
- For NFTs, include the collection name and token ID
- Don't include lengthy descriptions; the IRS just needs to identify the asset class
Column (b): Date Acquired
Enter the date you originally obtained this asset.
Format: MM/DD/YYYY
Our example: "01/15/2025"
Special cases:
"VARIOUS": If you're selling units acquired on multiple dates and using a method that pools lots (like average cost, which doesn't apply to crypto under current rules), you might enter "VARIOUS." However, for crypto using FIFO or specific identification, you should ideally list the specific date.
Inherited assets: Enter "INHERITED" and the date of the decedent's death.
Gifted assets: Enter the original acquisition date (when the donor acquired it), not when you received the gift.
Column (c): Date Sold or Disposed
Enter the date of the taxable event.
Format: MM/DD/YYYY
Our example: "11/30/2025"
Tips:
- Use the trade execution date, not settlement date
- For DeFi transactions, use the block timestamp
- Ensure this matches your 1099-DA (if applicable)
Column (d): Proceeds (Sales Price)
Enter the total amount you received from the sale in USD.
Our example: "$7,200.00"
What counts as proceeds:
- Cash or fiat received
- Fair market value of other crypto received (in a swap)
- Fair market value of goods/services received
Do NOT deduct fees here. Report gross proceeds. Fees are handled elsewhere.
Tips:
- Should match Box 2 on your 1099-DA (if applicable)
- For crypto-to-crypto swaps, this is the USD value of what you received
- Round to nearest dollar (or include cents—be consistent)
Column (e): Cost or Other Basis
Enter what you paid for the asset, including fees.
Our example: "$6,000.00"
What to include in basis:
- Original purchase price
- Exchange/broker fees at purchase
- Gas fees to acquire (if paid separately)
- Transfer fees to get the asset into your wallet
Tips:
- This is your "all-in" cost
- If you received the asset as income (airdrop, staking reward), basis equals the FMV at receipt
- For gifted assets, basis is generally the donor's basis
Column (f): Adjustment Code
Enter a code if you need to adjust your gain/loss calculation.
Common codes:
- W: Wash sale (loss disallowed) — currently doesn't apply to crypto
- O: Other (explain in Column g)
Our example: Leave blank (no adjustment needed)
When to use adjustments:
- If your 1099-DA basis is wrong and you're reporting the correct figure
- If there are special circumstances affecting the calculation
- In the future, if wash sale rules extend to crypto
Column (g): Amount of Adjustment
Enter the dollar amount of any adjustment.
Our example: Leave blank
Example where adjustment applies:
If your 1099-DA reports basis of $5,000 but your actual basis is $6,000 (broker didn't include fees), you'd enter:
- Column (e): $6,000 (your correct basis)
- Column (f): O
- Column (g): $1,000 (adjustment amount)
This tells the IRS you're reporting different from the 1099 and why.
Column (h): Gain or (Loss)
Calculate: Column (d) minus Column (e), plus or minus Column (g)
Our example: $7,200 - $6,000 = $1,200 gain
Tips:
- Losses are shown in parentheses: ($500)
- This is the taxable amount from this transaction
- Double-check arithmetic—math errors are common
Complete Example: Part I (Short-Term)
Let's fill out Part I for our example transaction:
Checkbox: B (1099-DA received, basis not reported to IRS)
Digital Asset Checkbox: Checked
| (a) Description | (b) Acquired | (c) Sold | (d) Proceeds | (e) Basis | (f) Code | (g) Adjust | (h) Gain/Loss |
|---|---|---|---|---|---|---|---|
| 2 ETH | 01/15/2025 | 11/30/2025 | $7,200 | $6,000 | — | — | $1,200 |
This transaction is short-term because it was held for less than one year (January to November 2025).
Part II: Long-Term Transactions
Identical format to Part I, but for assets held more than one year.
Example: You bought 1 BTC on March 10, 2024 for $65,000. You sold it on April 15, 2026 for $105,000.
Holding period: March 2024 to April 2026 = more than 1 year = long-term
| (a) Description | (b) Acquired | (c) Sold | (d) Proceeds | (e) Basis | (f) Code | (g) Adjust | (h) Gain/Loss |
|---|---|---|---|---|---|---|---|
| 1 BTC | 03/10/2024 | 04/15/2026 | $105,000 | $65,000 | — | — | $40,000 |
Long-term gains are taxed at preferential rates (0%, 15%, or 20% depending on your income).
Handling Multiple Transactions
Most crypto users have dozens or hundreds of transactions. Here's how to handle volume:
Option 1: List Every Transaction
If you have fewer than ~50 transactions, list each one individually on Form 8949.
Option 2: Summary Totals with Attachment
If you have many transactions:
- Enter summary totals on Form 8949 (one line per category)
- Attach a detailed statement showing every transaction
- Write "See Attached Statement" in column (a)
The statement should include all the same columns as Form 8949, formatted clearly.
Option 3: Use Tax Software
Software like Moonscape generates Form 8949 automatically with all transactions listed. You get:
- Properly sorted short-term vs long-term
- Correct checkbox selection
- Digital asset checkbox handling
- IRS-accepted format
Common Mistakes and How to Avoid Them
Mistake 1: Wrong Checkbox
Problem: Checking Box A when you should check Box B (or vice versa).
Why it matters: If you check Box A (basis reported), the IRS will try to match your numbers. If they don't have basis data, you'll get a notice.
Fix: Check the exact information on your 1099-DA. Basis reported → A. Basis NOT reported → B. No 1099-DA → C.
Mistake 2: Forgetting the Digital Asset Checkbox
Problem: Not checking the digital asset checkbox for crypto transactions.
Why it matters: This checkbox triggers crypto-specific processing. Missing it may cause issues.
Fix: If ANY transaction on that copy involves crypto, check the box.
Mistake 3: Using Wrong Holding Period
Problem: Reporting a transaction as long-term when it's short-term (or vice versa).
Why it matters: Short-term gains are taxed at ordinary income rates (up to 37%). Long-term rates max at 20%. Misclassifying can result in underpayment.
Fix: Calculate holding period precisely. One year and one day = long-term. One year exactly = short-term.
Mistake 4: Reporting Transfers as Sales
Problem: Including transfers between your own wallets as taxable sales.
Why it matters: Transfers aren't taxable events. Reporting them inflates your gains.
Fix: Only report actual disposals—sales, swaps, purchases of goods/services. Moving crypto from Coinbase to MetaMask is NOT reportable.
Mistake 5: Wrong Basis Calculation
Problem: Using incorrect cost basis (often forgetting to include fees).
Why it matters: Understating basis = overstating gain = overpaying taxes.
Fix: Include ALL acquisition costs: purchase price + exchange fees + gas fees.
Mistake 6: Not Matching 1099-DA Proceeds
Problem: Reporting different proceeds than what appears on your 1099-DA.
Why it matters: IRS matching systems flag discrepancies.
Fix: If your 1099-DA is correct, use that number. If it's wrong, report your correct number and use adjustment codes/columns to explain.
Mistake 7: Omitting DeFi Transactions
Problem: Only reporting centralized exchange trades because that's what 1099-DAs cover.
Why it matters: DeFi transactions are taxable. The IRS can trace blockchain activity. Omitting taxable events is underreporting.
Fix: Include ALL taxable events—DEX swaps, LP exits, yield harvests—using Box C.
Transferring to Schedule D
After completing Form 8949 (all copies), transfer totals to Schedule D:
Line 1b: Total short-term transactions from Box A
Line 2: Total short-term transactions from Box B
Line 3: Total short-term transactions from Box C
Line 8b: Total long-term transactions from Box A
Line 9: Total long-term transactions from Box B
Line 10: Total long-term transactions from Box C
Schedule D then calculates your overall net capital gain or loss.
Special Situations
Worthless Tokens
If your crypto became worthless (project rug-pulled, token went to zero):
- You can claim a loss equal to your basis
- Report as if sold for $0 proceeds
- Date sold: typically December 31 of the year you claim worthlessness
- Consider documenting why the token is truly worthless
Stolen Crypto
Theft losses are complicated post-2017 tax reform:
- Personal theft losses are generally not deductible
- Some exceptions for federally declared disasters
- If stolen from a business, different rules apply
- Consult a tax professional for theft situations
Hard Forks and Airdrops
Receiving new tokens via hard fork or airdrop:
- Taxable as ordinary income at FMV when received (if you have dominion and control)
- Your basis in the new tokens = the income you recognized
- Later sale of those tokens uses that basis
NFTs
NFT transactions go on Form 8949 like any other asset:
- Description: "1 NFT [Collection Name #ID]"
- Basis: what you paid (including gas to mint)
- Proceeds: sale price minus platform fees (or report gross and adjust)
Moonscape Form 8949 Generation
Moonscape automates the entire Form 8949 process:
- Import transactions from all exchanges and wallets
- Classify automatically as short-term or long-term
- Calculate correct basis using your chosen method
- Sort into appropriate checkbox categories
- Generate IRS-ready Form 8949 PDFs
- Include all DeFi transactions—not just 1099-DA items
The output is ready to file or hand to your CPA.
Filing Tips
E-File vs. Paper
- E-filing with detailed statement attachment is generally accepted
- If you have hundreds of transactions, the software should generate appropriate summaries
- Ensure your tax software supports Form 8949 attachments
Record Retention
Keep supporting documentation for at least 6 years:
- 1099-DAs received
- Transaction history exports
- Blockchain transaction hashes
- Your Form 8949 calculations
- Cost basis methodology documentation
Amendments
If you discover errors after filing:
- File Form 1040-X (Amended Return) with corrected Form 8949 and Schedule D
- Do this as soon as you discover the error
- Voluntary correction is viewed more favorably than IRS discovery
Key Takeaways
- Know your checkboxes – A (basis reported), B (no basis), C (no 1099)
- Check the digital asset box – Required for all crypto transactions
- Short-term vs long-term – Holding period determines your tax rate
- Include ALL disposals – Not just 1099-DA items
- Basis = all costs – Purchase price + fees
- Don't report transfers – Moving between your own wallets isn't taxable
- Use software – Manual Form 8949 at scale is error-prone
- Keep records – 6+ years minimum
Form 8949 is the foundation of crypto tax reporting. Getting it right ensures you pay exactly what you owe—no more, no less—and minimizes audit risk.
Further Reading
- Form 8949 Instructions (IRS)
- Schedule D Instructions (IRS)
- IRS Virtual Currency FAQ
- Publication 544: Sales and Other Dispositions of Assets
Start with Moonscape free to generate accurate Form 8949 reports from all your crypto activity.