A contract can pull tokens in, issue new ones, keep a fee and reshuffle internally in a single transaction. Without protocol knowledge that looks like several independent trades. Exotic or very new contracts are not fully covered by any decoder. Then you need a guided manual correction.
A misread swap becomes a taxable exchange with invented prices. An unrecognised stake can look like a gift or a sale. Bridges between your own chains must not realise a gain. If you file that unchecked, you declare events that never happened.
1. Open unclear contracts in CleanUp
chain.report flags smart-contract movements that are not unambiguous. You see hash, tokens involved and the suggested type — instead of a dead error row.
2. Set the real economic event
You classify the movement as swap, stake, unstake, liquidity, bridge, airdrop or fee. Valuation then follows the tax rules, not the raw chain log.
3. Check against wallet reality
After classification, balance and cost basis must add up again. If not, one side of a bridge or a reward is still missing. Only then does the event belong in the report.
Does chain.report recognise staking and liquidity automatically?
Many common protocols, yes. Anything the decoder cannot assign safely lands in CleanUp — you correct it in minutes instead of in a spreadsheet desert.
Are crypto-to-crypto swaps taxable in Germany?
Yes, an exchange is generally a disposal. That is why the tool must not book the swap as a mere transfer or as two sales. Correct classification is half the tax return.
What about NFTs and very exotic contracts?
That is where import-only tools fail. In chain.report you model the economic event manually, including price and consideration.
Import your wallets and work through open smart contracts in CleanUp. The report then contains events — not raw hashes.
Start for free