***If you only have one entry to make, use the Manual Entry tab. However, if you have several, read on and watch our informative video!***
***TO DOWNLOAD THE CUSTOM CSV TEMPLATE PLEASE: do so here. ***
UPDATED 2/28/2020: HOW TO CREATE A CUSTOM CSV STEP-BY-STEP
Custom CSVs are a good way to get unsupported coins, unsupported wallets, or lost/stolen transactions into ZenLedger. If you have any questions after reading this article on when you would use a Custom CSV or manual entry, please let us know by clicking on the support chat!
Recommended editor: Microsoft Excel is NOT RECOMMENDED as it does some strange things with formatting cells, so we recommend using Google Sheets., a free CSV editing software similar to Excel and Mac Numbers.
You can always send us these files in the support chat or email to us at [email protected] if you get stuck, we're happy to help!
NOTE: The video says that SEND and RECEIVE are transaction types that are for wallets or exchanges you do not own. You can, however, use these types for self-transferred transactions, or you can use OUTGOING or INCOMING. Once you import the CSV, these will match up as self-transfers or you can use the Resolution Center to match these transactions if not done automatically.
ALSO NOTE: If your original spreadsheet from an exchange, such as Coinex, has information like transaction IDs or hashes, we do NOT NEED this. We only need the fields in the template filled out, exactly as we have described, for best results. If you need help, just click on the chat button to your lower right on the screen!
Below we've included a detailed list of transaction types and definitions:
Header Row
Timestamp | Time stamp should be in UTC, and 24 hrs format. The formats supported are yyyy-mm-dd hh:mm:ss and mm/dd/yyyy hh:mm:ss |
Type | This identifies the type of transaction user is uploading. We support ‘buy', ‘sell,' ‘trade,' ‘receive', ‘send,' ‘Initial Coin Offering,' ‘margin trade', 'staking', 'fork', 'airdrop', 'payment', 'mined', 'gift sent', 'fee', 'staking reward''dividend received', 'interest received', 'misc reward', 'margin gain', 'margin loss', 'lost', 'stolen,' 'nft_mint',’donation_501c3’, 'staking lockup’ , 'staking return’,’nft_trade’ |
IN Amount | Incoming amount |
In Currency | Incoming Token Currency ID |
Out Amount | Outgoing amount |
Out Currency | Outgoing Token currency ID |
Fee Amount | Fee amount |
Fee Currency | Fee Currency ID |
Exchange (optional) | Exchange/wallet where the transaction took place |
US Based | ‘Yes’ if the exchange is located in US and ‘No’ if it is outside US. |
Types
Type | Information |
Buy |
|
Sell |
|
Trade |
|
Receive |
|
Send |
|
Initial coin offering |
|
Margin trade |
|
Staking/Staking Reward |
|
fork |
|
airdrop |
|
Payment |
|
Mined |
|
Gift sent |
|
fee |
|
dividend received |
|
interest received |
|
Misc Reward |
|
margin gain |
|
margin loss |
|
nft mint | Transaction in CSV Transaction uploaded to Zenledger
|
nft trade | Transaction in CSV Transaction uploaded to Zenledger
|
donation 501c3 |
|
stolen |
|
lost |
|
staking lockup |
|
staking return |
|
Additional Information
Type | Information |
Self transfer/ Switch trade /Swap | These types are imported as Receive and Send. Once imported they are either auto detected by the system or they can be manually marked. |
FIAT | Custom CSV import only support USD as FIAT. |
Please keep in mind:
The IN and OUT are from the perspective of the wallet or account. So if I you are making a custom csv for a wallet and you send 1 BTC to the wallet from Coinbase and then 0.5 BTC out to Binance from your wallet- you would record “ 1.0 BTC IN 0.5 BTC OUT
Timestamp, Column 1:
Must be on UTC. Put this in 24 hr time and no "AM/PM". You will have your best luck doing this in Google Sheets, which has an automatic option for the right timestamp under Format>Number>Date time (see illustration below):

Frequently made mistakes:
Incorrect date format
File format should be in CSV
CSV format should be in UTF-8
Incoming and outgoing values in wrong columns
Incorrect header row or missing necessary columns
If you have additional questions, please reach out to us at [email protected]