People export transaction history for one main reason: tax reporting. Specifically, cost basis tracking — you need to know what you paid for tokens and when, in a format a tax tool or accountant can actually read. Portfolio analysis and fee reconciliation are real secondary uses, but they're less urgent for most people.
The complication is that there isn't one method. How you export depends on whether you're pulling from a centralised exchange or a self-custody wallet, which chain you're on, and what level of detail the export actually contains. Neither source hands you a complete picture automatically. For anyone who's moved funds between exchanges and self-custody wallets, you'll need to combine multiple exports.
Most major exchanges — Coinbase, Binance, Kraken, Gemini — have a built-in export function, usually under Account History or a dedicated Tax Centre section. The output is typically a CSV.
What that CSV contains varies significantly by exchange:
The practical flow: go to the tax or history section, set your date range (all time if possible, or by tax year), choose CSV, download, then spot-check the transaction count against what you expect to see.
One thing people consistently miss: exchange exports only capture what happened on that exchange. If you withdrew tokens to a self-custody wallet and did anything else with them — swapped on a DEX, staked, added liquidity — that activity isn't in the exchange export. It needs to be captured separately.
For wallets like MetaMask, Phantom, or a hardware wallet connected to Ledger Live, the wallet application itself doesn't provide a complete transaction export. The transaction list the app shows you is a display of on-chain data — the actual history lives on the blockchain, not inside the app.
The correct method for self-custody wallet history requires your public wallet address. Not your private key, not your seed phrase — those are never needed for this, and if something is asking for them, stop.
For Ethereum and EVM-compatible chains:
For Solana, the equivalent explorer is Solscan. For BNB Chain, it's BscScan. Each chain has its own explorer and its own export.
That's the part that surprises people: multi-chain activity means multiple exports. Ethereum mainnet, Arbitrum, Optimism, Base, and Solana are all separate chains with separate histories. There's no single export everything function.
The cleaner workflow for anyone with meaningful on-chain activity is to let tax software handle the import side. Tools like Koinly, Cointracker, and Taxbit connect via API for exchanges (you grant read-only API access) and via public wallet address for on-chain activity. They pull the history, classify events, and allow you to export the processed data in standard formats.
This doesn't eliminate the underlying problem. It just moves it one layer. The software still needs all your wallet addresses and exchange connections to be complete — and it still inherits the gaps. DeFi interactions often come through as unclassified contract calls that the software misidentifies or fails to label correctly. NFT and yield farming activity in particular tends to require manual review.
That said, for anyone with more than 100 transactions, doing this manually in a spreadsheet is unreasonable. Tax software is the practical path.
The binding constraint is completeness. Every source has limits:
There's no clean solution to multi-chain fragmentation right now. Cross-chain indexing exists, but producing a unified export from those tools requires either using a third-party tax product or working with APIs, which isn't practical for most users.
The 1099-DA broker reporting rule (US) changes the verification requirement starting with 2025 tax year returns. Exchanges must now file 1099-DA forms directly with the IRS. That means your self-generated transaction export needs to reconcile with what the exchange reported — not just be internally consistent. Discrepancies between your export and the 1099-DA you receive could create issues. Checking your export against any 1099-DA form becomes a meaningful step in the filing process.
For on-chain activity, no equivalent reporting requirement exists. DeFi protocols don't file 1099s. The export process there remains entirely manual and self-reported.
1099-DA implementation proceeds on schedule for 2025 tax year. Exchange export formats improve to align with reported data. Tax software classification improves for DeFi events, reducing the volume of manual corrections.
Congressional action delays or narrows the 1099-DA scope — in that case, the reconciliation step against broker-reported data matters less. A unified cross-chain export layer that consolidates multi-network activity into a single file would simplify the process significantly, but doesn't exist in practical form yet.
Now: Pull exports for all sources — exchanges and self-custody wallets — before filing. Verify transaction counts. If you hit Etherscan's 5,000-transaction limit, use date-range chunking.
Next: For 2025 tax year returns, expect 1099-DA forms from exchanges. Cross-reference your exports against those forms.
Later: Multi-chain export tooling is improving but fragmented. Don't rely on a single-source solution for current-year filing.
This covers the mechanical process of exporting transaction data for record-keeping and tax preparation. It doesn't constitute tax advice, doesn't address which cost basis method to use, and doesn't recommend any specific software. The export is an input to the tax calculation process, not the calculation itself.




