read

BitcoinTaxes has been an extremely well-received and used tool since its launch back in February 2013. We are proud that we were genuinely the first comprehensive tool for calculating capital gains taxes across multiple digital currencies, as well as supporting multiple countries, many fiat currencies and alt-coins trading pairs.

Since the US tax deadline in April, we have been constantly working on BitcoinTaxes to improve the user's experience around entering tax information. This was focused on a few key areas:

  • Adding spending details
  • Income and mining information
  • Support for newer and popular exchanges

The idea was to import a lot of this information from the blockchains of the appropriate coin. The first v2 Beta was released in July that did exactly this. However, it didn't feel right and in reality didn't work the way we anticipated.

It just wasn't the right way to do it.

You can't get reliable tax information from the blockchain.

Since our Beta there have been a number of other websites trying to use a similar methodology, but we, as they will soon enough, have learned the problems, pitfalls and why it doesn't work. So we went back and developed a better solution.

At first glance it seems that the blockchain could be the ultimate resource. But for tax purposes it is incomplete, and worse, inaccurate.

For instance, say I buy 1 BTC from an exchange and a few days later transfer it to my cold-storage wallet. What information does the blockchain know? All it has is a record of the transfer to my wallet. And all that the other simplistic services can do is conclude this was a purchase, with a cost basis on the date of transfer. But it wasn't. The purchase was of that coin days earlier, with a different cost basis, and which should also include any fees (higher cost basis, less taxes).

Similarly, say you put some fiat into your exchange and start trading coins. Buying, selling, trading alt-coins. The blockchain has none of this information, as it all happens with the exchange itself. The information for your final transfer that is finally in the blockchain is just not relevant.

The only way to accurately calculate cost basis, proceeds and taxes is to integrate with the exchange where the trades are happening.

So what about spending?

Let's create a simple case. I have an address with 1 Bitcoin. I buy something, and make payment from my wallet. Assume the cost of the item I'm purchasing happens to be exactly the average daily price of my Bitcoin. In this, and only this case, can I correctly calculate taxes.

But look at reality. First, the Bitcoin price of an item is typically set on a rolling 15-minute window. $100 might be so many coins now, but completely different in an hour. So whilst the average price might be great from a reporting point of view, it could unfavorably increase my tax burden.

The next problem is that the address can't be watched in isolation. You can't just monitor one address and expect to see everything. This is because one of the design decisions of Bitcoin was to make use of change addresses. When I spend coins, my remaining balance is transferred to a new address, which might not have even been created until that point.

So that address you were watching actually only has two transactions. Coins came in, and coins went out. That's it. Watching it from now is pointless as it is never going to be used again.

You need to monitor spending at a wallet level.

The core wallet software pre-assigns 100 addresses per wallet and other deterministic wallets use a seed to generate their addresses. The more you spend, the more addresses you will be using.

The only way to collection this information is to get the outbound transactions from the wallet, and for each of those knowing if they were just transfers (to another of your wallets, such as an exchange) or spending. And if it is spending, it would also be better to use the fair price of the item rather than relying on a daily average.

BitcoinTaxes v2, as now, can import your trading transactions directly from the exchanges as a primary source. This gives you the most accurate and correct information.

Spending can be imported through integration with an online wallet, e.g. Coinbase, or importing records from other wallet applications, such as the desktop Core Wallet or Blockchain.info.

Income is included by integration with merchant solutions, such as Coinbase and BitPay. Mining income can be imported from mining pools or direct from dedicated mining addresses.

Finally, there is still a way to view your addresses along with each one's complete transaction history. However, it just isn't the primary source of information. So, if you wish, you can still append to your nearly complete set of records if there are some transactions that were simply off-the-books.

This is the most accurate way to calculate taxes.

Import Addresses

BitcoinTaxes v2 is currently in alpha testing with the Beta to existing Premium subscribers expected in October 2014.

Image

BitcoinTaxes

Calculating capital gains and taxes for Bitcoin and other crypto-currencies

Back to Overview