How to Report Crypto on Your Tax Return

how to file crypto taxes
Symptom First action Planning use
You swapped one coin for another and see no cash sale Treat the swap as a sale of the first coin and a purchase of the second, and give it its own line Swaps are taxable events, so scan your history for every swap, not just sales for dollars
A sale lost money List it anyway Losses still have to be reported, even when you came out behind
You hold coins on more than one exchange or wallet Track cost basis wallet by wallet The wallet-by-wallet method is required from Jan. 1, 2025, so keep a separate record per location
Your exchange sent a 1099-K Treat it as a totals report and rebuild cost basis from your own history It is typically issued where there are at least 200 transactions worth an aggregate of $20,000 or more, and it reports totals without cost basis

Figures in this table come from Gordon Law’s crypto tax reporting guide and Sprintax’s crypto tax overview.

Here is how to file crypto taxes: list each sale or swap on Form 8949, work out gain or loss from your cost basis, and carry the totals to Schedule D. Start by collecting full exchange records.

If you are new to the wider topic, our crypto guides for beginners cover the surrounding basics. This guide stays on the return itself: what to gather, how to calculate, where each number goes and what to check before you file.

What creates something to report

Crypto tax comes from disposing of or receiving coins, not from owning them. Sprintax notes that buying digital currency with dollars is not a taxable event, so a plain purchase gives you a cost basis but nothing to report yet. Tax arises when you sell.

Swapping is where many filers slip. Gordon Law explains that trading one crypto for another, such as ETH for ADA, is taxable, even though no dollars ever reach your bank account. Each swap behaves like a sale of the coin you gave up followed by a purchase of the coin you received.

Receiving crypto can also create income. Per Morgan Stanley, airdrops and staking rewards are taxed as ordinary income at fair market value when you gain dominion and control of them. This applies to rewards from the programs in how to earn free crypto. Gordon Law gives the pattern: the income amount is the USD fair market value at receipt, so 0.5 ETH received when ETH was worth $1,000 gives $500 of income.

Gather your records and tax documents

Your exchange is the first stop, but the document it gives you may not be enough. Exchanges must track transactions from Jan. 1, 2025 and report them on Form 1099-DA, according to Gordon Law. That form is the broker reporting document for digital assets, and it is the one to expect from a U.S. exchange for recent activity.

Some exchanges instead issue a 1099-K, which reports transaction totals without cost basis, so it cannot be copied straight onto your return. Whatever form arrives, download the full transaction history as well. Online Taxman warns that some exchanges restrict exports once you reach a certain transaction volume, so request your history before you need it and check the limits on each platform.

If you funded purchases through a payment app, the records still belong in the same file. Our guide on how to buy crypto on venmo shows where such purchases begin their paper trail.

For several exchanges and wallets, build one combined file. Online Taxman lists what specific identification requires you to show: the date and time each unit was acquired, its basis and fair market value, and the disposal details. Capture those fields for every location now, because gaps are hardest to fix after the filing deadline.

Work out cost basis and gain or loss

Cost basis is the original price you paid, including commissions and fees, as Morgan Stanley’s investor guide puts it. Gain or loss on each sale is the difference between what you received and that basis. Put each sale on its own spreadsheet row with columns for proceeds, cost basis and the result.

Years are handwritten on some of the file tabs.

Choose a basis method and stay with it

Online Taxman gives first-in, first-out (FIFO) as the default method, with specific identification as an optional alternative. Specific identification suits you only if you can document the exact units sold, since it needs the detailed records above. Once you use a method you cannot change it and must keep the same approach going forward, so decide before you file your first crypto return rather than after seeing the results.

Columns of figures with a handwritten note: the same row-by-row approach suits each sale’s proceeds, basis and result, though this page is a general investment table.

Split by holding period

Morgan Stanley states that crypto held for one year or less is typically taxed at ordinary income rates, while crypto held longer qualifies for long-term rates. Mark every row short-term or long-term, because the two groups are reported separately and taxed differently.

Coins and pens on a printed grid illustrate totalling gains and losses; physical coins here stand in generically for any asset.

Worked example: three trades from history to return

Picture an exchange history with three entries. The point is how each entry is treated, not the amounts.

Trade one: a purchase with dollars

The history shows a dollar purchase of a coin. It generates no line on the return, because a purchase is not taxable. Record the price paid plus fees as the cost basis and the date acquired, since both will matter later.

A written log of each trade is a simple way to keep dates and amounts together; this is a generic illustration, not a crypto record.

Trade two: a swap into another coin

Later the history shows that coin exchanged for a different one. This is a disposal, so it gets a line of its own on Form 8949. The coin you gave up is sold, with its holding period deciding whether the result is short-term or long-term. The new coin is purchased, and the value you received becomes its starting basis for the future.

Trade three: a sale at a loss

Finally the second coin is sold for dollars at less than its basis. This also gets a line on Form 8949, with the result entered as a loss. A loss is not left off because it feels like a non-event, and it is grouped by holding period like any gain.

With the three entries processed, the return has two lines to show. Your spreadsheet totals by short-term and long-term become the summary figures carried onto Schedule D.

Enter it on Form 8949 and Schedule D

Form 8949 is where each disposal is listed, and per Online Taxman it is filed together with your income tax return. Schedule D then summarizes the totals from that list. So the division of labour is simple: Form 8949 holds the detail line by line, and Schedule D holds the totals that feed into your overall tax.

Rates then apply to those totals. According to Gordon Law, short-term gains are taxed at your ordinary rate, from 10% to 37% for tax year 2024. Long-term gains are taxed at 0%, 15% or 20% depending on income. For 2024, a single filer reaches 15% from $47,026 and 20% above $518,900. Treat these as the thresholds for that year only and check the current year’s brackets before estimating a bill.

The practical consequence is plain: a position held longer than one year can face a lower rate, so the holding-period split is worth getting right rather than lumping everything together.

Report crypto losses

Gordon Law stresses that even if you lost money, it is crucial to report all your crypto activity. A losing sale goes on Form 8949 the same way a winning one does, grouped by holding period, and it then flows to Schedule D with the rest of your totals.

Reporting losses properly is also a record-keeping task. A loss is only as solid as the cost basis behind it, so keep the purchase date, price and fees for every lot you sell. If your exchange shows only totals, rebuild each loss from the full history before entering it.

Several exchanges and wallets

Gordon Law notes that from Jan. 1, 2025 investors must use a wallet-by-wallet method for cost basis. In practice, a coin bought on one exchange and moved to another wallet should be tracked with its own records at each location rather than blended into one pool.

Combine the exports into one sheet, label every row with its exchange or wallet, and match transfers between your own accounts so they are not mistaken for sales. If a platform limits exports, as Online Taxman describes, collect its history in parts and confirm that totals line up.

Where rules differ by country

The steps above follow U.S. practice. Other countries use their own forms, rates and treatment of losses, so check your national tax authority’s digital asset pages before copying any U.S. step. Even within the U.S., status matters. Sprintax reports that nonresidents pay tax at 30% on their income from cryptocurrency and cannot use prior-year losses.

Checkpoints before you file

  • Every swap has a line. A history with only dollar sales is incomplete if you traded between coins.
  • Each sale has a basis. If a row shows proceeds but no cost, trace the purchase before submitting.
  • Method is consistent. Your basis method should match the one you use in later years.
  • Holding periods are split. Short-term and long-term totals should be separate before they reach Schedule D.

Frequently asked questions

Question Answer
Does a 1099-B from my exchange cover everything? Online Taxman says a 1099-B from a crypto exchange does not account for the accounting challenges that come with cryptocurrencies, so keep your own basis records alongside it.
What happens if I file late? Sprintax says the late filing penalty is generally 5% of the unpaid tax for each month or part month the return is late.
Will the IRS notice crypto activity? Morgan Stanley’s guide says the IRS is paying attention to crypto, and exchange reporting on Form 1099-DA adds to the information available, so report every taxable disposal.