| Meaning | The event is not classified |
|---|---|
| Don’t | Do not mark everything as a transfer |
| Order | Balance first, then labels |
New protocols, exotic contracts, bundled internals of one transaction, incomplete CSV types. No tool knows every contract. What matters is that unclear rows do not silently pass as a trade.
Close the history first, then set the economic event: swap, stake, unstake, liquidity, bridge, airdrop, fee. The other way around you label gaps. In chain.report you see hash, tokens and the suggested type before you assign.
Balance and cost basis. If the balance is still wrong, the other side of the bridge or a reward is still missing. The label alone does not make the report right.
No. A swap booked as a transfer moves cost basis wrongly and hides the exchange. Only real internal movements are transfers.
Many yes. What the decoder cannot assign safely lands in CleanUp — you correct it in minutes instead of in a spreadsheet desert.
No. Labels are classification, balance is completeness. You often have both. Fix the balance first, then the labels.
This guide structures the data issues and common German administrative practice. It is not tax advice. The assessment in your case stays with you and your tax advisor.
Open CleanUp and classify smart contracts as the event actually was. Then the report contains events instead of raw hashes.
Start for free