The single highest value tax habit in crypto is exporting your transaction history at the end of every year, from every platform, and saving it somewhere permanent. Exchanges close, delist, restrict access to old data and go bankrupt. Reconstructing five years of history from nothing is the expensive version of this problem.
What to save, starting today
Export every exchange, every year
A full CSV of trades, deposits and withdrawals from each platform you used, saved at the end of each year. Do it even for platforms you stopped using, especially those, because that is the data that disappears.
Keep a list of every address you control
Every wallet address, with a note about what it was for and when you started using it. Under the per wallet basis rule this is no longer optional bookkeeping, it is the structure your records sit in.
Record transfers between your own wallets
Note the date, amount and both addresses. Without it, a later reconstruction sees a withdrawal and a deposit and has no way to know they were the same coins, so it looks like a sale and a purchase.
Note the value of anything you received
Staking rewards, airdrops and bonuses need a dollar value on the day of receipt. Capturing it then takes seconds. Finding it three years later for a token that no longer trades takes hours.
Save the fees
Trading fees and gas both affect the numbers. They are in the exports and in the chain, and they are easy to lose track of if you only save prices.
If you did not do any of that
Most people did not, and it is usually recoverable. Work outward from what still exists:
Exchange accounts you can still log into. Export everything now, before anything changes. Several defunct platforms became permanently inaccessible with very little notice.
Bank and card statements. These establish when dollars went in and roughly how much, which anchors the rest even when the platform record has gone.
The blockchain. Every onchain transaction you ever made is still there and always will be. A block explorer will give you dates, amounts and counterparties from any address you controlled. What it will not give you is the dollar price at that moment, which has to come from a historical price source.
Software. Portfolio and tax tools can import from addresses and exchange APIs and do a great deal of this automatically. They are only as good as the addresses you remember, which is why the list of addresses matters more than anything else on this page.
How long to keep it
Longer than you think. Basis records need to survive until the asset is disposed of and then through the period in which that return can be examined, which for crypto bought years before a sale means keeping the acquisition record for a very long time. Storage is free. Reconstruction is not.
Common questions
What if an exchange I used no longer exists?
Bank statements establish what went in, and the blockchain establishes what moved on chain. Some bankruptcy estates also publish claim data. It is more work than an export would have been and it is rarely hopeless.
Do I need to keep records for coins I still hold?
Yes, and those are the most important ones. The acquisition record is what proves basis whenever you eventually sell, which may be many years away.
Are tax software imports good enough?
They do most of the work and they miss things, particularly transfers between your own wallets and any address you forgot to add. Review the output rather than filing it unread.
Where to go next
Confused about your own records?
We cannot prepare your return and we can help you understand what your transaction history actually says, so the conversation with your accountant is a short one.