CryptoTaxCalculator allows users to import trades from crypto exchanges and wallets that are not currently supported.
1. Search "manual" or the exchange/wallet you want to import on your Integration page.
2. Click "Import CTC template CSV" will open the window (see the below image) where you can import the manual CSV. You can also edit the Name of Source here.
3. Download the Template and start adding your data.
4. Once it's done, you can upload the file.
For advanced trades where the fees are yet to be applied to the trading data, you can use the Advanced Template provided here. For simple trades where the fees are already applied in the trade data, visit our Simple Manual CSV Guide.
Advanced template CSV
To import your trade data as per the format above, follow these steps.
Download a copy of the Advanced Template
For each trade you would like imported, fill out each of the following columns.
The recognized format defaults to DD/MM/YYYY HH:mm:ss. You can also select the different date formats in the "Advanced Options".
This is the type of transaction, e.g., buy, sell. You can read more about the valid transaction types below.
The base currency of the trading pair. For example, if you purchase ETH using USD, the base currency is ETH.
The amount excluding fee which corresponds to the base currency.
The quote currency of the trading pair. For example, if you purchase ETH using USD, the quote currency is USD.
The amount of quote currency that was traded, excluding fees.
Fee Currency (Optional)
The currency in which the fee was paid.
Fee Amount (Optional)
The amount of fees that were paid.
The name of the Exchange/Wallet you are transferring from, if left blank, will default to CSV exchange name.
Note: One CSV should only have the transactions for one wallet/exchange.
The name of the Exchange/Wallet you are transferring to if left blank, will default to CSV exchange name.
Note: One CSV should only have the transactions for one wallet/exchange.
The blockchain where the transaction happened. This is particularly important for interacting with wallets that are imported on multiple chains.
Note: Only the blockchains we support are valid. If an invalid blockchain is entered, this field will be ignored on the transaction.
Any transaction ID that you would like to associate to this transaction for easy searching on the review transactions page. It should be unique where possible.
Reference Price Per Unit (Optional)
The price per unit of the "Base Currency". If left blank, the price defaults to market price.
Reference Price Currency (Optional)
This is the currency of the Reference Price Per Unit.
Only local currencies are available. Cryptocurrencies (including stablecoins) in this column will be ignored.
Only use this when Reference Price Per Unit is filled.
If left blank but with Reference Price Per Unit filled, this defaults to USD.
NOTE: Do NOT delete any column.
3. Download the template as a Comma Separated Values file (.CSV)
4. Log in to CryptoTaxCalculator, and navigate to the import section. Enter the name of the exchange, and click on the option to upload CSV manually.
5. Upload the CSV file you just saved to import your data
6. Click on "Review Transactions" to proceed and confirm the data you have supplied
Valid Transaction Types
CryptoTaxCalculator supports a number of transaction types. If you would like the import to be automatically categorized, you must make sure the type of the transaction matches one of the below:
Note: Transaction Types are case sensitive. Please ensure you are using lower-case.
Purchase of cryptocurrency, which increases the balance remaining and effects cost basis.
A sale of cryptocurrency which decreases the balance remaining and triggers a capital gain event.
A deposit of your local currency into the exchange. Note, if you deposit a currency other then your local currency, you need to have a corresponding buy transaction of that currency.
Use this if you cashed out from an exchange into your bank account.
Use this if you have disposed of cryptocurrency to cover fee transactions generated as a result of other transactions, e.g., gas fees paid during on-chain Ethereum swaps. If using this category, don't include this fee amount in the fee column.
You approved the use of a smart contract. This is taxed the same way as a Fee, a disposal event. This category is listed in the Miscellaneous Expense Report.
A transfer of cryptocurrency to a wallet or exchange. Increases the balance remaining on the receiving address and decreases the balance remaining on the from address. Does not increase your overall balance remaining. Does not trigger a capital gain event.
A transfer of cryptocurrency from a wallet or exchange. Increases the balance remaining on the receiving address and decreases the balance remaining on the from address. Does not decrease your overall balance remaining. Does not trigger a capital gain event.
Use this if you acquired a new cryptocurrency as a result of a chain split (such as Bitcoin Cash being received by Bitcoin holders).
This acts similar to a Sell. However you wish to label this as an expense. You can use this if you want to categorize an outgoing transaction as an expense (e.g. business paying out a salary). This category is listed in the Miscellaneous Expense Report.
Triggers a capital loss event with the sale price being zero.
Use this if you have lost the crypto, triggers a capital loss event similar to the stolen category.
Use this if you have sent your crypto / NFT to a burner address. It triggers a capital loss event similar to the stolen category.
Triggers an income tax event based on the market value at the time of receipt. Increase the balance remaining and is used for future cost basis calculations.
Similar to income but used for interest-bearing activities which don't suit other categories.
Use this if you received mining rewards (as a hobby).
Use this if you received a free token airdrop.
Use this if you earned interest from staking.
You deposited these coins into a staking pool. This acts similar to a withdrawal.
You have withdrawn these coins from the staking pool. This acts similar to a deposit.
Use this if you acquired cryptocurrency as a cash-back (e.g., credit card payment).
Use this if you have received payments from secondary sales (e.g., being an NFT creator).
Use this if you spent crypto on personal use and you want to ignore this transaction for tax purposes. Warning, this is only valid in very specific individual circumstances. Check with your tax professional before using this option.
Use this if you have acquired cryptocurrency as a gift. If you have given a gift to someone else, use the sell category.
Use this If you have given a gift to someone else. This is similar to a sell.
Use this if you have received (acquired) a cryptocurrency or cash as a loan.
Use this if you have repaid a loan.
Use this if the lending platform you used has liquidated your collateral.
Advanced usage only - use this if you have performed margin, futures, derivates, etc. type trades and realized a profit from your trading activity.
Advanced usage only - use this if you have performed margin, futures, derivates, etc., type trades, and realized a loss of your trading activity.
Advanced usage only - use this if you have paid fees associated with a realized-profit or realized-loss trades.
Used to transfer the cost basis from one blockchain to another.
Note: A "bridge-in" and a "bridge-out" must match.
This acts similar to a 'buy'. A common use case is when a user is minting NFTs.
You have withdrawn these coins from a borrowing/lending platform. This acts similar to a deposit into your account.
You have set these coins aside as collateral for a loan. This acts as a withdrawal from your account.
You have added these coins into a liquidity pool
You have received tokens for adding coins into a liquidity pool.
You have removed these coins from a liquidity pool.
You have returned tokens for removing coins from a liquidity pool.
A failed transaction. This will be ignored from tax and balance calculations. (Note: Any fees incurred from creating the transaction will be accounted for.)
Mark the transactions as spam and ignore them from tax and balance calculations.
What is the Reference Price?
You can import the Reference Price Per Unit and Reference Price Currency for the transactions. The Reference Price Per Unit is the price per unit of the Base Currency. For example, if the Base Currency is 'ETH', and you purchased it for 100 AUD instead of the market price, you should fill in the columns as below:
Reference Price Per Unit: 100
Reference Price Currency: AUD
If you only fill in the following:
Reference Price Per Unit: 100
Reference Price Currency: (blank)
The ETH price is 100 USD.
The Reference Price Currency needs to be local currencies. Cryptocurrencies (including stablecoins) in this column will be ignored. If the Reference Price Currency is not defined, then we default to "USD".
The value will be converted to your local currency in CTC once the CSV is imported. For more details about the foreign currency rates, please check this guide.
What about Trades?
You can import your trades via the advanced CSV template by utilizing the buy and sell transaction types where appropriate. For example, if you traded ETH/USDT, then the Base Currency is ETH, and the Quote Currency is USDT. Based on the trade type you executed, you must choose between the buy or sell transaction type. See below for an example:
You traded the ETH/USDT currency pair and swapped 1 ETH <-> 2000 USDT.
If you actually sold 1 ETH and bought 2000 USDT you should set the Type as sell, the Base Currency as ETH, the Base Amount as 1, the Quote Currency as USDT, and the Quote Amount as 2000.
If you actually sold 2000 USDT and bought 1 ETH, you should set the Type as buy, the Base Currency as ETH, the Base Amount as 1, the Quote Currency as USDT, and the Quote Amount as 2000.
Make sure you add any fees in the Fee Currency and the Fee Amount columns where appropriate. Please note that the Base Amount and Quote Amount do not include any fees!
The advanced options drop-down menu allows you to assign the currencies and select the recognized date format on your CSV.
Manually assign currencies
You can select the tickers which appear on your CSV that you would like to assign to a specific currency. Any tickers not specified will be assigned by their market cap ranking where possible.
Manually select date format
You can select the date format which appears on your CSV. If left unspecified, the date we recognized will only default to YYYY/MM/DD HH:mm:ss