How to Export Crypto Exchange Transactions for Tax
19 mins read

How to Export Crypto Exchange Transactions for Tax

Last updated: October 24, 2026

Key Takeaways

  • You need the exchange login, the right account or sub-account, and enough access to export history.
  • Open the exchange’s transaction or reports area and choose the correct account.
  • The important columns show what moved, when it moved, and which side received it.
  • You download trade history from the trade or orders section, pick the account and date range, and export the fills as a file.

How to export crypto exchange transactions for tax and profit calculations means pulling raw records from your exchange account into a CSV file, API feed, or downloadable history so a tax tool or spreadsheet can read them. This guide is for anyone who has traded, deposited, withdrawn, or moved crypto between wallets on an exchange and needs the underlying account data, not the tax calculation itself. It assumes you can log in to the exchange and can identify your trade history, wallet addresses, and transaction types. This is information, not financial advice; tax rules differ by country and change often, so a qualified adviser should review your own situation.

What you need before you start

Laptop displaying a crypto trading chart beside a notebook

You need the exchange login, the correct account or sub-account, and enough access to see history and export data. If the account uses two-factor authentication, have the authenticator ready before you open the history page, because many exchanges re-check it before a download or API key change. A clean export usually includes at least trades, deposits, withdrawals, and transfers between wallets; for some users, funding records and staking rewards also matter. If you cannot see one of those categories in the interface, the export will usually be incomplete.

The safest starting point is often the exchange’s own export or reporting page, rather than a screenshot, an email statement, or a list copied by hand. A CSV file is the usual target because most tax software, spreadsheets, and reconciler tools can read it. If the exchange offers API sync, that can reduce manual work, but it also creates a second data path to manage. This page fits into the broader cleanup process described in the hub on crypto transaction records and data cleanup, because export quality decides whether the rest of the workflow is usable. See also crypto transaction records and data cleanup.

A good rule is to collect the widest date range you can access first, then narrow later if you need to. If the exchange limits exports to 90 days, 1 year, or a similar window, plan for multiple files. If the account has several markets or wallets, expect more than one export screen. Because of that, start with the longest available range and save each file with the date window in the name.

How to export crypto exchange transactions step by step

  1. Open the exchange’s transaction or reports area and choose the correct account. Use the main exchange account, margin account, futures account, or sub-account that actually holds the activity. Verify that the page shows your username, account label, or wallet section before you export. If the page only shows one market or one wallet, the export is likely partial.

  2. Select the transaction types you need, not just trades. Include trade history, deposits, withdrawals, and internal transfers if the exchange separates them. Verify that the filter names match the exchange’s own labels, such as spot, funding, earn, or wallet transfer. If there is no deposit or withdrawal option, the export will miss on-chain movement.

  3. Set the date range to cover the full period you need. Choose the earliest available start date and the latest end date, or split the export into chunks if the platform caps the range. Verify the date format on screen, because some exchanges use YYYY-MM-DD while others display local time. If the system truncates the range without warning, you may end up with a gap at month-end or year-end.

  4. Choose CSV export when it is available. CSV is the easiest format for spreadsheets and most crypto tax software. Verify that the file extension ends in .csv and that the download opens as rows and columns, not a PDF or image. If the exchange offers only Excel or JSON, check whether your tool can import it before you continue.

  5. Export each relevant category separately if the exchange splits them. Many platforms give one file for trades and another for deposits and withdrawals. Verify the file names before you close the page, especially if the exchange adds timestamps or account IDs. If you only export one category, your profit or tax calculation may miss the cost basis trail.

  6. If available, generate an API key for read-only sync instead of manual copy-paste. Read-only means the key can pull data but cannot place orders or move funds. Verify that the permissions exclude trading, withdrawals, and wallet access; many exchanges show a checkbox list. If the permissions are broader than read-only, stop and reconfigure them before connecting anything.

  7. Download the file and open it immediately in a spreadsheet or viewer. Check that the columns populate and that there are no blank rows, merged cells, or corrupted symbols. Verify that the first few lines show timestamps, asset symbols, quantities, fees, and transaction IDs where the exchange provides them. If the file opens as one long column, the delimiter may be wrong; try comma, semicolon, or tab import settings.

  8. Save the raw export and a second working copy. Keep the original file untouched and create a separate file for cleaning or mapping fields. Verify that the raw copy still matches the exchange download size and date range. If you overwrite the original, you lose the audit trail and make later checks harder.

Which columns matter in a crypto transaction export?

Laptop with candlestick trading chart and market screens

The columns that matter are the ones that identify what moved, when it moved, and on which side of the transaction it landed. A useful export usually includes timestamp, asset or currency code, quantity, price or rate, fee, transaction type, transaction ID, status, wallet or account name, and destination or source address when withdrawals are involved. If the exchange omits price for transfers, that is normal; if it omits timestamps or asset codes, the file is weak for reconciliation.

A trade export should let you tell a buy from a sell and match each fill to an order or trade ID. A deposit or withdrawal export should show the direction, network, address, and confirmation status if the exchange tracks it. Wallet addresses matter because they help identify whether a transfer went to your own wallet, another exchange, or an external counterparty. If an export hides the address behind a truncated string, keep the transaction ID so you can cross-check it on the chain explorer or in the exchange’s own record. For that cross-check, use the exchange record first and then a chain explorer such as Etherscan or Blockchain.com Explorer.

The exact column names differ by platform. One exchange may call the same field “executed at,” another “fill time,” and another “created timestamp.” That is fine as long as the underlying data is present. What is not fine is a file that shows only a running balance with no individual transaction lines, because that usually is not enough to reconstruct activity. If you are using a tax tool, match the tool’s import template rather than renaming fields at random. The IRS guidance on digital asset records and cost basis is a useful reference point in the United States, and IRS Publication 550 covers investment recordkeeping.

How do I download trade history from a crypto exchange?

You download trade history by going to the exchange’s trade or orders section, choosing the account and date range, and exporting the closed trades or fills as a file. The exact label may be “fills,” “executions,” or “order history,” and those are not identical on every platform. A fill is one matched piece of an order, while an order history entry may group several fills together.

The key check is whether the export shows individual fills or only completed orders. For tax and reconciliation work, fills are usually more useful because they show the actual executed price and quantity. Verify that the file includes order ID, trade ID, timestamp, pair, side, price, amount, and fee where the exchange provides them. If the export skips partial fills, your totals may not line up with the account balance or with a later withdrawal.

Some exchanges split trade history by market, such as spot versus margin, or by wallet type. If your activity spans more than one section, export each one. A missing market segment is one of the most common reasons a spreadsheet ends up short. If the exchange only shows a web table with a 30-day window, look for a reports page or API endpoint; if neither exists, you may need multiple dated exports. A 30-day limit is a practical reason to plan more than one file.

When the standard export is not enough

The account spans more than one exchange or wallet: that means one file will not tell the full story — export each venue separately and keep the source names in the filename.

The exchange has no CSV download for an older period: that means the web history is limited — use the oldest available export, then request archived records from support if the platform offers that route.

The account includes futures, margin, or earn products: that means plain spot-trade history will miss activity — pull the product-specific reports, because those records often sit in different menus.

Deposits and withdrawals involve multiple networks: that means the same asset may appear more than once with different addresses or chain labels — capture the network field so you do not merge unrelated transfers.

The file is missing fees, timestamps, or transaction IDs: that means the export may not support reliable reconciliation — use another export format, another reporting tab, or API sync if the exchange allows it.

You shared an account or used a corporate exchange login: that means ownership and tax responsibility may not match the log-in name — get qualified help before relying on the export alone. A tax professional or accountant can help determine whether the records are usable.

When standard export stops being enough, the fix is usually more data, not more guessing. In a high-stakes finance file, a gap is better flagged than papered over. If a platform gives you only summary balances, that is a poor substitute for line-item records.

The mistakes that cause bad export files

The most common mistake is exporting only trades and forgetting deposits and withdrawals. That leaves out the on-ramp and off-ramp records that explain where assets came from and where they went. The correct alternative is to export each transaction class separately and label the files clearly, such as spot_trades_2023.csv and withdrawals_2023.csv.

Another mistake is mixing local time and UTC without noticing it. That can shift transactions across day boundaries, which is a problem when a tax tool groups activity by date. The correct alternative is to record the time zone shown by the exchange and keep it consistent while you review the file.

A third mistake is relying on manual copy-paste from the website. That often drops hidden rows, truncates decimals, or loses transaction IDs. The correct alternative is to use the built-in export or the API, then verify row counts against what the exchange page shows.

A fourth mistake is exporting from the wrong account. Spot, margin, futures, and sub-accounts can each hold separate records, and a single dashboard view may not include all of them. The correct alternative is to check the account label before every export and save the label in the file name.

A fifth mistake is editing the raw CSV before saving a copy. That can break delimiters, strip leading zeros, or change asset symbols. The correct alternative is to keep one untouched original and do all cleanup in a separate file. If the CSV no longer opens cleanly after editing, you have damaged the source.

What to do if the exchange offers API sync instead of a file

API sync is a direct data connection that lets another app pull transaction records from the exchange on a schedule. It is useful when you have recurring activity or multiple wallets, because it can reduce repeated downloads. It also introduces an access key you have to manage, and the permissions matter. A read-only API key is the standard baseline; anything that can trade or withdraw is more access than a reporting connection needs.

Before connecting an API, verify three things: the exchange supports read-only access, the tax or accounting app can import the fields you need, and the connection pulls the same categories you would download manually. If the app only syncs trades and ignores deposits, withdrawals, or transfers, it is not enough on its own. If the exchange rotates keys or expires them, note the renewal date in your records so the feed does not silently stop.

Manual export still has value even when API sync is available. A file gives you a snapshot you can audit later, and it is useful if the API mapping changes after the exchange updates its system. For sensitive accounts, keeping both is often the cleanest approach: the API for ongoing imports, the CSV for archival proof. If the exchange supports a web dashboard with downloadable statements, keep those too, because tax or bookkeeping support may ask for source records. Coinbase, Kraken, and Binance all offer downloadable account records in some form, but the exact menus differ by product and region. See Coinbase Help, Kraken Support, and Binance Support.

How do I export deposits and withdrawals from an exchange?

You export deposits and withdrawals from the wallet, funding, or transaction history section, not from the trade screen. The exact menu name differs, but you are looking for movement into or out of the exchange, not market activity. The export should show asset, amount, timestamp, network, address, transaction ID, and status if the platform tracks it.

The useful check is whether the file distinguishes between internal transfers and external blockchain movements. Internal transfers often move between your own exchange wallets and may not have a public chain transaction ID, while external withdrawals usually do. If the export blends them together, mark the rows by type before you hand the file to any reporting tool. If the exchange shows deposit confirmations or “completed” status, keep that column; it helps explain missing or pending balances.

For deposits, confirm the source address or network if it appears. For withdrawals, confirm the destination address and whether the exchange truncated it on screen. If the platform only gives a summary balance change, go back and find the detailed transaction list. A balance delta is not the same thing as a transaction export.

If a country-specific tax rule depends on source or destination tracking, the exchange export alone may still not be enough. In that case, preserve the raw CSV, the account screenshots that show the menu path, and any chain explorer records that match the transaction IDs. That gives a clearer paper trail for the adviser who reviews your file. In the United Kingdom, HMRC guidance on cryptoassets also stresses keeping records of dates, amounts, and values, so the export is only one part of the file set.

What a good export looks like

A good export is complete enough that another person could trace the account activity without guessing. It has the right date range, the right account, separate records for trades and wallet movement, and enough fields to identify each line. It opens as a readable CSV file, not a corrupted blob. The names on the files tell you what is inside without opening them.

A bad export is missing one class of transactions, merges several wallets, or strips IDs and timestamps. If you are unsure, treat the file as incomplete until you can prove otherwise, and if the position matters for tax reporting, consult a qualified tax professional or accountant. That standard is stricter than most exchange interfaces, but it is the right one for tax and profit records. When the data is clean, the next step is easier; when it is not, no calculator can fix the missing source records.

How to download trade history from a crypto exchange

You download trade history from the exchange’s orders, fills, or reports page by selecting the account, market, and date range, then exporting the completed trades as a CSV file. The file should show each fill or order line clearly enough to match the executed price, quantity, and fee.

Drafted with AI; not yet reviewed by a person.

Leave a Reply

Your email address will not be published. Required fields are marked *