Converting cryptocurrency to fiat can create a taxable disposal, and the calculation depends on your proceeds, cost basis, fees, currency conversion rate, and the identification method permitted where you file. This guide shows how to build a repeatable crypto tax ledger, compare FIFO, LIFO, and HIFO assumptions, and estimate gains or losses for BTC, ETH, stablecoins, and other crypto-to-local-currency conversions. Use the examples as a calculation framework, then confirm the reporting rules that apply to your country and tax year.
Overview
A crypto-to-fiat conversion is generally recorded as a disposal of an asset. The basic calculation is:
Capital gain or loss = net proceeds − cost basis
Net proceeds are what you received after transaction fees and other directly related costs. Cost basis is the value originally assigned to the crypto units you disposed of, adjusted where applicable for fees, transfers, or other reportable events. A gain occurs when net proceeds exceed cost basis; a loss occurs when they are lower.
The conversion itself does not determine the result. Two people selling the same amount of BTC on the same day can report different gains if they acquired their coins at different prices or use different identification methods. Your records should therefore connect each disposal to specific acquisition lots.
FIFO means “first in, first out”: the oldest available units are matched to the sale first. LIFO means “last in, first out”: the most recently acquired units are matched first. HIFO means “highest in, first out”: the lots with the highest cost basis are matched first. These labels are useful for analysis, but not every country or tax authority permits every method. Apply only a method that is allowed for your jurisdiction, account type, and reporting circumstances, and keep the same methodology consistently where required.
For background on exchange-rate timing, see Which Crypto Exchange Rate Timestamp Should You Use for Trades, Payments, and Taxes?. If you need a historical fiat value, the Historical Crypto Price Converter can help you organize the relevant date and currency inputs.
How to estimate
- Record the disposal. Capture the date and time, asset, quantity sold, receiving currency, exchange or wallet, transaction ID, and the fiat amount shown by the platform.
- Choose the reporting currency. Convert proceeds and cost basis into the currency required for your tax return. Do not mix USD, EUR, GBP, or another local currency in the same calculation without recording the conversion rate and timestamp.
- Calculate gross proceeds. Multiply the quantity disposed of by the agreed execution price, or use the transaction’s stated fiat value when it is reliable and sufficiently detailed.
- Subtract eligible disposal costs. Include trading fees, network fees, or withdrawal costs only when the applicable rules allow them to be included in proceeds or basis. Record each fee separately rather than hiding it in a rounded exchange rate.
- Match acquisition lots. Apply the permitted method—such as FIFO, LIFO, HIFO, or specific identification—to determine which units were disposed of.
- Calculate the result. Subtract the matched cost basis from net proceeds. Keep short-term and long-term categories separate if your jurisdiction distinguishes them.
- Reconcile the balance. After the disposal, reduce the remaining quantity in each lot. Your ledger should never show more units sold than acquired, received, or otherwise documented.
A practical ledger can be created in a spreadsheet or CSV file. Use one row for each acquisition, disposal, or other event:
Date,Time,Event,Asset,Quantity,Fiat Currency,Unit Price,Gross Value,Fee,Net Proceeds,Lot ID,Cost Basis,Method,Gain or Loss,Transaction ID,Notes
For a disposal, the “Quantity” is the amount sold, “Net Proceeds” is the amount received after applicable costs, and “Cost Basis” is the value of the matched acquisition units. For an acquisition, record the units received and their total fiat value. Preserve the original exchange CSV, wallet record, invoice, or receipt alongside your edited ledger.
Inputs and assumptions
A reliable crypto tax calculator needs more than a live crypto price. Gather these inputs before calculating:
- Asset and quantity: Identify the exact token and number of units, including decimals.
- Acquisition lots: Record purchase date, quantity, total cost, currency, and fees for every lot.
- Disposal value: Use the execution value at the relevant timestamp rather than a later market quote.
- Fiat conversion rate: For BTC to EUR, ETH to GBP, XRP to INR, or another crypto-to-local-currency conversion, document the rate source, date, time, and whether it is a mid-market, bid, ask, or executed rate.
- Fees and slippage: Separate trading fees, network fees, withdrawal charges, and price slippage. A displayed quote may not equal the final settlement amount.
- Identification method: Note the method used and whether your jurisdiction requires specific-lot selection, chronological ordering, or another convention.
- Tax treatment: Confirm whether crypto-to-fiat sales, crypto-to-crypto trades, stablecoin conversions, staking receipts, mining, airdrops, and gifts are treated differently where you live.
Stablecoins should not automatically be treated as tax-free cash equivalents. Converting USDT to USD or USDC to EUR may still involve a disposal, a gain, a loss, or a small difference caused by acquisition value, fees, and exchange-rate movement. Keep the same level of evidence for stablecoins as for BTC or ETH.
To compare the actual amount you receive, rather than only the headline rate, use a crypto-to-fiat converter that accounts for fees and final payout. For average acquisition costs across recurring purchases, see the crypto DCA calculator guide.
Worked examples
Example 1: BTC to USD sale
Assume a taxpayer sells 0.20 BTC for USD. The gross execution value is $8,000 and the eligible transaction fee is $40, producing net proceeds of $7,960. The ledger contains two possible acquisition lots:
- 0.10 BTC acquired for $2,500
- 0.15 BTC acquired for $4,500
Under FIFO, the first 0.10 BTC uses a $2,500 basis and the next 0.10 BTC uses half of the second lot’s basis, or $3,000. Total basis is $5,500, so the estimated gain is $7,960 − $5,500 = $2,460. HIFO would select the highest-cost units available first if permitted and properly documented, producing a different basis and result.
Example 2: ETH to EUR trade followed by an off-ramp
Assume 1 ETH was acquired for €1,400. It is exchanged for 3,000 USDC when the USDC value at the transaction timestamp is €2,700. The exchange fee is €27. The crypto-to-crypto trade is recorded at €2,700 gross, or €2,673 after the fee if that treatment is permitted. The estimated gain before any later USDC disposal is therefore €2,673 − €1,400 = €1,273.
Two days later, the 3,000 USDC is converted to €2,685 cash and the off-ramp fee is €8. If the USDC received has a recorded basis of €2,673, net proceeds are €2,677 and the second disposal produces an estimated gain of €4. The two transactions should remain separate in the ledger: the ETH disposal and the USDC-to-EUR conversion.
Example 3: Stablecoin conversion to cash
Assume 5,000 USDT was acquired for $4,995, including an eligible $5 acquisition fee. It is later converted to $4,985, with a $10 conversion fee. Net proceeds are $4,975. The estimated loss is $4,975 − $4,995 = −$20. The small loss does not disappear because USDT is designed to track the dollar; the ledger still needs the actual acquisition value, disposal value, and fees.
These examples are simplified estimates, not tax advice. They exclude possible income events, wash-sale or anti-avoidance rules, holding-period classifications, transfers between wallets, and jurisdiction-specific treatment.
When to recalculate
Update the ledger before each taxable conversion, not only at the end of the year. Recalculate whenever you sell crypto for fiat, trade one token for another, spend crypto, convert a stablecoin, receive a non-purchase distribution, or discover a missing fee or transaction.
Reconcile exchange and wallet data monthly or after a period of active trading. Recheck the calculation when a transaction is amended, a fiat rate is corrected, an exchange CSV format changes, or your tax authority changes its guidance. A quarterly review is also useful for refreshing price snapshots, fee assumptions, and currency-rate references used in internal estimates.
Before filing, export the completed ledger, preserve source records, review duplicate transactions, confirm that every disposal has a matched basis, and produce a summary by asset and reporting currency. Compare FIFO, LIFO, and HIFO only as permitted alternatives—not as a reason to choose whichever result is most favorable without support. For portfolio-level planning, the Crypto Rebalancing Calculator can help connect intended fiat amounts with proposed trades.
If the records are complex, involve multiple countries, or include business activity, obtain advice from a qualified tax professional familiar with digital assets in the relevant jurisdiction. Keep this workflow as a working file, refresh the inputs when rates or fees change, and retain the calculation that explains how each reported gain or loss was produced.