Export help · Coinbase

How to export your Coinbase transaction history for your crypto tax report

Coinbase lets you download a transaction history statement as a CSV file. It lists your buys, sells, sends, receives, converts and rewards, and each row already carries a fiat price and value, so CryptoTaxOwl rarely needs to look up a price. This page shows you how to get the file, what each column means, the quirks to know about and how the file is read in your browser.

  • CSV
  • Transaction history statement (Statements page)
  • Steps not yet confirmed on an official page
  • Updated 7 October 2026

How to export your Coinbase history

  1. 1

    Sign in on the Coinbase website

    Use a desktop browser if you can. The statements page is easier to use there than in the mobile app, and the CSV downloads straight to your computer.

  2. 2

    Open the Statements page

    Select your profile icon, then Settings. Look for a Statements (or “Reports”) entry in the settings menu. Coinbase moves this menu from time to time, so if you can’t see it, search the Coinbase Help Centre for “statements”.

  3. 3

    Choose a custom statement covering everything

    In the custom statement area, set Asset to all assets, Transaction type to all types and the date range to cover every year you held crypto, not just the current tax year. Older purchases are needed to work out your cost basis.

  4. 4

    Pick CSV and generate

    Choose CSV as the format (not PDF or HTML) and select Generate. Larger accounts can take a little while to process.

  5. 5

    Save the file and leave it unchanged

    Save the CSV somewhere you can find it. Don’t open and re-save it in a spreadsheet first, because that can change dates and number formats. Then drop it into the crypto tax calculator.

We couldn’t confirm these steps on a current official Coinbase help page, so they’re based on secondary sources. Check them against the current app; if a menu has moved, look for the full transaction history export. Wrong or out of date? Tell us at errors@cryptotaxowl.com.

What the columns mean

Column headers as documented by community and tax-tool documentation for the current Coinbase transaction history CSV, and checked against the parser’s test file. Coinbase can rename or add columns without notice, so compare these with the header row in your own file.

ColumnWhat it means
IDCoinbase’s own reference for the transaction. Used to spot duplicates if you import overlapping files.
TimestampDate and time of the transaction, normally in UTC.
Transaction TypeWhat happened, for example Buy, Sell, Send, Receive, Convert or a rewards or staking income type.
AssetThe crypto asset the row is about, such as BTC or ETH.
Quantity TransactedHow many units of the asset moved in this row.
Price CurrencyThe fiat currency used for the price and value columns, such as USD, GBP or EUR.
Price at TransactionPrice of one unit of the asset in the price currency at the time of the transaction.
SubtotalValue of the transaction before fees, in the price currency.
Total (inclusive of fees and/or spread)Value including Coinbase’s fees and spread. For a buy this is what you paid; for a sell it is what you received.
Fees and/or SpreadThe fee and spread Coinbase charged, in the price currency. Treated as an allowable cost of the trade.
NotesFree-text description. For Convert rows it names the asset you received; for sends it may include the destination.

Quirks to know

  • Lines before the header. The file starts with a few title and account lines before the real column header row. You don’t need to delete them: CryptoTaxOwl searches the first 20 lines for the header. If you have already removed them, the file is still recognised.
  • Convert rows are one row, not two. A Convert from one crypto asset to another appears as a single row for the asset you gave up. The asset and amount you received are written in the Notes text (along the lines of “Converted 0.5 ETH to 1,000 USDC”). CryptoTaxOwl reads both sides from the note, so a convert becomes a crypto-to-crypto trade.
  • Fiat values are already there. Every row has a price and a value in your price currency, so you rarely see a missing-price issue for Coinbase rows.
  • Sends and receives are transfers, not sales. A Send to a wallet you own is not a disposal, but the file can’t tell whether the destination was yours. You confirm that during transfer matching.
  • Rewards and staking rows appear with their own transaction types and are treated as income at the value shown, unless your country setting says otherwise.

How CryptoTaxOwl reads this file

When you drop the CSV into the workspace, it is read in your browser. Nothing is uploaded, and CryptoTaxOwl never asks for API keys, recovery phrases or passwords.

  1. The format is detected from the set of column headers (a header fingerprint), after skipping the lines above the header.
  2. Each row is mapped to a normalised transaction: buys and sells against fiat, converts as crypto-to-crypto trades, sends and receives as transfers, and rewards as income.
  3. Values come from the file first. The Subtotal, Total and Fees and/or Spread columns are used before any price dataset, as described in how CryptoTaxOwl works.
  4. A Transaction Type the parser doesn’t know is never silently treated as taxable or non-taxable. It becomes an “Unknown type” issue that you resolve.
  5. Sends to your own wallets need matching with the deposit on the other side. See crypto transfers between your own wallets.

Known issues and gaps

  • Crypto that arrived from elsewhere. If you received crypto from another platform, the Coinbase file shows a Receive with no purchase behind it. That creates a missing cost basis issue until you import the other platform’s file, for example your Kraken ledger export or Binance transaction history.
  • Coinbase’s separate products. The self-custody wallet app and products such as derivatives or the business account have their own histories. Check that the statement you downloaded covers the account you actually traded on.
  • Derivatives and margin. Rows that look like futures, perpetuals or margin activity are flagged as unsupported and excluded from the calculation by default. You can include them, with a warning.
Check the earliest date in your file. If your first row is a sell or a send rather than a buy, part of your history is probably missing.

If your file isn’t recognised

Coinbase changes its export from time to time. If the workspace doesn’t recognise your file, use the column mapper that appears automatically: pick which column holds the date, type, asset, amount and value, and save the mapping for next time. You can also turn the file into CryptoTaxOwl’s template format first with the crypto CSV converter. Make sure you exported CSV rather than PDF, because PDF statements can’t be imported.

Coinbase export: frequently asked questions

Does the Coinbase statement include my self-custody Coinbase wallet app?

No. The statement covers your Coinbase account. The separate self-custody wallet app keeps assets on the blockchain under your own keys, so its activity doesn’t appear in the account statement. Add that activity separately, for example through the column mapper or the CSV converter.

How far back can I export?

The custom statement lets you choose a date range. Set it to start before your first purchase so that every cost basis is included. If the date picker won’t go back far enough, generate several statements for consecutive periods and import them all; overlapping rows are flagged as duplicates rather than counted twice.

Do I need Coinbase’s gain/loss report as well?

No. CryptoTaxOwl works from the transaction history and calculates gains with your country’s rules, such as the UK pooling rules or US per-wallet lots. You can compare the two if you like.

Why does a Convert show only one asset?

Coinbase writes a convert as one row for the asset you gave up and puts the asset you received in the Notes column. CryptoTaxOwl reads the note to build both sides of the trade. If a note can’t be read, the row is shown as an issue for you to complete.

Is it safe to open the file in a spreadsheet first?

Looking is fine, but avoid saving it from a spreadsheet. Spreadsheets can reformat dates and long numbers. If you have already done this, the importer’s date and decimal settings in the column mapper help you recover.