The French formula never looks at the crypto you sold.
Article 150 VH bis of the Code général des impôts does not ask what your tokens cost. It takes a fraction of the acquisition cost of your entire portfolio, proportional to what this disposal is worth against what everything is worth at the moment you sell. The asset you sold appears nowhere in it.
One per line:
date, buy|sell|swap, amount EUR, portfolio value, fees — the
portfolio value (line 212 of form 2086) is needed only for a sale; for a
swap the amount is the soulte received, 0 where there is none.
Dates as YYYY-MM-DD.
—
Taxing every swap and computing the gain on the asset sold. This is not an approximation of the French figure — it is a different quantity.
The fraction deducted is removed from the running «prix total d'acquisition». Without that, the same euros of cost would be deducted again on every later disposal.
—
Nine countries, and the widest spread is in Denmark
A fraction of what the whole portfolio cost, proportional to its global value at the moment of the disposal. Swaps without a soulte are not taxable. A net annual loss does not carry forward.
Individual lots, tracked wallet by wallet since Rev. Proc. 2024-28. Every swap is a taxable disposal. What your broker reports →
Pooled per asset under s.104 TCGA 1992, with same-day and next-30-day acquisitions matched first. Work out UK pooling →
Every identical property averaged into one adjusted cost base across all accounts, and superficial losses denied. Work out Canadian ACB →
FIFO parcels, each with its own twelve-month clock, and half the gain discounted — but only after losses are applied. Work out the Australian discount →
One average cost per asset across everything held, no schablonmetod — and thirty per cent of every loss simply not deductible, so a year you broke even on is still taxable. Work out the Swedish K4 →
The only place here where the usual bug runs the other way: a deemed acquisition cost of 20 per cent of the sale price — 40 after ten years — taken whenever it beats the real one, so an engine that just does proceeds minus cost overstates the tax. Work out the Finnish deduction →
Changes the question rather than the method: no capital gains tax at all, a deemed return on the value held at 00:00 on 1 January, and a counter-evidence rule whose «actual return» counts unrealised change, allows no costs and cannot go below zero. Work out the Dutch box 3 →
The widest spread of all: a gain is personal income in box 20 at up to 53 %, a loss is a deduction in box 58 worth about 26 %, and as a rule they do not offset each other at all. Work out the Danish boxes →
Harvesting does almost nothing in France
A French loss only exists when the WHOLE portfolio is worth less than it cost. Selling one line that has fallen while the rest is up produces a gain, not a loss, because article 150 VH bis measures against total acquisition price. And a net annual loss dies on 31 December rather than carrying forward, so a December harvest with no gains to meet is spent. Work out what you are holding at a loss →
Questions
Why doesn't the crypto I sold appear in the calculation?
Because article 150 VH bis does not look at it. The gross gain is the disposal price less the total acquisition price of your WHOLE portfolio, multiplied by the disposal price and divided by the portfolio's global value at that moment. The asset disposed of appears nowhere. The United States tracks lots, the United Kingdom pools, Canada averages, Australia matches parcels — all of them answer «what did the coins I just sold cost me». France does not ask that question. A tool that ports a lot-based answer onto a French return is not slightly wrong: it computes a different quantity and gives it the same name.
Can I owe tax on a disposal I made at a loss?
Yes, and it is the consequence nobody believes until they see it. Say one token cost 9,000 EUR and is now worth 1,000, and another cost 1,000 and is now worth 19,000. Sell the first for 1,000: you are 8,000 down on that token, and the formula produces a 500 EUR GAIN — because it only looks at the 10,000 the portfolio cost against the 20,000 it is worth. A French loss exists only when the ENTIRE portfolio is worth less than it cost.
Are crypto-to-crypto swaps taxable in France?
Not without a soulte. They are «opérations intercalaires» carrying a «sursis d'imposition» — a deferral. What IS a disposal: an exchange for legal tender, for a good other than a digital asset, for a service, or an exchange WITH a soulte. This is the second reason a US-shaped engine is unusable here: it taxes every swap, and so invents a whole year of gains that do not exist in French law.
How is the «valeur globale du portefeuille» determined?
It is the sum of the values of every digital asset you hold, measured AT THE MOMENT OF EACH TAXABLE DISPOSAL. Not at 31 December, not at acquisition. It is line 212 of form 2086, and the form asks you for it because only you can observe it. We do not estimate it: it sits in the DENOMINATOR of the formula, so an estimate moves the answer in a direction nobody can predict, and the result still looks like arithmetic. A disposal whose portfolio value we were not given is reported as needing one rather than quietly computed.
Is the 305 euro threshold on my gain?
No — on your DISPOSAL PRICES. If the tax household's disposal prices for the year do not exceed 305 EUR, nothing is taxable; above it, the gain is taxable from the first euro. It is a threshold, not an allowance. Somebody who sold 400 EUR at a 10 EUR gain is over it; somebody who sold 300 EUR at a 200 EUR gain is under it.
Does my loss carry forward to next year?
No, and it is the most expensive trap here, because every other jurisdiction carries losses forward. Gross losses are set against gross gains of the same nature in the SAME year. A net annual loss «ne peut être ni reportée les années suivantes, ni imputée sur une plus-value de cession d'un bien d'une autre nature». A tool that applies the American or British rule here makes you under-declare a later year.
What is the rate?
30% in total: 12.8% income tax under CGI article 200 C and 17.2% social levies. Two separate charges people meet as one number, and this page separates them. For disposals from 1 January 2023 you may elect the progressive scale instead — that is a decision about the household's whole return, and we do not make it for you.
What if I trade habitually?
Then this regime does not apply and the income is taxed as BIC. That is a question about you rather than about your ledger, and no software should settle it. Mining is BNC, also outside this calculation.
Is anything uploaded?
No. This page computes entirely in your browser.
Run it on your real history
The full engine applies these same articles across every exchange export and public address you give it, with the source row behind each figure and the article beside it. Free to see the answer.