Lesson 3 — Recordkeeping: what to capture in real time
Reconstructing crypto tax records in April is nearly impossible. Today: the records to capture at the moment of transaction so April becomes a copy job.
By far the largest source of crypto tax pain isn't the tax rules — it's the records. Users who haven't captured what they needed at the moment of transaction spend dozens of hours in April trying to reconstruct events from chain explorers, exchange CSVs, and faded memory. Users who captured the right records in real time spend ten minutes uploading to tax software. This lesson is the in-the-moment capture habit.
**The fields that matter for every transaction.** At minimum, you need to capture: (1) transaction hash (txhash) — the blockchain-level identifier that pins down what happened; (2) date and time in UTC — exchanges use UTC internally so it's the cleanest universal reference; (3) the assets involved (which tokens, how many units); (4) the **fiat value at the moment of the transaction** — this is the single most-overlooked field; (5) the counterparty (which exchange or wallet address); (6) the transaction type (purchase, sale, swap, stake reward, airdrop, transfer between own wallets, etc.); (7) the network fee paid (gas fees can sometimes be deducted from cost basis or proceeds depending on jurisdiction and the type of operation).
**Why fiat value at the moment matters.** Most tax calculations use the fiat value of the transaction at the time the transaction happened. If you swap 1 ETH for 50 SOL on a day when ETH is volatile, the gain depends on what ETH was worth at the moment of the swap. Reconstructing this later means pulling historical price data from CoinGecko or similar, but small timing differences can produce material outcome differences when ETH moves 5% in an hour. Capturing the value at the moment (or shortly after) sidesteps this entirely. Most exchange CSVs include this; on-chain DEX swaps require you to look it up.
**Where the records come from automatically.** Centralised exchanges (Coinbase, Kraken, Binance, etc.) generate transaction histories you can download as CSV or query via API. These records are usually clean and include fiat values. Self-custody on-chain activity is harder — the chain records the transaction but doesn't record what USDC was worth in your local fiat at the moment. This is where you need either dedicated tax software or your own discipline.
**The minimal manual habit.** Maintain a simple spreadsheet with one row per transaction containing the fields above. Update it within 48 hours of any transaction. The 48-hour window matters because exchange prices remain easily verifiable; a month later, getting the specific price at the specific moment requires effort. Even a basic Google Sheet with these columns, updated promptly, eliminates 80% of April tax pain. The other 20% is reconciliation with your tax software and any tax-pro consultation.
**Crypto tax software — what it does and doesn't do.** Software like Koinly, CoinTracker, CoinLedger, ZenLedger, and TaxBit pulls your transaction history from exchanges (via API or CSV) and wallets (by address), categorises each transaction, applies cost-basis methods, and generates jurisdiction-specific reports. They handle the volume problem well. They handle DeFi tax classification imperfectly — wrapping, LPing, staking with rebasing, restaking — because the underlying tax treatment is sometimes ambiguous. The software's classification is usually a reasonable starting point but the user (or their tax pro) should review high-value or unusual transactions and override the categorisation when necessary.
**What to keep for audit.** Records you should retain for the statutory limitation period (varies by jurisdiction; typically 3–7 years for routine tax matters, longer for fraud-suspect cases): all exchange transaction CSVs, all on-chain transactions with txhash references, the fiat-value records as captured, any tax-software output (PDFs, spreadsheets), correspondence with tax professionals. Keep records both digitally (cloud-stored, encrypted) and ideally with a local backup on independent storage. Tax audits can occur years after the relevant tax year, and records that 'were on an old laptop that died' are records you can no longer produce.
**Common record-keeping failures.** (1) Using your phone's camera to snapshot exchange screens — fine as a backup, useless as primary records because not searchable. (2) Trusting that the exchange's CSV will be available forever — exchanges have failed (FTX, Celsius) and lost user-history access. Download your CSVs annually as backup. (3) Forgetting to capture on-chain transactions because they 'live on the blockchain' — the chain has the data but not the fiat valuations and not in tax-software-readable form. (4) Mixing personal wallets and professional wallets — if you do any crypto work for compensation, the records need to be separable.
Example
A user who follows the discipline: every Sunday evening, opens their tracking sheet, looks at any transactions from the past week, fills in or verifies the rows. Each row takes 30 seconds. At the end of a typical year, the sheet has maybe 80 rows. In April, they upload the sheet to Koinly, which classifies and reports. Total April time: under an hour. Compare to a user without the discipline: April involves downloading 6 exchange CSVs (3 of which are now unavailable because of FTX/Celsius collapses), querying Etherscan for every wallet's transaction history, looking up historical ETH/USD prices on CoinGecko at specific timestamps, manually deciding the type of each transaction, dealing with cost-basis ambiguity for swap chains where intermediate balances changed. April time: 30+ hours, with material gaps in the records that the tax pro has to estimate. The compound effect of one minute per week vs thirty hours in April is the whole skill.
Common mistakes
- Believing the chain is sufficient. The chain has the transactions but not the fiat valuations and not the type classification.
- Relying on exchanges to preserve your data. Exchanges fail. Download your records yearly.
- Capturing crypto-to-crypto swaps without recording the fiat values at the moment of swap.
- Skipping small transactions. They accumulate, and the under-reporting compounds across years.
- Storing records only on one device. A laptop failure can wipe out years of tax records.
- Mixing personal and business activity in the same wallets. Tax treatment for income vs investment differs significantly in most jurisdictions.
Check your understanding
Of the following, which records is the most often overlooked, and the most difficult to reconstruct after the fact, for an on-chain DeFi transaction?
Key terms covered
Sources & further reading
- Primary
- Primary
- Secondary
- Secondary
We prioritise primary sources. Where a topic moves quickly (regulation, security incidents), we re-check sources on the cadence shown by the page's "Next review" date.