Koinly Guide

How to Export Trade History for Taxes: A Step-by-Step Guide

Exporting your trade history for taxes doesn't have to be a headache. The direct answer is that you need to generate a comprehensive CSV or API-based report from your exchange or wallet, then format it so your tax software (like Koinly) can read it accurately. This process involves three core steps: locating the native export tool, cleaning the data for completeness, and importing it into a crypto tax calculator to produce your final tax forms. Below, we break down exactly how to do this, what to watch out for, and how to handle common pitfalls. ## Why a Raw Export Isn't Enough for Tax Reporting Most exchanges let you download a transaction history, but that file rarely contains everything your tax software needs. A standard CSV from an exchange might list the date, pair, and price, but it often misses critical fields like the exact transaction fee, the fiat value at the time of the trade, or the wallet address for transfers. ### The Problem with Missing Data If you import a file with missing fee data, your capital gains calculation will be slightly off. If you’re missing internal transfer records (moving funds from your spot wallet to your staking wallet), your tax software will see a disposal that never happened, potentially flagging a false taxable event. ### The Solution: Standardize Before You Import Your goal is not just to export data, but to export *complete* data. Most tax platforms, including Koinly, accept a universal CSV template. You will likely need to map your exchange’s columns (like "Amount" or "Total") to the template’s columns (like "Quantity" and "Value"). This mapping step is where most users make mistakes, so take your time. ## Step-by-Step: Exporting from Major Exchanges The exact buttons vary, but the logic is consistent across centralized exchanges. You are looking for a section labeled "Reports," "Statements," or "History." ### How to Export from Centralized Exchanges (CEX) 1. Log in to your exchange account. 2. Navigate to your wallet or portfolio section. 3. Look for a "History" or "Transactions" tab. 4. Select a date range (ideally, your entire tax year). 5. Choose the file format (CSV is almost always the safest bet). 6. Click "Export" and wait for the email or download link. **Pro Tip:** Always export *all* transaction types, not just trades. This includes deposits, withdrawals, and airdrops. If your exchange only allows you to filter by type, export each type separately to ensure nothing is missed. ### Handling Decentralized Wallets and DeFi For self-custody wallets, you cannot simply click "Export." You must use a blockchain explorer or a portfolio tracker that integrates with your wallet address. - **For Ethereum and EVM chains:** Use a service that reads your public address and pulls all ERC-20 transfers and smart contract interactions. - **For Bitcoin:** Export your transaction list from your wallet software or use a block explorer API. If you use a hardware wallet, connect it to a read-only interface that generates a CSV of your receive and send addresses. This is essential because DeFi trades often involve multiple token swaps that are not recorded as simple "buys" and "sells" on a central ledger. ## Cleaning Your Data: The "Hidden" Step Once you have your raw CSV, open it in a spreadsheet editor. You are looking for three specific issues that will break your tax calculation. ### 1. Duplicate Entries If you exported trades from both the exchange's "Fills" report and the "Account Statement," you will likely have duplicates. You must remove these, or your gains will be doubled. ### 2. Timestamp Formats Tax software expects a specific date format (usually UTC or ISO 8601). If your exchange uses a different timezone (e.g., EST) or a different format (e.g., `MM/DD/YYYY` vs `YYYY-MM-DD`), you must standardize this. A mismatch here can cause the software to calculate the cost basis on the wrong day, leading to incorrect short-term vs. long-term classification. ### 3. Missing Cost Basis for Transfers If you moved crypto from Exchange A to Exchange B, the CSV from Exchange B will show a "Deposit" but no cost basis. You must manually add the original purchase price from Exchange A to that deposit record, or your tax software will assume the cost basis is zero, resulting in a massive taxable gain when you sell. ## Importing into Koinly and Final Verification After cleaning your files, you are ready to import. This is where the magic happens, but you should not blindly trust the output. ### The Import Process 1. Log in to your Koinly account. 2. Navigate to the "Wallets" section. 3. Select "Add Wallet" and choose your exchange from the list. 4. Upload your cleaned CSV file. 5. Wait for the sync to complete. Koinly will automatically match your transactions, calculate the cost basis, and generate your tax reports. ### The Review Checklist Before you download your final report, run this quick audit: - **Check the "Uncategorized" tab:** If there are transactions here, your tax software couldn't figure out what they were. You must manually categorize them as "Income," "Cost," or "Transfer." - **Verify the balances:** Compare the ending balance in Koinly for each asset with your actual wallet balance. If they don't match, you missed a transaction. - **Look for "Missing Price" warnings:** If Koinly couldn't find a price for a token on a specific date, it will use $0.00. You need to manually input the correct value, or your gains will be understated. ## Comparison: Manual Spreadsheets vs. Tax Software If you are wondering whether you can just do this manually, here is a quick reality check. | Task | Manual Spreadsheet | Tax Software (e.g., Koinly) | | :--- | :--- | :--- | | **FIFO/ACB Calculation** | Complex formulas required; high risk of error. | Automated and audited. | | **Handling Forks/Airdrops** | Must manually research fair market value. | Automatically identified and priced. | | **Cost Basis Tracking** | Requires a separate sheet for every asset. | Tracks automatically across wallets. | | **Tax Form Generation** | You must manually fill out Schedule D and Form 8949. | Generates the forms with one click. | | **Time Investment** | 10-20 hours per year, depending on trade volume. | 1-2 hours for data cleaning and review. | While a manual spreadsheet is possible, the risk of mathematical errors and missing data is high. For most users, using a dedicated tool is the safer, more accurate route. ## Final Thought: The Audit Trail Your exported trade history is your legal evidence. Even after you import it into Koinly and file your taxes, keep the original CSV files and the import confirmation. If the IRS or your local tax authority ever questions a figure, you need to be able to point to the exact source data. Store these files in a secure cloud drive or encrypted folder, and keep them for at least the statute of limitations period in your jurisdiction.