There is no button that turns exchange history into a finished tax return, but exporting the right reports does most of the reconciliation work for you. This is for anyone who bought, sold, swapped, or withdrew crypto on Coinbase, Binance, Kraken, or Gemini and now has to hand a preparer, or tax software, a transaction history that actually adds up.
In short
- Exchange tax reports export trade, deposit, and withdrawal history as CSV files that tax software can import directly.
- Coinbase, Binance, Kraken, and Gemini each build reports differently, so export steps and file formats are not interchangeable.
- Coinbase's daily withdrawal limit is €100,000 per day, which matters when you are matching large transfers off the platform against bank statements.
- Transfers to self-custody wallets or other exchanges rarely appear as taxable events on the sending exchange's report, so you have to track them separately.
- Exporting reports is free on every major exchange; the real cost shows up later in tax software subscriptions or an accountant's billable hours.
Key facts
| Coinbase | |
|---|---|
| Fees | — |
| Limits | Daily withdrawal limit: €100,000 per day |
| Deposit methods | — |
| Country availability | — |
What you need before exporting anything
Who this is for
Anyone who bought, sold, converted, staked, or withdrew crypto on a centralized exchange during the tax year and now needs to report gains, losses, or income to a tax authority.
What to gather first
- Login access to every exchange you used, including accounts you stopped trading on months ago.
- Confirmation that identity verification is complete. Several exchanges will not release full report downloads until KYC is finished, which can stall an export at the worst possible time.
- A list of wallet addresses you sent crypto to or received crypto from, so transfers can be matched across platforms instead of counted twice.
- A cost-basis method you intend to use, such as first-in-first-out or specific identification. Exchanges do not all default to the same method in their generated reports.
- Prior year records if this is not your first filing, so opening balances match the closing balances from last time.
- A destination for the exported data: tax software, a spreadsheet you control, or an accountant who wants raw files rather than summaries.
One line: gather account access, wallet addresses, and prior records before you open a single export menu.
How to export and prepare the reports
- Log into each exchange separately and confirm the account tied to your tax identity is the one you are exporting from, not a linked sub-account or an old email.
- On Coinbase, go to the tax documents or reports section and generate a transaction history export; if you also withdrew funds, check those movements against your bank statements, keeping in mind the platform's buy and withdrawal limits.
- For tax reporting Binance, use the account statement or tax reporting tool rather than the basic trade history page, since the basic page often omits conversions and staking rewards.
- For tax reporting Kraken, pull the ledger export, which lists deposits, withdrawals, trades, and staking rewards in one file instead of splitting them across separate exports.
- For tax reporting Gemini, download the activity report from account settings; Gemini separates earn/staking activity from spot trades, so you may need two exports instead of one.
- Cross-check every outbound transfer against the receiving wallet or exchange. If crypto left Coinbase for a hardware wallet, the Coinbase export shows a withdrawal, not a taxable disposal, and you need the receiving side to close the loop. See the difference between self-custody and exchange custody if that distinction is unclear.
- Normalize the file formats. Some exports use ISO timestamps, others use local time; align them before importing into software, or gains and losses will land in the wrong tax period.
- Import each cleaned file into your tax software or spreadsheet, then reconcile the total deposits and withdrawals against your own bank and wallet records before finalizing anything.
- Save the raw exports, not just the summarized totals. If a tax authority asks questions later, the original CSV files are the evidence, not the number you typed into a form.
One line: export from each exchange's dedicated tax or ledger tool, then reconcile transfers by hand because no export does that part for you.
Fees and limits that affect your export
Generating and downloading a tax or transaction report costs nothing on Coinbase, Binance, Kraken, or Gemini. The friction is elsewhere: verification tiers, withdrawal limits, and how far back the export tool actually reaches.
| Factor | What it affects |
|---|---|
| Withdrawal limits | Coinbase caps daily withdrawals at €100,000 per day, which is relevant if you moved large sums off-platform and need to match that figure against bank deposits over multiple days |
| Verification tier | Lower tiers on some exchanges restrict report scope or delay export access until documents clear |
| Export history depth | Some exchanges only generate detailed reports for a limited lookback window, so older activity may need a manual account statement request |
| File format | CSV exports vary in column structure between exchanges, so a spreadsheet template built for one exchange rarely fits another without editing |
The withdrawal limit matters less for the tax calculation itself and more for reconciliation. If a bank deposit does not match a withdrawal because it was split across two days to stay under a daily cap, that gap can look like a missing transaction until you notice the pattern.
One line: exports are free everywhere, but withdrawal limits and verification tiers control how quickly and completely you can pull the data you need.
Common export problems and how to fix them
Transfers to your own wallet look like taxable events
An exchange export cannot see what happens after coins leave the platform. It records the withdrawal, not the disposal. Keep a separate log of self-custody transfers so tax software does not mistakenly flag every withdrawal as a sale.
Duplicate transactions after importing multiple exports
This usually happens when a transfer between two of your own exchanges gets counted once as a withdrawal on one side and once as a deposit on the other, then both get treated as separate taxable events. Match the two entries manually and remove the duplicate.
Missing history from an old or dormant account
Some exchanges limit how far back automated reports go. If you need older records, look for a manual account statement request option in account settings, or contact support directly; do not assume an empty export means no activity occurred.
Staking or rewards income not appearing in the trade history
Gemini and Kraken both separate earn or staking activity from spot trading in their exports. If a reward never shows up, check whether you downloaded only the trade ledger and skipped the earn or rewards report.
Cost basis does not match your own calculation
Exchanges often assume first-in-first-out by default. If you intend to use a different method, do not rely on the exchange's built-in gain and loss summary. Export raw transaction data instead and let your tax software or accountant apply the method you actually want.
CSV will not import into your tax software
Column headers differ between Coinbase, Binance, Kraken, and Gemini. Before importing, check whether your software has a dedicated import template for that specific exchange rather than a generic CSV importer, which often misreads date or amount columns.
One line: most export problems come from transfers and rewards that live outside the trade history, not from the trades themselves.
Questions
Do I need to export reports from every exchange I have ever used, even inactive ones?
Yes, if you had taxable activity on that account during the tax year in question. Dormant accounts can still hold unreported trades or rewards from earlier activity.
Does Coinbase report my activity directly to tax authorities?
Coinbase, like other major exchanges, may issue certain tax forms depending on your activity and jurisdiction, but you are still responsible for exporting and reconciling your own complete transaction history, since forms do not always cover every transaction type.
Can I use one spreadsheet template for Coinbase, Binance, Kraken, and Gemini exports?
Not without editing it. Each exchange structures its CSV columns differently, so a template built for one will misread data from another unless you adjust the headers first.
What happens if my withdrawal history does not match my bank deposits?
Check whether a large transfer was split across multiple days to stay under a platform's daily withdrawal limit, since that alone can create what looks like a missing transaction.
Should I keep the raw export files or just the summary totals my software generates?
Keep the raw files. Summaries are convenient, but if you need to answer questions later, the original exchange export is the primary record.
References
| # | Source | Reliability | Checked |
|---|---|---|---|
| 1 | help.coinbase.com — Daily withdrawal limit | Official source | 2026-09-18 |






