This guide will show you how to convert your custom csv or excel spreadsheet into something that can be easily imported into Koinly.
Note: If you have exported a spreadsheet from an exchange and its not being imported into Koinly, please contact us on firstname.lastname@example.org or hop onto the live chat. We are always looking to add support for new csv formats.
The CSV file format that can be imported into Koinly looks like this:
Date,Sent Amount,Sent Currency,Received Amount,Received Currency,Fee Amount,Fee Currency,Net Worth Amount,Net Worth Currency,Label,Description,TxHash
2018-01-01 14:25 UTC,1000,USD,1,BTC,5,USD,"","","",my first crypto!,""
2018-01-02 14:25 UTC,0.5,BTC,"","","","","","","","",""
2018-01-03 14:25 UTC,"","",1,BTC,"","","","",mining,"",0x12345
- Dates must be formatted like this: YYYY-MM-DD HH:mm:ss. For ex. if you want to enter 5th Jan 2019 the date will be 2019-01-05.
- The first row must contain at least the following headers:
Date, Sent Amount, Sent Currency, Received Amount, Received Currency
- The following optional headers may also be included:
Fee Amount, Fee Currency, Net Worth Amount, Net Worth Currency, Label, Description, TxHash
- The date should be formatted like this:
- Rows that do not have a Received Amount will be imported as Withdrawals (optional labels: gift, lost, cost)
- Rows that do not have a Sent Amount will be imported as Deposits (optional labels: airdrop, fork, mining, staking, other_income)
- Rows with a fiat Sent Currency and a crypto Received Currency will be imported as Buys
- Rows with a crypto Sent Currency and a fiat Received Currency will be imported as Sells
- Rows with a crypto Sent Currency and a crypto Received Currency will be imported as Trades
- Duplicate transactions will be ignored if a TxHash is provided. In cases where no txhash is provided we will attempt to ignore duplicates by generating a unique txhash based on the row contents and index.
- Fee amount should not be included in the Sent Amount ex. if you bought 1 BTC for 100 USD and paid a 10 USD fee enter this as: 100 USD Sent, 10 USD Fee, 1 BTC Received.
Step by step guide
Start by downloading the attached XLS file and open it in Excel. You will find 3 rows in it, see information about each row below.
The first row is a 'Buy' transaction, the Sent Currency is USD and the Received Currency is BTC so you have bought 1 BTC using 1000 USD. It also contains a Fee of 5 USD. The important thing to note is that the fee is always excluded from the Sent or Received amount! SO, if you bought 1 BTC for 1005 USD (which includes a 5 USD fee) you would have to subtract the fee from the buying amount.
This is a 'Sent' or 'Withdrawal' transaction. You sent 0.5 BTC to someone. If you have a transaction has for the transaction you should enter it in the txhash column. A txhash will allow us to match this transaction to an opposite 'Deposit' or 'Receive' transaction (useful if you transferred money from one account to another.
This is a 'Receive' or 'Deposit' transaction. You received 1 BTC. There is a label of 'mined' which will tell Koinly that this transaction is income from a mining operation. Labels are optional but useful for declaring income. The allowed labels are listed below.
Once you are happy to add your own data into it, simply delete the sample data rows and enter your own. To import the file into Koinly go to the Transactions page, then click on Add Transactions > Import from File. Select the wallet you want to import into or create a new one and upload the file. If there are any errors in your file you will see them on the next screen.
Importing the same file again
If you need to import the same file again, this can be done without worrying about duplicates. Our system will use the 'txhash' field to ignore already imported entries. If this field is missing we will calculate a unique hash based on the row values and the row index.
Importing an Excel file (XLS, XLSX)
Koinly can handle these files too but if you get encounter some errors (due to encoding etc) just export the file to csv (make sure it is comma delimited!).
Only the dot . decimal separator is supported. If you have comma separated valued please change them to dot separated. ex. 0,50 is bad - 0.50 is good!
Net worth amount & Currency:
You can set these if you know what the market rate of the transaction was at the time of the transaction. If it is empty we will determine the market rate for you. Our market rates are based on an average market rate at the time the transaction happened. The currency must be a fiat currency like USD, EUR, GBP etc. The net worth amount should NOT include the fee. If you have paid fees in some other currency and want to specify the exact worth of the fees you can use the 'Fee Worth and Fee Worth Currency' columns to specify the worth of the fee instead.
Note: This is not needed if you bought or sold some coins using fiat, in such cases we will use the fiat to convert to your base currency (if necessary) ex. if you sold 1 BTC for 2000 EUR and your base currency is SEK then we will convert from EUR to SEK. This conversion is fairly accurate.
Fee amount & Currency:
These are the fees you paid and can be in any currency (fiat or crypto). The Sent or Received amount should be excluding this fee. Fees can not be added on Deposits or Withdrawals. If you paid a transfer fee, Koinly will calculate it automatically when it matches it to the other end if the transaction.
Labels can only be added on withdrawals or deposits. We allow the following labels for withdrawals: gift, lost, cost. The following labels are allowed for deposits: airdrop, fork, mining, staking, other_income.
If you have any issues just open a ticket or contact us on Live Chat.