Ledgible currently supports most popular wallets and exchanges automatically. This means users can set up an API connection to link their exchange, or simply enter a wallet address for a certain type of cryptocurrency for Ledgible to obtain all transactions linked to that address.
Other sources of cryptocurrency data may not be able to be linked automatically. In this case, users can generate a file from their exchange or wallet, and in many cases, upload this directly to Ledgible with no formatting required. For more information on which files can be uploaded with no formatting required, please see this article in our Knowledge Base.
The final method of upload to Ledgible is for data sources that are not yet listed amongst our available wallets or exchanges. If not listed, transactions can still be uploaded by formatting them according to our File Import templates. This process may vary in difficulty based on the file obtained from your cryptocurrency data source, and this article aims to cover the main difficulties users may face when adjusting their transaction formats for upload.
Please note that Ledgible Support services are happy to format 1 file per client. Additional formatting requests will incur an additional charge. An estimate based on the complexity of the task will be provided.
- Uploading transactions from an unlisted wallet
There are three types of template for transactions that can performed within wallets: regular transactions, DeFi activity, and NFTs. If your wallet address contains all of these activity types, this means you will need to upload three separate files to encompass all of your activity.
1) Transactions template
The transaction template contains fields to enter the following:
Date: The timestamp of the transaction.
Timezone: The timezone the transactions occurred in. This will default to UTC if left blank.
Type: the transaction type. This can be either "transfer-in" or "transfer-out" in this template.
Currency Symbol: the type of cryptocurrency you transacted, for example, BTC.
Quantity: the number of coins/tokens sent or received.
Price (per unit): the price of 1 of the coin or token you transferred at the time of the transaction. If unsure, enter "spot" for automatic pricing.
Price Currency: The currency of the price that has been entered. If "spot" entered, price is in USD.
Fee (optional): If there was a fee attached to your transaction, you can enter the quantity of the fee in this field.
Fee Currency (optional): if there was a fee attached to your transaction, you can enter the currency the fee was paid in in this column.
Contract Address (optional): if your transaction interacted with a contract, you can enter that address here.
Transaction ID (optional but recommended): the individual hash for each transaction.
Possible difficulties: Usually, as the transfer types are simple, data can be copied into the Transactions template with few to no adjustments. The transfer type may need to be replaced, which can be done easily using the find and replace tool. If your transfer types are not "transfer-in" or "transfer-out", as shown above, open the replace function (Ctrl+H). Then, replace the incorrect transfer type with the correct one and click "Replace All".
The other possible difficulty is how to enter the fees: currently, Ledgible does not support attaching fees to inbound transactions, even though some file exports from certain wallets may include one.
These fees can be entered as individual "transfer-out" transactions so that they still factor into calculations. If left attached to an inbound transfer, Ledgible will disregard them.
For example, a transaction entered like this will not register a fee in Ledgible:
However, Legible will read it correctly if entered as the following:
2) DeFi template
Ledgible supports the import of staking transactions, liquidity pool transactions, and DeFi swaps through the DeFi transaction template. The template contains the following columns:
Timestamp: the timestamp of the transaction.
Timezone: the timezone the transactions occurred in. This will default to UTC if left blank.
Type: the transaction type. Must be one of the following: depositStake, removeStake, stakingReward, swap, addLiquidity, or removeLiquidity.
DeFi Provider: platform the transaction occurred on, for example Uniswap or Sushiswap. If unsure, can be entered as "generic".
Chain: the chain the asset was swapped on, such as ETH.
Asset #1: the cryptocurrency symbol of the first coin or token being interacted with.
Quantity #1: the cryptocurrency symbol of the first coin or token being interacted with. For the symbol being deducted, a negative value must be entered.
Asset #2: the cryptocurrency symbol of the second coin or token being interacted with.
Quantity #2: The cryptocurrency symbol of the second coin or token being interacted with. For the symbol being deducted, a negative value must be entered.
Asset #3 (optional for liquidity pools): the cryptocurrency symbol of the third coin or token being interacted with.
Quantity #3 (optional for liquidity pools):: The cryptocurrency symbol of the third coin or token being interacted with. For the symbol being deducted, a negative value must be entered.
Asset #4 (optional for liquidity pools): the cryptocurrency symbol of the fourth coin or token being interacted with.
Quantity #4 (optional for liquidity pools): The cryptocurrency symbol of the fourth coin or token being interacted with. For the symbol being deducted, a negative value must be entered.
Pool Removal Percentage (optional for liquidity pools):: If withdrawing from a liquidity pool incurs a removed percentage, you can enter this in this column.
Fee: the quantity of the fee paid.
Fee Currency: the currency of the fee paid.
3) NFT template
Ledgible currently supports the buying, selling and minting of NFTs through the NFT transaction import template. The template contains the following columns:
Date: the timestamp of the transaction.
Timezone: the timezone the transaction occurred in. This will default to UTC if left blank.
Type: the NFT transaction type. Must be one of the following: buy, mint or sell.
Chain: the chain the NFT was transacted on, such as ETH.
Asset: The name of the NFT.
Display Name: the name you would like the NFT to display in Ledgible.
Unique Id: the NFT identifying code.
Price: the price of the NFT, either in FIAT or cryptocurrency. Please note this cannot be obtained automatically.
Price Currency: the currency used for pricing.
Fee: If there was a fee attached to your transaction, you can enter the quantity of the fee in this field.
Fee Currency: the currency used for the fee payment.
Contract Address: the contract address interacted with.
Final notes on unlisted wallets: These three templates allow users to import a wide variety of transactions into Legdible. Please keep in mind that if your wallet produced a transaction export file containing regular transactions as well as DeFi transactions or NFTs, they will need to be uploaded in 2 separate files using the appropriate templates.
- Uploading transactions from an unlisted exchange
There is a single template for unlisted exchanges that allows users to capture all of their exchange activity. The template contains the following columns:
Date: The timestamp of the transaction.
Timezone: the timezone the transaction occurred in. Will default to UTC if not provided.
Type: the transaction type. Must be one of the following: buy, sell, deposit, withdraw.
Currency Symbol: the symbol of the coin or token being transacted.
Quantity: the quantity of the coin or token being transacted.
Price (per unit): the price of each unit of currency being transacted, either in FIAT or cryptocurrency.
Price Currency: the currency of the price entered.
Fee: if your transaction incurred a fee, it can be entered here.
Fee Currency: the currency of the fee paid.
Order Id: the unique identifier associated with your transaction.
Possible difficulties: as with the wallet template, fees cannot be associated with a buy or a deposit. If the transaction export from your exchange has fees attached to inbound transactions, you can separate them into their own line, with the fee quantity entered into the quantity field, the transfer type set to "withdraw" and the fee fields left blank.
For example, this transaction would not be read correctly by Ledgible:
Entered correctly, it would look like this:
.
Second, entering swaps performed on an exchange can be difficult, as it is necessary to ensure the swap has registered in the correct direction.
For swaps, enter your date and timezone first. The transfer type can be entered either as a buy or sell. The two currency symbols must be entered with a dash in between. Ledgible will apply the transfer type to the first currency entered. The amount of the second currency can be entered into the fee column.
For example:
In Ledgible, this will be read as: on 04/18/2021, 1 BTC was bought for 15 ETH.
In Ledgible this second example will be read as: on 04/18/2021, 1 BTC was sold for 15 ETH.