cryptotax

FIFO explained: how cryptotax.be calculates your capital gains

Discover how cryptotax.be uses FIFO to calculate your crypto capital gains: timestamp prices in EUR, correct fee handling, bridges/wraps as continuity and clear lot explanations.

QDS
QDS CryptoTax.be
4 min leestijd
TL;DR

Discover how cryptotax.be uses FIFO to calculate your crypto capital gains: timestamp prices in EUR, correct fee handling, bridges/wraps as continuity and clear lot explanations.

"First In, First Out" (FIFO) without the jargon: why we use FIFO, how we track your lot history, and what that means for your report.

Last updated: March 2026


TL;DR

  • FIFO = first in, first out. On a sale or swap we draw down your oldest acquisitions (lots) first.
  • Per asset, across all your sources. One global FIFO queue per asset (exchanges, wallets, L2s).
  • Price at precise timestamp. Proceeds/cost basis are determined in EUR at the exact moment of the transaction.
  • Fees handled correctly. Purchase fees ↑ cost basis; sale/swap fees ↓ proceeds.
  • Continuity keeps running. Bridges/wraps are not a realization; lots "travel along".
  • Self-transfers to your own other wallets are automatically recognized via transfer matching.
  • 2026: step-up + weighted average for pre-2026, FIFO for post-2026 - see the step-up rule.
Not tax advice. cryptotax automates calculations and documents assumptions, so that you/your accountant can file correctly.


FIFO and the 2026 step-up rule

Since 1 January 2026 the Belgian capital gains tax on crypto applies. For your cost basis calculation this creates an important split:

  • Pre-2026 holdings (bought before 31/12/2025) - The law provides for the step-up rule: the market value of your crypto on 31 December 2025 becomes your tax purchase price. For the old holdings the law moreover applies a weighted average purchase price per token - not pure FIFO. All your pre-2026 lots of the same token are merged into one pool.
  • Post-2026 holdings (bought from 1 January 2026) - For these acquisitions strict FIFO applies: the oldest lot is drawn down first on every disposition.

On every sale in 2026, cryptotax therefore first draws down the step-up pool (if it still contains tokens), and after that the FIFO queue of your post-2026 lots. Read our full guide on crypto tax 2026 →

Practical example: step-up + FIFO

On 31/12/2025 Tom has 2 ETH in his wallet, bought in 2022 for an average of €1,200/ETH. Market value on 31/12/2025: €3,500/ETH. In 2026 he buys 1 more ETH for €4,000.

  • Step-up pool (2 ETH): cost basis = 2 × €3,500 = €7,000
  • Post-2026 lot (1 ETH): cost basis = €4,000

In June 2026 Tom sells 2.5 ETH for €4,500/ETH (proceeds €11,250):

  • First the step-up pool: 2 ETH × €3,500 = €7,000 cost basis (exhausted)
  • Then FIFO: 0.5 ETH × €4,000 = €2,000 cost basis
  • Total cost basis: €9,000
  • Capital gain: €11,250 − €9,000 = €2,250

Under normal management that is below the €10,000 exemption, so no tax is due. Cryptotax applies this hybrid calculation automatically - you do not have to maintain the step-up vs. FIFO logic yourself.

What is FIFO and why do we use it?

FIFO ("First In, First Out") determines which acquisitions you "sell" when you make a disposition (selling, swapping, paying with crypto).
With FIFO you always use your oldest lot first, then the next, and so on.

Why FIFO for crypto?

  • Many investors buy gradually (DCA) and do swaps rather than pure sales.
  • FIFO is intuitive, explainable and audit-friendly for accountants.
  • Combined with correct labeling, your cost basis keeps running neatly.

Today we support FIFO as the standard method. Other methods (e.g. weighted average) are disabled.


What counts as a taxable disposition?

Disposition (realizes a gain/loss):

  • Sale to fiat (e.g. ETH → EUR).
  • Crypto-to-crypto swap (e.g. ETH → USDC).
  • Paying with crypto (e.g. a product/service in BTC).

Continuity (no realization):

  • Bridge (L1 ↔ L2) and wrap/unwrap (e.g. ETH ↔ wETH).
  • Protocol-internal conversion without value realization.
Self-transfers to your own other wallets and exchanges are automatically recognized via transfer matching and labeled as continuity - no apparent extra taxable moments.

How does cryptotax calculate this?

We normalize your data into Tax Events: acquisition, disposition, fee, income.
On every disposition we do the following:

  1. FIFO allocation: we determine which lot(s) you draw down (oldest first).
  2. EUR proceeds at precise timestamp: market value at the exact moment of the transaction, minus the sale/swap fee.
  3. EUR cost basis: the sum of the acquisitions drawn down (including purchase fees).
  4. Gain/loss = proceeds − cost basis (rounding to €0.01; crypto quantities we report with 8–18 decimals, depending on the asset).

Fees, handled neatly

  • Purchase feesadded to the cost basis of the lot.
  • Sale/swap feesdeducted from the proceeds.
  • DEX routes: we allocate fees logically across outgoing/incoming legs so that the net values are correct.

EUR valuation & time zone

  • All values are in EUR at the transaction timestamp.
  • Year-end and report boundaries follow Europe/Brussels (CET/CEST) from launch.

Example (ETH)

Acquisitions

  • 10/03/2023 14:12:07 - 1.20000000 ETH @ €1,400.00/ETH, €12.00 fee
    → cost basis lot #1 = 1.2 × €1,400 + €12 = €1,692.00 (per ETH ≈ €1,410.00)
  • 01/07/2023 09:03:11 - 0.80000000 ETH @ €1,800.00/ETH, €9.00 fee
    → cost basis lot #2 = 0.8 × €1,800 + €9 = €1,449.00 (per ETH ≈ €1,811.25)

Disposition (sale)

  • 20/02/2024 18:45:29 - sale of 1.50000000 ETH @ €2,200.00/ETH, €15.00 fee
    proceeds = 1.5 × €2,200 − €15 = €3,285.00

FIFO allocation

  • Lot #1: 1.20000000 ETH @ €1,410.00 → €1,692.00
  • Lot #2: 0.30000000 ETH @ €1,811.25 → €543.38
  • Total cost basis = €2,235.38

Realized capital gain
€3,285.00 − €2,235.38 = €1,049.62

cryptotax breaks this down automatically per lot, including fees and the exact moment.


Swaps work the same way (disposition + new cost basis)

For ETH → USDC:

  • ETH is the disposition (FIFO determines the lot mix; proceeds in EUR at the timestamp minus the fee).
  • USDC is an acquisition with cost basis = the market value received (after correct fee allocation).

Bridges & wraps: continuity without a taxable moment

  • Bridge from e.g. Ethereum → Base: no realization; your lot "travels" along.
  • Wrap/unwrap (ETH ↔ wETH): a technical conversion; cost basis and FIFO position stay consistent.

This way we avoid apparent extra taxable moments and your trail stays audit-proof.


FAQ

Is FIFO mandatory?
No. It is a clear, accepted method. We choose FIFO for consistency and explainability.

Does FIFO happen per wallet?
No. We apply FIFO per asset across all your sources. Correct labeling ensures your lots keep running.

What about self-transfers between your own wallets?
These are automatically recognized via transfer matching. This way we avoid apparent extra taxable moments.

How do you handle fees?
Purchase fees
increase your cost basis; sale/swap fees decrease your proceeds. The net is what matters.

What rounding do you use?
EUR amounts to €0.01, crypto quantities with 8–18 decimals (asset-dependent).


Example sections in your report

  • Taxable events (dispositions & income) with FIFO origin per lot.
  • All events (incl. continuity) as an audit trail.
  • Gain/loss per asset + total in EUR.
  • Fee overview and allocation.

Call-to-action

🔎 Ready to declare your crypto correctly?

Import your wallets and exchanges and instantly receive an overview of your gains, losses and taxable income in EUR.

Start for free

Geen individueel fiscaal advies Dit artikel is een leesgids op basis van publieke bronnen. Voor een persoonlijke situatie raadpleeg je accountant of een geregistreerde fiscaal adviseur.

QDS
Geschreven door

QDS

CryptoTax.be

Accountant? Sluit je aan bij ons partnerprogramma.

Klaar voor de deadline?

Klaar om je crypto correct aan te geven?

Importeer je wallets en exchanges en ontvang direct een overzicht van je winsten, verliezen en belastbaar inkomen in EUR.

Read-only API Geen creditcard nodig GDPR Belgisch bedrijf