CSV Format
Last updated
Was this helpful?
Last updated
Was this helpful?
In the "Settings" tab, you can select a CSV format. We currently support:
Celo.Tax format - most comprehensive and includes all transactions as well as portfolio and tax summaries. See the section below for further details.
Tokentax - csv format details here:
Zen Ledger - csv format details here:
Koinly - see section below.
TurboTax.
You can also manually re-format or adjust the Celo.Tax CSV format for other software. Here are some useful guides:
Tax rules differ by jurisdiction. Celo.Tax provides no warranty as to the accuracy, format or appropriateness of data presented by the CSV Export tool for your jurisdiction.
The format of the csv is provided below.
In addition, detailled information is provided at the bottom of the csv file, covering:
Gains, interest and rewards - broken down by token and year.
Portfolio cost basis and market value - broken down by token.
As of February 4th 2022, NFTs are included in the these detailed summaries.
Date
Date
2021-12-20 17:18:26
Sent Amount
Number
Sent Currency
Text
Received Amount
Number
2
Received Currency
Text
cUSD
Fee Amount
Number
0.001
Fee Currency
Text
CELO
Net Worth Currency
Text
EUR
base currency you specify
Price in Net Worth Currency
Number
0.82
price of the sent or received currency in your base currency
Net Worth Amount
Number
1.64
transaction value in the Net Worth Currency
Label
Text
Reward
transaction type
Cost Basis
Number
580.44
Realised Gain
Number
284.44
blockHash
Hexadecimal
0xb4...9c8b
blockNumber
Number
10493622
confirmations
Number
12836
contractAddress
Hexadecimal
0x765...1282a
cumulativeGasUsed
Number
1893937
from
Hexadecimal
0xcc...9e10
gas
Number
900000
gasPrice
Number
500000000
gasUsed
Number
27221
TxHash
Hexadecimal
0x1e...7926
input
Hexadecimal
0xa9...0000
logIndex
Number
39
nonce
Number
73
timeStamp
Number
1640046157
to
Hexadecimal
0x2b...41c0
tokenDecimal
Number
18
tokenName
Text
Celo Dollar
transactionIndex
Number
8
Notes:
Celo.Tax csv files only have one token transfer per row.
A trade of one token for another will show as two rows, one with a Sent Amount and another with a Received Amount. The gas fee is associated with the Sent Amount.
A liquidity pool deposit will typically appear as three rows, a row each for the two tokens deposited, and a third row for the LP token received.
2. Give your wallet a name, e.g. "Valora wallet" and then click the blue link below to add a custom wallet.
3. Confirm your wallet name and click "Import from file"
4. Browse and select the csv you received via the Celo csv tool
5. You'll now see a number of options for how to tag deposits ("Tag deposits as"). The wallet type will determine your selection. Most commonly, the best option is to leave this blank ("-"), meaning that deposits will not be counted as income, rewards or interest. Rather, deposits will count towards your capital gains cost basis, which is typically appropriate for purchases using crypto and for trades. Note that certain transactions will need to recategorized fixed after you upload the csv. Here are some exceptions where you may want to select differently:
a. If you have a wallet you use to receive payment for goods or services, it may be best to select the "income" option for deposits.
b. If you have a wallet where inbound transactions are primarily rewards or interest, then it may be best to select rewards or interest. Usually though, it is still best to choose ("-") as wallets often have trades.
Note: Celo.Tax is not affiliated with nor has any partnership/affiliate relationship with Koinly.
Koinly will report an error and ignore the following:
* Swaps/trades - Any token swaps (one crypto for another) will be represented by two transactions. One a deposit and the other a withdrawal. This is typically the correct treatment.
* Rewards/interest - If you received any rewards or interest, you will need to go through your transactions and correctly tag them in Koinly as rewards (e.g. claimed from farming on Ubeswap) or interest (e.g. if earned on Moola when withdrawing deposits). It helps to view transactions one wallet at a time on Koinly and filter for Deposits. Celo.Tax is working on an automatic tagging of rewards (check out our Roadmap).
* Liquidity Pool tokens - LP tokens currently will import into Koinly with zero cost basis and be sold at zero price. This means that gains or losses on liquidity pool tokens are not captured. Note that when you enter or exit a liquidity pool, the Celo CSV Tool and Koinly do capture the deposits into the pool (treated as a withdrawal for you) and withdrawals from the pool (treated as a token deposit for you). Note that the Celo.Tax Roadmap includes the provision of a native calculation of capital gains for liquidity pool transactions.
* Airdrops - you can tag any airdrops manually.
Note - you can easily reimport a csv for the same wallet at a later date (including new transactions) and Koinly will only include new transactions - a nice feature.
What tokens can be imported into Koinly?
Koinly supports the import of tokens that are listed on Coingecko. Unsupported tokens are simply ignored by Koinly - and you will have to compute any income or gains separately from the Koinly platform. Two specific examples:
1. Moola mcUSD and Moola mcEUR are not yet on Coingecko or Koinly. By default, the Celo csv Tool replaces mcUSD with cUSD and mcEUR with mcEUR. This will shortly be addressed in the Celo.Tax Roadmap.
2. sCELO (savings Celo) is not supported by Coingecko or Koinly. When you import your csv, you will see that the import of these tokens will fail. You will need to filter all sCELO transactions and - separately to Koinly - calculate income and gains/losses.
How are fees handled by the CELO CSV Tool?
The Celo CSV Tool generates data columns for transaction fees, assuming that fees have been paid in Celo. Koinly generates a separate transaction for each transaction fee (gas). If you prefer not to account for gas fees, you can simply delete the transaction fee columns in your spreadsheet before uploading.
Does Koinly correctly identify transfers between csv upload wallets and other connected wallets/exchanges?
Koinly generally does a good job in matching transfers between wallets you upload via csv and wallets/exchanges you have integrated within Koinly. For example, if you transferred 5 CELO from your Coinbase account to your Valora wallet, Koinly will identify this transfer once you upload your csv with Valora transactions and - in most jurisdictions - this will not be a taxable transaction/transfer. This is typically well handled regardless of what option you select for deposit tagging.
How can I correctly account for liquidity pools in Koinly?
Koinly does not allow for easy import of liquidity pool transactions for unsupported blockchains. The best you can do is probably as follows - shown by means of an example:
* Consider adding liquidity of 1 CELO and 5 cUSD to a liquidity pool on Ubeswap in return for 10 ULP (Ubeswap Liquidity Pool tokens).
* The CELO csv tool will produce three transactions from this, a withdrawal of 1 CELO, a withdrawal of 5 cUSD and a deposit of 10 ULP.
* Once you import the CELO csv into Koinly, you will need to convert each of these two withdrawal transactions into a trade transaction as follows:
* Manually update the withdrawal of 1 CELO into a trade of 1 CELO for 5 NULL tokens. NULL tokens are what Koinly uses for unsupported tokens. You should set the cost basis for these NULL tokens as equal to the value of the 1 CELO.
* Manually update the withdrawal of 5 cUSD into a trade of 5 cUSD for 5 NULL tokens. You should set the cost basis for these NULL tokens as equal to the value of the 5 cUSD.
* Lastly, delete the withdrawal of 10 ULP tokens from Koinly. Now, your 10 ULP tokens are represented as NULL tokens, half swapped for 1 CELO and half swapped for 5 cUSD.
* When you exit the pool, the reverse manual operations are required and you will trade NULL tokens for the underlying tokens.
* Any rewards you receive for holding ULP tokens, you should tag manually as a Reward, once imported into Koinly.
* If you farm ULP tokens, you will see in the Celo CSV download that your ULP tokens are withdrawn. Many tax jurisdictions do not consider staking as a token trade. If this is the case, you can simply delete any staking transactions. However, be sure to mark any rewards earned as rewards in Koinly.
1. Navigate to and click the blue "Add wallet / exchange" button.
* Transactions involving very small amounts, which Koinly recognises as zero. This has been flagged by a .
* Locked Celo - if you locked some Celo, this will appear as a withdrawal. You will typically want to mark this as "Sent to Pool" and vice versa for when you unlock Celo, this will appear as a "Deposit" and you should mark it as "Received from Pool". When you receive tokens back, you may receive make more than you put in originally, so you typically would need to break the transaction into two, with one portion "received from pool" and the remainder marked as a "reward". More details from Koinly support.
* Loans and collateral - Typically any crypto you receive as a loan should already be marked as a deposit and marked as a withdrawal when the loan is repaid - so typically no action required. However, Celo CSV Tool and Koinly will typically also regard provision of collateral as a withdrawal and retrieval of collateral as a deposit - both of which you typically will want to mark as "Sent to pool" and "Received from pool" respectively. If you provide stables as collateral, the tax implications of correcting the labels will be less important than if you are providing volatile cryptos (e.g. Celo) as collateral. Either way, it helps to look at one wallet at a time and filter by "Deposits and Withdrawals". More info on handling loans from Koinly.