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 900+ 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
You want to import transactions for making manual corrections and adjustments to fix negative balance warnings, portfolio discrepancies, etc.
Below is an example of how transactions may be entered in the generic file template:
Click on the View CSV File button below to open the CSV file in Google Sheets
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 by clicking File → Download → Comma Separated Values (.csv).
Delete all example transactions and add your own according to the requirements explained below
When you are done entering your data, click File → Download → Comma Separated Values (.csv) to download the file
Upload the file to your Coinpanda account
Note: You can upload the generic file to all wallets in your Coinpanda account
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 the 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 ensure 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
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)
Type: Can be added to make adding transactions to the file easier
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, e.g. "Sent bitcoin to mom"
TxHash: The transaction hash
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 issues with incorrect timestamps. This also helps our Customer Support Team troubleshoot issues if you need assistance 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:
Although not required, you can 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.
Receive - Use this if you have received crypto or fiat - i.e., an incoming transaction. Only the columns
Received Currencyshould be filled for Receive transactions.
Send - Use this if you have sent crypto or fiat - i.e., an outgoing transaction. Only the columns
Sent Currencyshould 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 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, enter 4,500 EUR in the
Sent columns, enter 0.5 BTC in the
Received columns, and 25 EUR for
Fee. Alternatively, you can specify Sent as 4,525 EUR (total amount paid) and leave the Fee columns empty, giving the same cost basis and resulting capital gains calculations.
Net Worth Amount and Net Worth Currency
These fields can be used to value the transaction for these reasons:
If Coinpanda does not have market rates for the currencies involved
If 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 since the fiat amount is 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 get ignored by Coinpanda.
You can add a label to a transaction to ensure it's tagged correctly for tax purposes. The following lists of labels are supported by Coinpanda today:
Labels supported for Trade transactions:
Labels supported for Receive transactions:
Labels supported for Send transactions:
Margin Trading Fee
Margin Funding Cost
More information about how labels work in Coinpanda can be found here:
Frequently Asked Questions
How do I import transfers between my wallets?
Coinpanda will automatically detect 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: 1 BTC Sent + fee
Binance: 1 BTC Received
You cannot add internal transfers directly in the generic file since a transfer is always between two wallets.
Can I import NFT transactions?
Yes, of course! While Coinpanda has full support for NFTs from more than 65+ blockchains, you can also import NFTs with the generic file by following these steps:
All transactions must have NFT in the Label column
In the currency columns, enter
For example, if we want to import transactions for BAYC #203, we will enter the following in either the Sent Currency or Received Currency column:
If you don't add the contract address for NFTs, the transaction will be skipped, and you will see the following error message on the Import Summary page:
Can I upload an XLSX file instead of the CSV format?
Coinpanda supports 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:
Go to the Markets page on Coinpanda and search for the currency you want to import. In this example, we want to import Gomining Token (GMT) instead of STEPN (GMT), which shares the same ticker symbol and will be the currency saved by default when entering GMT in the generic file.
IDof the token from the URL this way:
In this example, the URL is .../market/gmt-token, so we find that the correct id is gmt-token.
The last step is to update the symbols in your generic file. To save the correct currency, you must replace all GMT symbols with
GMT:gmt-token. You can do this manually or use the search and replace function in Google Sheets, Notepad++, or any other editor you choose. Remember that you must include
symbol:before the ID, and there should be no spaces. For example, if you enter
GMT gmt-token, it will not be identified correctly.
Here is how to locate the ID:
Here is how to enter the ID in the generic file:
How can I convert the old file format to the new format?
If you see the screen below, 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. Only the new format can be uploaded to your Coinpanda account from this date. If you have previously used the old format, here is how you can easily convert the file to match the new format:
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.
Next, 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.
When the header is updated, save the file as CSV or XLSX from the top menu on the left side. To save as CSV, click File → Download → Comma Separated Values (.csv)
Now, you can upload the file to any of your Coinpanda wallets
Example transactions explained
Here is an explanation of some 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 9: 7.5 ETH Receive (Staking)
We have specified Receive in the Type column since it's an incoming transaction. Staking is specified in the Label column since it's an Ethereum mining reward.
Row 36: 1 BAYC #6778 Send (NFT)
In this case, we have sent a BAYC NFT to a different wallet and entered Send in the Type column and NFT in the Label column. Specifying NFT as the label and the contract address in the currency column is required for all NFT transactions.