Complete Guide
Crypto Tax Guide: Never Get Surprised by the IRS Again
Crypto tax problems usually come from operational sloppiness, not from the tax forms themselves. This guide shows how to classify taxable events, choose a defensible cost-basis method, use Koinly, TaxBit, or CoinTracker intelligently, prepare Form 8949 and Schedule D, harvest losses without relying on bad folklore, and keep records strong enough to survive an IRS question later.
1. Foundation
For U.S. taxpayers, crypto is generally treated as property, which means every disposal can create a capital gain or loss. Selling bitcoin for dollars is a taxable event, but so is swapping ETH for SOL, spending USDC on goods, converting one token to another inside a wallet, or using appreciated coins to pay transaction fees. Transfers between your own wallets are not taxable if you truly maintain ownership from start to finish, but they become a recordkeeping problem if the receiving wallet loses the original acquisition data. Ordinary income can also arise when you receive coins from staking rewards, mining, airdrops, referral bonuses, or compensation. The fair market value at receipt becomes ordinary income and also becomes the cost basis for the lot you now own. The most reliable way to stay out of trouble is to separate events into three buckets as you import data: non-taxable transfers, capital disposals, and ordinary-income receipts. If software cannot tell those apart, you still have cleanup work to do.
Cost basis is the second major decision because it determines which lot you are treated as selling. FIFO assumes the oldest units are sold first. HIFO aims to sell the highest-cost units first, which often reduces gains or increases losses in rising markets. Specific identification can produce a similar result, but only if your records show exactly which units left your control and you apply the method consistently. Some software platforms support a wider range of lot-selection rules than others. Koinly is strong for users with many exchanges and broad integrations, CoinTracker is often praised for a polished interface and simpler workflows, and TaxBit is common among users who have exchange-issued tax reports or accountant-driven processes. The right tool depends less on marketing and more on whether it imports your venues correctly, lets you resolve transfers cleanly, supports your preferred basis method, and produces export files your tax preparer can actually use.
Form 8949 and Schedule D are where the recordkeeping work becomes visible. Form 8949 lists each sale or disposal, usually with acquisition date, sale date, proceeds, cost basis, and resulting gain or loss. Schedule D summarizes those totals into short-term and long-term buckets and flows them into the return. If you have hundreds or thousands of trades, the software may attach a substitute statement instead of typing every line directly into the PDF, but the underlying math still has to reconcile. Review totals before filing: proceeds on Form 8949 should agree with the exports from your chosen software, and the split between short-term and long-term should make sense given your holding periods. If the software shows large blocks of unknown basis, missing acquisition dates, or negative holdings in a wallet, you are not ready to file just because the report exists.
Loss harvesting deserves special attention because crypto investors often hear outdated or oversimplified advice. Under current U.S. law, the wash sale rule in Section 1091 generally applies to securities, and crypto is not currently treated as a security for that specific rule in the same way stocks are. That means many taxpayers currently harvest crypto losses and buy back the same asset immediately without triggering the classic wash-sale disallowance. But that is not a license for careless behavior. You still need an actual sale, a real disposition timestamp, and a defensible record that the loss occurred. Congress could change the rule later, and sham transactions or circular self-dealing can still invite scrutiny. Recordkeeping is therefore part of the tax strategy: keep CSV exports, API pull dates, screenshots of major transactions, wallet addresses, and notes on any manual adjustments. If you ever have to explain why a loss is real, a clean audit trail matters more than a clever tactic.