Using TokenTax: Importing Your Crypto Data
Everything you need to know about importing any and all crypto transactions into TokenTax.
Table of Contents
When calculating your taxes with TokenTax, the most important part of the process is importing every cryptocurrency transaction you’ve made.
Even if you’re only calculating a single year of taxes, you need to upload your entire trading history, for all years, in order to have accurate crypto tax calculations.
In this guide, we outline exactly how to import your full transaction history into TokenTax, to ensure accurate crypto tax calculations, including:
- Your cryptocurrency exchange trade history
- Wallets (only needed for DeFi or mining / staking wallets, not storage wallets)
- ICO purchases or OTC trades
- Crypto you spent on goods / services
- Staking or mining
This guide also explains various aspects of handling data in TokenTax, such as:
- What it means if your CSV upload is in review
- Removing data imports or individual transactions
- Changing transaction types, i.e. setting a deposit as income
- Fixing duplicates
TokenTax supports every exchange. For the most popular exchanges, like Coinbase and Binance, you can import automatically with an API connection.
For all exchanges, you can upload a CSV — a transaction history spreadsheet — to import to TokenTax.
You can see specific instructions to get your API key or CSV file from your exchange either in the TokenTax app or via our exchanges directory.
You can import transactions to/from a wallet address into TokenTax. For tax purposes, a wallet connection is only necessary for taxable transactions like spending and mining income.
If you only used a wallet for storage, then you don’t need to add it to TokenTax.
To import a wallet, go to the API import page and scroll down to the wallets section. Click your preferred currency and enter your wallet information to import transactions.
If your file upload went into “in review,” and it shows with a yellow dot in your import data screen, that means that our system doesn't automatically support the file yet.
Unlike other services where you may need to format the CSV / spreadsheet to a template, we take care of it ourselves.
Our team formats your file manually and uploads it to your account. This means that, if your exchange’s CSV file is not already supported, you don’t need to worry about filling the data into a spreadsheet template.
If you uploaded the wrong CSV and thus it went into review, feel free to contact our support team so that we can remove the CSV from the review queue.
If you uploaded a CSV from a common exchange like Coinbase or Kraken and it went into review, chances are that you just uploaded the wrong type of CSV and the right one will be automatically accepted. Be sure to check your exchange’s CSV upload instructions.
If you purchased coins via an ICO, presale, OTC service, or any other off-exchange transaction, then these are taxable events that you will need to manually import into our platform. We’ve made it easier to import trades with the manual entry screen, or you can also fill out and upload via our spreadsheet template if you have many transactions.
- For these transactions, you will use the “trade” type.
- For buy amount and buy currency fields, enter the crypto that you purchased.
- In the sell amount and sell currency fields, enter in what you paid for the asset, whether it was ETH, BTC, or USD.
- It’s important that, if you paid in crypto, you enter in the correct amount of crypto paid so as to reconcile your crypto balances history correctly. The fee fields can be left blank, unless you paid a fee, and for exchange, you can put in whatever helps you identify the transaction most (many users opt for “ICO” or OTC”).
Here's an example of what the transaction should look like for fictional token EXMPL bought with ETH:
Your holding period begins once you have possession of an asset. If you participated in an ICO and received the tokens later, you can accurately represent this series of events.
First, put in a “spend” type transaction of the crypto paid, with just the crypto amount and currency in the sell fields, on the date that you sent the crypto in to the ICO.
Next, add in a “trade” type transaction with the amount of tokens you later received in the buy fields and the USD equivalent amount in the sell fields, with the date received in the date field.
This will establish when you received the tokens as well as the cost basis for those tokens. You can look at the USD amounts in the buy amount column of the initial “spend” transaction in your All Transactions page to find what the USD equivalent paid for the asset was.
Here's an example of said transaction, again using fictional token EXMPL bought with ETH:
In short, you’re telling our system that you A. disposed of the coin used to pay for the ICO at an earlier date and B. received at a later date the tokens, with a cost basis of that coin spent.
Mining and staking are considered taxable income in the eyes of the IRS. Therefore, it must be reported and included in your crypto reconciliation. The quickest way to get staking transactions into TokenTax from CSVs is to copy and paste them into our template.
If you are importing a wallet that was used for mining or staking, it may be advantageous to go about this in the reverse fashion. On the import page for the wallet, you can set all incoming transactions as income; then, you can sort by that wallet in All Transactions and set transactions that were actually deposits to “deposit.”
To place mining staking transactions into our template for upload, do the following: Download the manual spreadsheet template.
- Open the template. Each row represents a transaction. Here's how to fill out those rows. It's okay to leave unneeded columns blank.
- Type: Use staking for staking transactions, mining for mining transactions, deposit or withdrawal for non-staking wallet movements (deposits / withdrawals are not usually required).
- BuyAmount: The amount of tokens received in the staking/mining reward.
- BuyCurrency: The currency of token received.
- Exchange: The source of the transaction (could be any name such as XTZ staking, BTC mining, etc)
- Date: When you received the staking or mining reward (formatted MM/DD/YY HH:MM:SS)
- Upload the template CSV via CSV upload in the Import Data screen.
See the below image of what your manual template spreadsheet should look like. In this case, it’s staking, but it would be the same for mining as well, but with the type column set to mining.
It's important to properly categorize any deposits / withdrawals that are actually income, mining, or spending crypto on goods or services. Income and spending have different tax implications compared to normal deposits and withdrawals between your own exchanges and wallets.
Let's say we have three withdrawals that synced into your account from Gemini. But you know all three of those withdrawals were actually sending crypto to pay for goods / services, so it's spending.
We want to set these transactions as spending. First, we check the boxes next to the transactions. Then, at the top of the table, click "Edit Transaction Type."
This screen lets you change what kind of transaction your deposits / withdrawals are, so you can make deposits income, or, in this example, make withdrawals into spends.
Et Voilà. Your withdrawals are now properly calculated as spends of crypto. Our platform automatically pulls the USD equivalent amounts of these spends, as you can see in the newly updated transactions.
This is most useful for setting deposits as income or mining transactions and setting withdrawals to spend, lost, or stolen transactions. For example, you may know that a number of withdrawals on your Coinbase account were actually spends. Or maybe some deposits to a wallet were a payment received, so it should be income.
If you've been recording your spending / income / mining manually, or would otherwise prefer to upload the data manually or as a spreadsheet rather than to specify individual transactions, you may want to use our manual entry screen or manual CSV upload template instead.
In many cases, this will be easier if you know what your specific transactions are, rather than having to go through your deposit/withdrawal records as a whole.
You can delete an API connection, CSV upload, wallet connection, or manual import by clicking the three dots next to an import on the Import Data page.
Deleting a data import item will delete all transactions associated with that import.
If your CSV uploaded is in review, you can't delete it because the team is reviewing your file to make sure it uploads properly. If you believe your CSV upload was in error, and it's not a file you want our team to process, then please contact support.
Sometimes you may need to delete transactions from your account. It's easy to do so from the All Transactions page.
- On your dashboard, click All Transactions at the top.
- If need be, use the search bar to filter transactions, such as by a certain exchange.
- Click the checkboxes next to the transactions you'd like to delete. Select the top left box to select all transactions on a page, at the top right selecting more rows at a time to display if you want to delete more.
- Click Delete Selected at the top right of the table.
If you believe you’ve imported all data, but your numbers look off, you may have duplicate transactions. This can happen if you’ve uploaded the same data via CSV multiple times, or if you’ve uploaded both an API and a CSV connection for an exchange.
To identify duplicates, go to your All Transactions page, optionally filter by exchange, and then sort by buy quantity or sell quantity. If you see doubled up transactions, you may have duplicates.
The #1 best way to handle duplicate transactions is to delete all data imports for an exchange, and then re-add a single API or CSV.