IRS Form 8949 — officially titled Sales and Other Dispositions of Capital Assets — is the document you use to report capital gains and losses from investments, including cryptocurrency. While many taxpayers use Form 8949 in conjunction with Schedule D (Capital Gains and Losses), crypto investors face unique challenges because every transaction must be tracked and reported individually.
Form 8949 acts as the detailed ledger that supports the summary figures you enter on Schedule D. The IRS requires you to list each sale or disposition of a capital asset, including:
For cryptocurrency, this applies to selling crypto for fiat currency, trading one crypto for another, spending crypto to buy goods or services, and even using crypto to pay for fees in certain contexts.
Unlike stocks or bonds, which are typically held with a single brokerage that provides consolidated tax forms, cryptocurrency is often spread across multiple exchanges, wallets, and decentralized platforms. This fragmentation means you must consolidate data from many sources. Additionally, crypto transactions can involve forks, airdrops, staking rewards, and DeFi activities — each with its own tax implications that must be reflected on Form 8949.
Form 8949 is divided into two main parts:
Each part requires you to report transactions in one of three categories: (A) transactions reported on a 1099-B with basis reported to the IRS, (B) transactions reported on a 1099-B without basis reported, or (C) transactions not reported on a 1099-B. Most crypto transactions fall into category (C) because exchanges often do not issue 1099-B forms for crypto, or if they do, they may not report cost basis.
The distinction matters significantly for tax rates. Short-term gains are taxed as ordinary income, while long-term gains benefit from preferential rates (0%, 15%, or 20% depending on your income). When filling out Form 8949, you must carefully separate your transactions by holding period.
Cost basis is the amount you paid to acquire the asset, including commissions and fees. Proceeds is the amount you received when you sold or disposed of the asset. The difference between proceeds and cost basis is your capital gain or loss. For crypto, you must also adjust basis for forks, airdrops, and mining rewards that you've previously included in income.
Start by compiling a complete record of every crypto transaction during the tax year. Export transaction histories from all exchanges, wallets, and DeFi platforms you used. Include:
You must choose a method to determine which specific units of crypto you're selling. Common methods include:
Your choice affects your cost basis and, consequently, your gain or loss. Once you choose a method for a tax year, you should apply it consistently unless you have a valid reason to change.
For each transaction, you'll enter:
Your cost basis is the anchor of your gain/loss calculation. For purchased crypto, it's the purchase price plus any fees or commissions. For received crypto (e.g., airdrops, forks), the basis is the fair market value on the date you received it, which you must include as income. For mined crypto, basis is the fair market value at the time of receipt, also included as income.
If you've held crypto across multiple wallets or exchanges, you may need to track basis across platforms. This is one of the most challenging aspects of crypto tax reporting.
Once you have proceeds and cost basis, the calculation is straightforward:
Gain/Loss = Proceeds − Cost Basis
If the result is positive, you have a gain. If negative, a loss. These totals flow to Schedule D, and then to your Form 1040.
These events require special attention:
One of the biggest risks is poor record-keeping. Without complete records, you may guess or estimate, which can lead to inaccuracies and potential penalties. Maintain a dedicated spreadsheet or use crypto tax software that can generate a comprehensive transaction ledger. Save all exchange export files, wallet histories, and any correspondence related to your transactions.
Situation: You bought 1 BTC on Jan 10, 2025 for $40,000. On Feb 15, 2025, you bought 0.5 BTC for $22,000. On Nov 1, 2025, you sold 0.75 BTC for $50,000 when BTC was trading at $66,667 per coin.
Using FIFO: The first 0.75 BTC sold comes from the Jan 10 purchase. Cost basis = 0.75 × $40,000 = $30,000. Proceeds = $50,000. Gain = $20,000 (short-term since held less than a year).
Using Specific Identification: You could instead designate the 0.5 BTC from Feb 15 and 0.25 BTC from Jan 10. Cost basis = (0.5 × $22,000) + (0.25 × $40,000) = $11,000 + $10,000 = $21,000. Gain = $29,000.
This example shows how your choice of method directly impacts your reported gain.
| Method | How It Works | Best For | Tax Impact |
|---|---|---|---|
| FIFO | Oldest units sold first | Long-term holders with older, lower-cost coins | Generally results in higher gains if asset appreciated |
| LIFO | Newest units sold first | Short-term traders who want to minimize gains in a rising market | May result in lower gains if recent purchases are at higher prices |
| Specific ID | You choose which units to sell | Investors who want precise control over tax outcomes | Flexible — you can optimize based on your tax situation |
Note that you must be able to substantiate your chosen method with adequate records. The IRS generally expects consistency from year to year.
⚠️ Risk Warning
Cryptocurrency markets are volatile, and tax rules surrounding digital assets are complex and subject to change. The IRS has issued guidance, but many gray areas remain, and state tax treatments may differ. Filing inaccurate returns can result in penalties, interest, or audits.
This guide is for educational purposes only and does not constitute financial, legal, or tax advice. Tax laws vary by jurisdiction and your personal situation. You should consult a qualified tax professional for advice specific to your circumstances. Always verify current IRS guidance and any updates before filing.
For the most up-to-date information, refer to the official IRS website and consult with a tax advisor who understands cryptocurrency.
Yes. The IRS requires you to report all dispositions of capital assets, regardless of the amount. Even small trades, such as buying coffee with crypto or exchanging $5 worth of tokens, are reportable. However, de minimis exceptions do not apply for crypto.
Yes. You must report all crypto transactions, regardless of where they occur. If you hold assets on a foreign exchange, you may also have FBAR (FinCEN Form 114) or FATCA reporting obligations if aggregate foreign account values exceed certain thresholds.
Yes. Capital losses from crypto can offset capital gains. If your losses exceed your gains, you can deduct up to $3,000 ($1,500 if married filing separately) against ordinary income per year, with the remainder carried forward to future years.
Form 8949 provides the detailed transaction-by-transaction breakdown. Schedule D summarizes the totals from Form 8949 and calculates your overall net capital gain or loss. Both are typically filed together.
Generally, receiving crypto as a gift is not a taxable event for the recipient at the time of receipt. However, when you later sell or dispose of it, you must report the transaction. Your basis depends on whether it was a gift or inheritance. Consult a tax professional for specific rules.
Staking rewards are generally taxed as ordinary income at the time you receive them (at fair market value). That value becomes your cost basis. When you later sell the staked tokens, you report the sale on Form 8949 using that basis.
If you cannot determine the cost basis, the IRS generally considers the basis to be zero, which would result in the full proceeds being taxable as a gain. To avoid this, make every effort to reconstruct your basis using transaction histories, bank statements, and any available records.
Yes. Many reputable crypto tax platforms can import your transaction data, calculate gains/losses, and generate a completed Form 8949 and Schedule D. These tools can save time and reduce errors, but you remain responsible for the accuracy of your return. Always review the output carefully.