How crypto capital gains are calculated
Chainledg reconstructs a tax position from a wallet address: every transaction, internal transfer and token movement read from the chain, priced in euro at the rate it happened, and matched first-in-first-out. This is the method, including where it stops.
What counts as a disposal?
Selling or swapping one coin for another is a disposal, and so is spending crypto on goods or paying someone in it. The gain is the euro value received minus the euro cost of the coins that left.
Network fees are a disposal too. Gas paid in ETH means ETH left the wallet at that moment's price, which is why the fee shows up in the register rather than being netted away silently.
Moving coins between your own wallets is not a disposal. The chain cannot tell your second wallet from a stranger's, so enter every address you own in the same run and the transfers between them cancel out.
How does FIFO matching work?
Acquisitions form a queue per asset, oldest first. A disposal consumes from the front of that queue until it is filled, and each consumed lot carries its own euro cost into the result.
The queue is global per asset, not per chain. ETH bought on mainnet and sold on Arbitrum draws from the same line, because it is the same asset for tax purposes.
Where do the euro prices come from?
Coinbase Exchange's public quotes, taken at the hour each transaction was mined. They are a market rate, not an official one, and no key or account is involved.
Settled windows are cached, so the same wallet and the same tax year return the same figure to the cent every time. A calculation that moves between runs is not one you can attach to anything.
Why are counterfeit tokens excluded?
Wallets get flooded with tokens whose ticker imitates a real one, written with accented letters, characters borrowed from other alphabets, or invisible padding between them. Others carry a website in the name as airdrop bait.
A calculator that trusts the ticker books disposals that never happened, at prices belonging to a different asset. These transfers are identified and left out, and every one of them is listed so you can check the decision rather than take it on faith.
What can a wallet address not tell you?
The price you paid on an exchange. Coins bought on Coinbase or Binance and withdrawn to a wallet arrive with no acquisition cost attached, because the purchase happened off-chain.
Those lots are reported as missing cost basis rather than quietly treated as free. The register names the asset and the quantity, so you can supply the figure from the exchange's own statement.
What changes if I pick Finland instead of generic FIFO?
Generic FIFO claims no country relief: plain first-in-first-out on actual cost, which is the common denominator across most jurisdictions.
Finland applies the deemed acquisition cost of the Income Tax Act 46.1 — 20 percent of the sale price, or 40 percent for lots held at least ten years — whenever it beats the real cost, per lot. It also carries losses forward under ITA 50 and applies the €1 000 small-disposal exemption of ITA 48.6, with FIFO ordering per KHO 2024:123.
Is this tax advice?
No. It is a calculation from public data, and the working is shown so an accountant or a tax authority can follow it line by line.
The balance reconciliation is part of that: the closing balance implied by the entries is compared against the chain's own balance, and a mismatch is reported rather than hidden. Where the two disagree, the register is incomplete and the number should not be filed as it stands.