
What does cost basis actually measure when you sell crypto?
Ralph buys one bitcoin, then another at a higher price. When he sells just one coin, the taxable gain can swing by thousands of dollars, depending purely on which accounting method the IRS applies to match that sale to a purchase price. Same sale, same proceeds, same investor, yet the tax bill isn't fixed until someone decides which coin, on paper, just got sold. That's what the rest of this comes down to: cost basis isn't a fact you look up. It's a number that shifts depending on the rules applied to it.
Cost basis is the fair market value of a cryptocurrency at the moment you acquired it, plus any transaction fees paid to get it. The formula that turns this into a tax number is simple: Capital Gain or Loss = Proceeds − Cost Basis. Proceeds means the fair market value of the crypto at the moment you disposed of it, whether that disposal was a sale for dollars, a trade for another coin, or using crypto to buy a product or service.
Three events trigger this calculation: selling crypto for fiat currency, swapping one crypto for another, and spending crypto on goods or services. Each one counts as a disposal in the eyes of tax authorities, even if no dollars ever hit a bank account. A trader who swaps ETH for SOL has technically sold the ETH, and owes tax on any gain between what that ETH originally cost and what it was worth at the moment of the swap.
If someone has no record of what they paid for a coin, the IRS treats the cost basis as $0. That turns the entire sale proceeds into taxable gain, which is the worst-case outcome, and it's why record-keeping matters more in crypto than in almost any other asset class.
Why does picking a cost basis method change what you owe the IRS?
The $0-basis scenario above shows what happens with no method at all. The more common case is the opposite problem: multiple purchase records exist, and the method chosen to match them to a sale changes the bill. Go back to Ralph with his two bitcoins, bought at different prices. If he sells one BTC, his taxable gain depends entirely on which coin the tax code says he sold. Matching the sale to the lower purchase price produces a larger taxable gain; matching it to the higher purchase price produces a smaller one. Same sale, same proceeds, a meaningful swing in taxable income based purely on accounting method.
Anyone who has bought crypto at multiple price points needs an accounting method, not just a basis number. Common methods include FIFO (first coins bought are the first sold), LIFO (last coins bought are the first sold), and specific identification (the investor picks exactly which coin, by purchase date and price, was sold). Different countries mandate different approaches. France's tax authority, the DGFIP, requires a method called PVCT (plus values de cessions d'actifs numériques), which calculates basis by dividing total acquisition cost by total portfolio value, then applying that ratio to the sale price: Sale price − (total acquisition cost × [sale price / total portfolio value]). That formula treats an entire portfolio as one blended pool rather than letting investors cherry-pick individual coins, closing off the tax-optimization games that specific identification allows.
The choice of method is one of the few legal levers crypto investors have to manage their tax bill. Specific identification, where allowed, lets an investor intentionally sell the highest-cost-basis coins first to minimize reported gains, or sell the lowest-cost-basis coins when harvesting losses makes more sense. FIFO removes that flexibility and often produces larger gains during a bull run, since the oldest, cheapest coins get sold first.
Starting January 2025, the rules around how cost basis gets tracked and reported tightened. Investors who move crypto across multiple wallets, exchanges, or deep into DeFi protocols now face a much harder reconciliation problem: every transfer, swap, and liquidity pool deposit can create its own disposal event with its own cost basis thread. An active trader with 50,000 transactions in a year isn't dealing with 50,000 simple numbers, but with 50,000 interconnected threads, where the proceeds end of one trade often becomes the cost basis end of the next. The IRS now documents untangling that mess one transaction at a time as a compliance expectation, not an optional best practice.
For the average investor, the practical takeaway follows directly from the two problems above: missing records default to $0 basis, and the wrong method choice inflates gains unnecessarily. Keep a record of every purchase price, every fee paid, and every date. Miss that documentation and the IRS assumes a $0 basis, which maximizes the tax owed. Anyone trading across several exchanges or wallets should consolidate records rather than relying on a single platform's statement, since no single exchange sees the full picture of coins moved in from elsewhere.
- Buy multiple times at different prices: you need to choose an accounting method, such as FIFO or specific identification.
- Trade one coin for another: counts as a disposal event, triggering a gain or loss calculation even without cash changing hands.
- Lose your purchase records: cost basis defaults to $0, and the full sale price becomes taxable.
- Use DeFi or multiple wallets: 2025 reporting standards demand transaction-by-transaction reconciliation, not portfolio-level estimates.
- File as a France-based investor: you must apply the PVCT formula, which blends the whole portfolio rather than isolating individual coins.
The question at the start was why the same sale can produce different tax bills. The sale itself never fixed the number: the accounting method did. Ralph's two bitcoins sold at the same price can generate a larger or smaller taxable gain depending on whether the tax code matches that sale to his lower-cost coin or his higher-cost one, and nothing about the trade itself determines which. Investors who track basis carefully and choose their accounting method deliberately keep more of their gains. Those who don't hand the difference straight to the tax authority by default.