Back to Blog
    Guides
    9 min read

    FIFO Method for Crypto Tax: How Your Cost Basis is Calculated

    Understanding the First-In-First-Out method for crypto tax calculation — how buy lots are matched to sells, how partial lots work, and a step-by-step example with multiple buys and sells.

    CryptoITR TeamFeb 15, 2025Updated: Mar 21, 2026
    FIFO crypto taxcost basis cryptocrypto tax calculationfirst in first outcrypto accounting method
    FIFO Method for Crypto Tax: How Your Cost Basis is Calculated

    India uses the FIFO (First In, First Out) method to calculate crypto cost of acquisition — your oldest purchase lots are matched against each sale first, and the profit is the sale price minus that oldest lot's cost. Getting this wrong directly changes how much tax you owe: using a higher-cost lot (like LIFO) would understate profits and is not accepted by the Indian tax department.

    • Method: Match each sell to the oldest available buy lot first, then work forward chronologically
    • Partial lots: If a buy lot is larger than the sell, allocate cost proportionally (e.g., selling 0.1 from a 0.5 BTC lot = 20% of that lot's cost)
    • Per asset: FIFO queues are maintained separately for each coin — Bitcoin, Ethereum, etc. do not cross over
    • Carries forward: Unsold lots retain their FIFO position across financial years
    • Unmatched sells: If no buy record exists, the cost of acquisition is treated as zero — full sale amount is taxable

    Here is a worked step-by-step FIFO example with multiple buys and two sales to show exactly how lot matching and partial-lot cost allocation work.

    What is FIFO?

    FIFO stands for First In, First Out. It's an accounting method that assumes the first units you bought are the first units you sell. Think of it like a queue at a movie theatre — the person who arrives first gets in first.

    For crypto tax purposes, when you sell a portion of your holdings, FIFO matches that sale against your oldest purchase first, then the next oldest, and so on.

    Why does India use FIFO? Because the Income Tax Act doesn't explicitly prescribe a method for VDA cost of acquisition, and FIFO is the default method used for inventory/asset costing under Indian accounting standards. The tax department expects you to use FIFO unless there's a specific reason to use another method (there usually isn't for crypto).

    Why Does It Matter?

    If you bought crypto at different prices over time, the method you use to determine cost of acquisition directly affects your taxable profit. Let me show you.

    Say you own 2 BTC total — one bought at ₹10,00,000 and another at ₹15,00,000. You sell 1 BTC for ₹18,00,000.

    • FIFO (correct): Uses the ₹10,00,000 buy → Profit = ₹8,00,000 → Tax = ₹2,49,600
    • LIFO (wrong): Would use the ₹15,00,000 buy → Profit = ₹3,00,000 → Tax = ₹93,600

    That's a ₹1,56,000 difference in tax. In a bull market where your early buys were cheapest, FIFO generally results in higher taxable gains. It's not the most taxpayer-friendly method, but it's the one you need to follow.

    Step-by-Step FIFO Example

    Let's work through a realistic scenario. Ankit made these Bitcoin trades during FY 2024-25:

    Purchases (Buys)

    • Buy #1 — April 15, 2024: 0.3 BTC at ₹55,00,000/BTC → Cost: ₹16,50,000
    • Buy #2 — July 20, 2024: 0.5 BTC at ₹48,00,000/BTC → Cost: ₹24,00,000
    • Buy #3 — November 5, 2024: 0.2 BTC at ₹70,00,000/BTC → Cost: ₹14,00,000

    Total holdings: 1.0 BTC. Total cost: ₹54,50,000.

    Sale #1 — January 10, 2025: Sells 0.4 BTC at ₹72,00,000/BTC

    Sale proceeds: 0.4 × ₹72,00,000 = ₹28,80,000

    Now FIFO kicks in. We match against the oldest buy first:

    • From Buy #1: Use all 0.3 BTC → Cost: ₹16,50,000 (Buy #1 is now fully consumed)
    • From Buy #2: Use 0.1 BTC out of 0.5 BTC → Cost: 0.1/0.5 × ₹24,00,000 = ₹4,80,000 (Buy #2 has 0.4 BTC remaining)

    Total cost of acquisition for this sale: ₹16,50,000 + ₹4,80,000 = ₹21,30,000

    Profit on Sale #1: ₹28,80,000 - ₹21,30,000 = ₹7,50,000

    Remaining Holdings After Sale #1

    • Buy #1: Fully used (0 BTC left)
    • Buy #2: 0.4 BTC remaining, cost basis: ₹19,20,000
    • Buy #3: 0.2 BTC remaining, cost basis: ₹14,00,000

    Sale #2 — March 15, 2025: Sells 0.5 BTC at ₹65,00,000/BTC

    Sale proceeds: 0.5 × ₹65,00,000 = ₹32,50,000

    FIFO matches against the next oldest available lot:

    • From Buy #2 (remaining): Use all 0.4 BTC → Cost: ₹19,20,000 (Buy #2 is now fully consumed)
    • From Buy #3: Use 0.1 BTC out of 0.2 BTC → Cost: 0.1/0.2 × ₹14,00,000 = ₹7,00,000 (Buy #3 has 0.1 BTC remaining)

    Total cost of acquisition for this sale: ₹19,20,000 + ₹7,00,000 = ₹26,20,000

    Profit on Sale #2: ₹32,50,000 - ₹26,20,000 = ₹6,30,000

    The Complete Picture

    Here's how the full FIFO matching looks laid out:

    Buy Lot Consumption Table

    Buy #1 (0.3 BTC @ ₹55L/BTC)
    → 0.3 BTC used in Sale #1 | Cost allocated: ₹16,50,000 | Status: Fully consumed

    Buy #2 (0.5 BTC @ ₹48L/BTC)
    → 0.1 BTC used in Sale #1 | Cost allocated: ₹4,80,000
    → 0.4 BTC used in Sale #2 | Cost allocated: ₹19,20,000 | Status: Fully consumed

    Buy #3 (0.2 BTC @ ₹70L/BTC)
    → 0.1 BTC used in Sale #2 | Cost allocated: ₹7,00,000 | Status: 0.1 BTC remaining

    Tax Summary

    • Sale #1 profit: ₹7,50,000
    • Sale #2 profit: ₹6,30,000
    • Total taxable gain: ₹13,80,000
    • Tax at 30%: ₹4,14,000
    • Cess at 4%: ₹16,560
    • Total tax: ₹4,30,560

    Remaining holding: 0.1 BTC with a cost basis of ₹7,00,000 (from Buy #3). This will be the first lot matched when Ankit sells again in the future.

    How Partial Lots Work

    You saw this in the example above — Buy #2 was split across two sales. This is called partial lot matching, and it's very common. The math is proportional:

    If you bought 0.5 BTC for ₹24,00,000 and you only need 0.1 BTC for a sale, the cost allocated is:

    (0.1 / 0.5) × ₹24,00,000 = ₹4,80,000

    The remaining 0.4 BTC retains its proportional cost of ₹19,20,000 and stays in the queue for future sales. Think of it like cutting a cake — each slice gets a proportional share of the total cost.

    FIFO Gets Complicated With Multiple Assets

    FIFO is computed per asset. Your Bitcoin buys match against Bitcoin sells. Your Ethereum buys match against Ethereum sells. They don't cross over.

    So if you have 50 different coins across 3 exchanges, you're running 50 separate FIFO queues — one for each asset. This is where manual calculation becomes impractical. For 10 trades, a spreadsheet works fine. For 500+ trades across multiple assets? You need automation.

    What Happens When You Sell More Than You Bought?

    Sometimes you'll have sells that can't be matched to any buy. This happens when:

    • You received crypto from an airdrop, staking reward, or gift that you didn't track as a "buy"
    • You transferred crypto from another exchange and only uploaded one exchange's data
    • You've been trading for years but only have records from the current financial year

    These are called "unmatched sells." The tax department's position is that if you can't prove your cost of acquisition, it's treated as zero. That means the entire sale amount becomes your taxable profit.

    Ouch. That's why keeping complete records across all exchanges and wallets is so critical. If you bought 1 ETH on Binance and sold it on CoinDCX, you need data from both exchanges to prove your cost of acquisition.

    Common FIFO Mistakes

    • Using average cost instead of FIFO: Some traders calculate their average buy price and use that. This isn't FIFO and can result in incorrect tax amounts.
    • Not accounting for crypto-to-crypto trades: If you bought BTC and traded it for ETH, that BTC-to-ETH trade is a sell of BTC. You need to apply FIFO to determine the BTC cost of acquisition.
    • Ignoring exchange fees in cost basis: Under 115BBH, fees can't be deducted from your profits. But the cost of acquisition itself (what you paid) is your buy price. If you paid ₹1,00,000 for a coin plus a ₹100 buy-side exchange fee, your cost of acquisition is ₹1,00,100 — but fees on the sell side are a separate, non-deductible expense.
    • Mixing up financial years: FIFO doesn't reset on April 1. If you bought crypto in FY 2023-24 and sell in FY 2024-25, the old buy is still your cost of acquisition. The queue carries forward.

    Let CryptoITR Handle the Math

    Here's the reality: if you have more than a handful of trades, doing FIFO by hand is tedious and error-prone. You need to sort all buys chronologically per asset, match each sell against the oldest available lot, handle partial lots with proportional cost allocation, and keep track of remaining quantities.

    CryptoITR does all of this automatically. Upload your trade reports from any supported exchange, and our FIFO engine matches every sell to the correct buy lots, computes your cost basis, and calculates the exact tax owed — including per-asset gains and losses, TDS credits, and cess. You get the numbers ready for Schedule VDA without touching a spreadsheet.

    Ready to Calculate Your Crypto Taxes?

    Upload your exchange reports and get your tax liability calculated in minutes — for free.

    Related Articles

    Guides

    Complete Guide to Crypto Tax in India 2025

    Everything you need to know about paying taxes on your crypto gains in India — the 30% flat tax, 1% TDS, which ITR form to use, and how to actually calculate what you owe.

    10 min read·Feb 15, 2025
    Guides

    10 Common Crypto Tax Mistakes That Trigger Tax Notices

    From offsetting losses to missing airdrops, these 10 mistakes are the top reasons Indian crypto traders get tax notices. Learn how to avoid every single one.

    12 min read·Feb 12, 2025
    Guides

    Crypto Tax vs Stock Market Tax in India: Key Differences

    Crypto is taxed at a flat 30% while stocks get STCG/LTCG benefits. Here's a detailed side-by-side comparison of how India taxes crypto vs equities — and why it matters for your portfolio.

    8 min read·Feb 5, 2025