Advanced Manual CSV Import
CryptoTaxCalculator allows users to import trades from crypto exchanges that are not currently supported. For advanced trades where the fees are yet to be applied with the trading data, our "Advanced Template" may be used to upload data. For simple trades where the fees are already applied in the trade data, visit our Simple Manual CSV Guide
In order 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
Timestamp (UTC): This should be in the format YYYY-MM-DD HH:mm:ss
Type: This is the type of transaction, e.g: buy, sell. You can read more about the valid transaction types below.
Base Currency: The base currency of the trading pair. For example, if you purchase ETH using USD, the base currency is ETH.
Base Amount: The amount excluding fee which corresponds to the base currency.
Quote Currency: The quote currency of the trading pair. For example, if you purchase ETH using USD, the quote currency is USD.
Quote Amount: The amount of quote currency that was traded, excluding fees.
Fee Currency (Optional): The currency that the fee was paid in.
Fee Amount (Optional): The amount of fees that were paid.
From (Optional): The name of the Exchange/Wallet you are transferring from. If left blank will default to CSV exchange name.
To (Optional): The name of the Exchange/Wallet you are transferring to. If left blank will default to CSV exchange name.
Blockchain (Optional): The network on which the transaction was executed. This should be filled out if you are importing the same wallet address on multiple blockchains.
ID (Optional): Any transaction ID that you would like to associate to this transaction for easy searching on the review transactions page. 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.
Do not delete any columns from the template. If they are optional, you can leave them blank.
- Download the template as a Comma Separated Values file (.CSV)
- Login to CryptoTaxCalculator, and navigate to the import section. Enter the name of the exchange, and click on the option to manually upload csv.
- Upload the csv file you just saved to import your data
- Click on "Review Transactions" to proceed and confirm the data you have supplied
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:
- buy - purchase of cryptocurrency which increases balance remaining and effects cost basis.
- sell - a sale of cryptocurrency which decreases balance remaining and triggers a capital gain event.
- fiat-deposit - 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.
- fiat-withdrawal - use this if you cashed out from an exchange into your bank account.
- receive - 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.
- send - 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.
- chain-split - use this if you acquired a new cryptocurrency as a result of a chain split (such as Bitcoin Cash being receiving by Bitcoin holders).
- expense - use this if you want to categorize an outgoing transaction as an expense (e.g. business paying out a salary).
- stolen - triggers a capital loss event with the sale price being zero.
- lost - use this if you have lost the crypto, triggers a capital loss event similar to the stolen category.
- burn - use this if you have sent your crypto / NFT to a burner address, triggers a capital loss event similar to the stolen category.
- income - 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.
- interest - similar to income but used for interest-bearing activities which don't suit other categories.
- mining - use this if you received mining rewards (as a hobby).
- airdrop - use this if you received a free token airdrop.
- staking - use this if you earned interest from staking.
- cashback - use this if you acquired cryptocurrency as a cash-back (e.g credit card payment).
- royalty / royalties - use this if you have received payments from secondary sales (e.g. being a NFT creator).
- personal-use - 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.
- gift - use this if you have acquired cryptocurrency as a gift. If you have given a gift to someone else use the sell category.
- borrow - use this if you have received (acquired) a cryptocurrency or cash as a loan.
- loan-repayment - use this if you have repaid a loan.
- liquidate - use this if the lending platform you used has liquidated your collateral.
- fee - 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.
- realized-profit - advanced usage only - use this if you have performed margin, futures, derivates, etc. type trades and realized a profit of your trading activity.
- realized-loss - advanced usage only - use this if you have performed margin, futures, derivates, etc. type trades and realized a loss of your trading activity.
- margin-fee - advanced usage only - use this if you have paid fees associated with a realized-profit or realized-loss 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 information provided on this website is general in nature and is not tax, accounting or legal advice. It has been prepared without taking into account your objectives, financial situation or needs. Before acting on this information, you should consider the appropriateness of the information having regard to your own objectives, financial situation and needs and seek professional advice. Cryptotaxcalculator disclaims all and any guarantees, undertakings and warranties, expressed or implied, and is not liable for any loss or damage whatsoever (including human or computer error, negligent or otherwise, or incidental or Consequential Loss or damage) arising out of, or in connection with, any use or reliance on the information or advice in this website. The user must accept sole responsibility associated with the use of the material on this site, irrespective of the purpose for which such use or results are applied. The information in this website is no substitute for specialist advice.