How to Prepare and Import Custom Upload .CSV Files
Existing custom upload ledgers cannot be updated (appended). If you have new transactions, you must delete the existing ledger and re-create a whole new ledger with all transactions (both new transactions and old transactions).
To use the custom upload, you will need to create a CSV file which includes all the transactions you wish to have in your ledgers, and upload that file into your NODE40 Balance account. Individual ledgers will be created for each digital currency included in your file.
We have provided a file to help get you started. See below for information about what data to include in the file. If you would like to download the google sheets version of this file, click here.
STEP 1: Create Your CSV File
Download our CSV Template which contains the required headers and save it with any name you choose but remember it must have a “.csv” file extension (e.g my-transactions.csv).
There are thirteen (13) fields in the template, each representing some important component of your trade activity. Six (6) fields are optional but we encourage you to provide as much detail as possible even when optional to help add context to your ledgers. In particular, the following fields will help future analysis when available: TRANSACTION_ID, HASH, ADDRESS, and DESCRIPTION
Some Formatting Rules
When the format is “Text,” and the value you entered contains a comma (,), you must surround the value with double quote (“). For example, the description “Donation to a really, really, awesome charity” contains two commas, you must surround the entire description with double quotes.
Example Custom Upload
The following link shows an example file. We included five sample transactions that represent some common trades. Example Custom Upload
Explanation of Fields
*Fields that are in bold are required.
Field name | Description | Format |
TRANSACTION_ID ID will be generated if none provided | An identifier for the transaction. Must be unique, if provided. Some exchanges provide this information and if available, it can be useful to match up exchange activity with your NODE40 ledger. | Text |
ACCOUNT_ID | The identifier for the account/organization this transaction is a part of. This value will be used to separate transactions into account based ledgers. Some users choose to use the name of the exchange or wallet they used. For example: poloniex or Trezor-Acnt-1 | Text |
AMOUNT | The quantity of digital currency in this transaction specified by the TYPE field (see below). This value should not include any fees that have been charged. For fee information see FEE_AMOUNT and FEE_AMOUNT_UNIT below. For example, if the TYPE field is ETH (Ethereum), 7.700000000000000178 would be 7.7 Ethereum and a tiny bit more. | Numeric |
AMOUNT_UNIT | A digital currency symbol. For example, BTC, ETH or LTC. Must be non-fiat. | Text |
PRICE
| The price of a single major unit of the AMOUNT_UNIT expressed in terms of the PRICE_UNIT. (NOTE: price unit can be USD or another digital currency). Example: You purchased 0.3 LTC for $36.00. You would enter 120.00 (PRICE_UNIT would be USD)
if AMOUNT_UNIT and PRICE_UNIT are both provided and type is BUY or SELL, there will be 2 system-generated transactions created to represent both sides of the trade. | Numeric |
PRICE_UNIT | A digital currency symbol or “USD” for a purchase of digital currency made using the United States dollar. See the description for PRICE above for example of PRICE_UNIT. | Text |
TYPE | The type of transaction. It must match one of the following names exactly (all upper case) BUY | Text |
TRANSACTION_DATE | The date/time the transaction took place. If the transaction was “open” for a period of time before completing, this should be the completion date/time of the transaction not the open date/time. Be sure the the date is in one of the following formats (usually the data you get from exchanges will be in one of these so you can copy/paste):
Key Example 1: June 1, 2018 Example 2: February 15, 2018 at 9:04pm | See Description |
FEE_AMOUNT | If you paid a fee for the transaction, provide it in this field. This should be in addition to/separate from the value provided for AMOUNT. Values must be positive. The system does not accept a negative value. Example 1: If you sold $1,000 worth of BTC and it cost you $0.06 as a fee, you would enter .06 in this field (FEE_AMOUNT_UNIT would be USD). Example 2: If you purchased 0.08855296 BTC and it cost 0.0000178 BTC, enter 0.0000178 in the field (FEE_AMOUNT_UNIT would be BTC) | Numeric |
FEE_AMOUNT_UNIT | USD is the only acceptable fiat, otherwise this field should include a digital currency symbol. See the description for FEE_AMOUNT above for example of FEE_AMOUNT_UNIT. If FEE_AMOUNT_UNIT does not match any currency, a separate fee transaction will be system-generated. | Text |
HASH | The blockchain hash for this transaction. Only transactions that took place on a blockchain will include this information. Including it when available enables you to view the transaction on the blockchain. An example of a Bitcoin transaction is a77c6571b9607d168160df59206eff4e7828d26cbca34e5837b23adb10adeeb4 | Text |
ADDRESS | An address for the transaction. This is most commonly used with either DEPOSIT or WITHDRAWAL transactions. When you DEPOSIT digital currency into an exchange, you send it to an address. You would include that address in this field. When withdraw digital currency from an exchange, you send it to an address. You would include that address in this field. | Text |
DESCRIPTION | A description to help identify the transaction. While not always possible, we highly recommend including this field. If you leave it blank, you will have the ability to add it later once the data is uploaded to your NODE40 account. | Text |
STEP 2: Creating Custom Upload Ledgers
After you've gathered your transactions and added them to a CSV file using our CSV Template, choose +New Ledger from the Ledgers tab in your NODE40 account.
Select Custom on the Select an Exchange screen.
Add your file using the file picker, or drag and drop your file into the form, and click Upload.
If you would like to watch video tutorials which goes over the steps mentioned above, we have embedded them below.