If you have used the old generic file format prior to the 12th of August, 2022,
please click the link below for how to convert the file to the new format:

How can I convert the old file format to the new format?

The easiest way to import transactions to Coinpanda is by connecting with API keys or uploading a CSV/XLSX file exported from an exchange or wallet. While Coinpanda has over 700+ integrations today, there might be a few reasons why you want to import transactions using our generic file template instead:

  • The exchange does not support API or exporting transactions as CSV/XLSX file

  • The exported file from the exchange contains wrong or missing data and you need to correct that before uploading the file to Coinpanda

  • The exchange/wallet/blockchain is not supported by Coinpanda yet

  • You want to import transactions that are not available from the exchange or blockchain API

Below is an example of how transactions may be entered in the generic file template:

PS: Click on the image to view a fullscreen version!


  1. Click on the View CSV File button below to open the CSV file in Google Sheets

  2. Click on File → Make a Copy from the top menu on the left side. If you don't have a Google account, you can download the CSV file instead by clicking File → Download → Comma Separated Values (.csv).

  3. Delete all example transactions and add your own according to the requirements explained below

  4. When you are done entering your own data, click File → Download → Comma Separated Values (.csv) to download the file

  5. Upload the file to your Coinpanda account

Note: You can upload the file to all wallets in your Coinpanda account - not just the Custom wallet type!

PS! We recommend studying the example transactions before deleting them to understand how to use the generic file correctly.

If you prefer editing a local version instead, click the buttons below to download the generic file template directly as either XLSX or CSV file:

We recommend editing the XLSX file using Microsoft Excel since using other editing software might break the formatting such that the file cannot be uploaded. If you want to edit a CSV file locally instead of using Google Sheets, we recommend using an editor such as Notepad++ which does not break the formatting (it's free and even comes with a dark mode!)

Pro tip: Do a test import of the file to make sure the file format is not broken after adding a few transactions before you spend a lot of time adding the remaining data!


  • Timestamp (UTC): All dates should be UTC timezone

  • Type: Type must be either Trade, Receive, or Send

  • Sent Amount: The amount sold/withdrawn/sent (outgoing)

  • Sent Currency: Currency sold/withdrawn/sent (outgoing)

  • Received Amount: The amount bought/deposited/received (incoming)

  • Received Currency: Currency bought/deposited/received (incoming)

Optional fields

  • Fee Amount: Any associated fee amount

  • Fee Currency: Fee currency if you paid any fee

  • Net Worth Amount: The value of the transaction in a fiat currency

  • Net Worth Currency: The fiat currency used to value the transaction

  • Label: You can specify labels for both Trade, Receive and Send types. A list of supported labels is shown below.

  • Description: Description of the transaction, eg. Sent bitcoin to mom

  • TxHash: Transaction Hash

Fields explained

Timestamp (UTC)

Coinpanda supports all universally accepted different date formats. However, we recommend using the default format YYYY-MM-DD HH:mm:ss whenever possible to avoid possible issues with incorrect timestamps. This also helps our Customer Support Team to troubleshoot issues if you need assistance with uploading your file.

For example, if we want to enter January 5, 2022, 4:30 PM, we can enter the timestamp in any of the following ways:

  • 2022-01-05 16:30:00 (Recommended)

  • 01-05-2022 16:30:00

  • 05-01-2022 16:30:00

  • 2022/02/05 16:30:00

  • 02/05/2022 16:30:00

  • 05/02/2022 16:30:00

  • 2022.01.05 16:30:00

  • 01.05.2022 16:30:00

  • 05.01.2022 16:30:00


You need to specify one of the following three supported Types for each transaction:

  • Trade - Use this if your transaction involves both a buy and sell side - typically whenever you have exchanged one currency for another. Trade should also be used if you have bought or sold cryptocurrency with fiat because Coinpanda's algorithm will automatically detect that a fiat currency is used and therefore save the transaction as Buy or Sell.

  • Receive - Use this if you have received crypto or fiat - ie. an oncoming transaction. Only the columns Received Amount and Received Currency should be filled for Receive transactions.

  • Send - Use this if you have sent crypto or fiat - ie. an outgoing transaction. Only the columns Sent Amount and Sent Currency should be filled for Send transactions.

Fee Amount and Fee Currency

The fee is always on top of what you paid or sent and can be either a cryptocurrency or fiat currency. Fees can be added to all different transaction types (Trade, Receive, Send).

Example: You bought 0.5 BTC and paid 4,500 EUR + 25 EUR in fees. In this case, Sent should be 4,500 EUR, Received should be 0.5 BTC and the Fee 25 EUR. Alternatively, you can specify Sent as 4,525 EUR (total amount paid) and leave the Fee columns empty which gives the same cost basis and resulting gain/loss.

Net Worth Amount and Net Worth Currency

These fields can be used to value the transaction if:

  1. Coinpanda does not have market rates for the currencies involved

  2. Or you want to value the transaction differently than the market rates used by Coinpanda (we use Coingecko primarily but also other sources)

You can specify the value of all transaction types (Trade, Receive, Send), but the value will be ignored if a fiat currency is either the sell or buy side of the transaction. This is done to avoid mispricing the transaction since the fiat amount is in fact the true value and will always be used to value the transaction by Coinpanda.

The Net Worth Currency must also be a fiat currency of your choice (USD, EUR, AUD, etc). If you instead specify a cryptocurrency in the Net Worth Currency column, it will simply get ignored by Coinpanda.


You can add a label to a transaction to make sure it's tagged correctly for tax purposes. The following lists of labels are supported by Coinpanda today:

Labels supported for Trade transactions:

  • Liquidity In

  • Liquidity Out

  • NFT

  • Swap

Labels supported for Receive transactions:

  • Airdrop

  • Fork

  • Mining

  • Staking

  • Interest

  • Reward

  • Income

  • Gift

  • Realized P&L

  • Receive Loan

  • Received from Pool

  • NFT

Labels supported for Send transactions:

  • Gift

  • Lost

  • Donation

  • Cost

  • Interest

  • Realized P&L

  • Margin Trading Fee

  • Margin Funding Cost

  • Sent to Pool

  • Repay Loan

  • NFT

More information about how labels work in Coinpanda can be found here:

Frequently Asked Questions

How do I import transfers between my own wallets?

Coinpanda will automatically detect any transfers between the wallets added to your Coinpanda account. If you have transferred 1 BTC from Coinbase to Binance and you are using the generic file for both wallets, you should add the following two transactions:

  • Coinbase file: 1 BTC Sent + fee (Type=Send)

  • Binance file: 1 BTC Received (Type=Receive)

You cannot add internal transfers directly in the generic file since a transfer is always between two wallets.

Can I upload an XLSX file instead of the CSV format?

Absolutely, Coinpanda supports both XLS, XLSX, and CSV formats for all files you can upload. We have linked to both formats of the generic file earlier in this article.

The wrong currency is imported!

This typically happens when two or more cryptocurrencies share the same ticker symbol. Because the CSV/XLSX file only contains information about the ticker, Coinpanda does not know which exact currency it refers to by default when there is a duplicate ticker conflict. However, we have an easy fix to this:

  1. Go to the Prices page on Coinpanda and search for the token you want to import. In this example, the token that we want to import is chrono.tech (TIME) and not Wonderland (TIME) which shares the same ticker symbol and will be the currency saved by default when entering TIME in the generic file.

  2. Locate the id of the token from the URL this way:
    In this example, the URL is .../prices/chronobank so we find that the correct id is chronobank.

  3. The last step is to update the symbols in your generic file. To save the correct currency, you will need to replace all TIME symbols with id:chronobank. You can do this manually or using the search and replace function in Google Sheets, Notepad++, or any other editor of your choice. Keep in mind that you must include id: in front of the id and there should be no spaces. For example, if you enter id chronobank or just chronobank it will not be identified correctly.

Here is how to locate the id and enter the id in the generic file:

How can I convert the old file format to the new format?

If you see this screen, it means you are trying to upload the old generic file format which is no longer supported.

The updated Coinpanda generic file format was released on the 12th of August, 2022. From this date, only the new format can be uploaded to your Coinpanda account. If you have previously used the old format, here is how you can easily convert the file to match the new format:

  1. Upload the CSV or XLSX file to Google Drive → right click → select Open with Google Sheets. Google will now create a copy of your file in Google Sheet format.

  2. Next, you need to add and rename the columns to match the new generic file format. You can do so by having another tab open with the new file format so it's easy to compare and see the differences.

  3. When the header is updated, simply save the file as either CSV or XLSX from the top menu on the left side. To save as CSV, click File → Download → Comma Separated Values (.csv)

  4. Now you can upload the file to any of your Coinpanda wallets!

Example transactions explained

Here is an explanation of some of the example transactions added to the generic file template. Click the button below to view the generic file template in Google Sheets:

Row 2: 45000 USD → 1.5 BTC
We have entered Trade in the Type column since the transaction involves both a buy and sell side: bought 1.5 BTC and paid $45,000. We did not pay any fee so this field is left empty. Note: this will be imported as a Buy transaction since the sell side is a fiat currency.

Row 4: 5 ETH → 0.15 BTC + 0.002 BTC fee
This is also a Trade transaction. We exchanged 5 ETH for 0.15 BTC and paid a fee of 0.002 BTC on top of that. The fee is specified separately in the Fee column.

Row 8: 2 ETH Receive (Mining)
We have specified Receive in the Type column since it's an incoming transaction. Mining is specified in the Label column since it's an Ethereum mining reward.

Row 30: 1 BAYC #999 Send (NFT)
Here we have sent a BAYC NFT to a different wallet and we have therefore specified Send in the Type column and NFT in the Label column. Specifying NFT as the label is highly recommended to make it easier to identify and filter transactions in Coinpanda after import. It is also necessary to show your NFT holdings accurately in the tax report.

Do you have further questions related to the example transactions or how to use the generic file in general? Send us a message in the live chat!

Did this answer your question?