Help / FAQ

What is all about?
Why is this useful?
How is the price history generated?
What reports are available?
What do the options for the Price History report do?
What cost method is used for calculating Realized Gain?
Is there a maximum number of addresses or transactions?
Why doesn't the final BTC balance in the Price History report match my wallet balance?
What is a report queue?
Can I print a report that combines multiple wallets?
How do I export all addresses for my wallet?
How do I export addresses from a bitcoin core wallet?
How do I export addresses from a CoPay wallet?
How do I export addresses from a MyCelium wallet?
How do I export addresses from another wallet not listed here?
The HD Wallet Discovery Tool
What is the HD Wallet Discovery Tool?
Can I generate addresses for an empty wallet?
A note about change addresses...
How does the Wallet Discovery Tool work?
Privacy and Security
Is there any way I can lose bitcoin using this service?
Does this service reduce my privacy?
Does this site use https (SSL)?
Software Development
Do you provide an API?
Where can I find the command-line tools and documentation?
Is the website code available?
Do you accept donations / tips?
About generates reports of your bitcoin movements with information about the historic fiat value on the date of each transaction. It supports multiple fiat currencies.

Hopefully one day soon all wallet software will include reporting that includes the exchange rate at the time of each transaction. Until that time, may fill a gap. Also, it can be used for addresses outside of your own wallet.

A new feature is the HD Wallet Discovery tool which lists addresses in your HD Wallet.

For accounting and tax reporting purposes it is often necessary to record the exchange rate on the date of each transaction. However, that can be tedious, and is often not done. makes it easy to determine this information (cost basis) after the fact.

Also this tool makes it possible to generate a single transaction history report for multiple bitcoin wallets.

In a nutshell, transaction history for each address is retrieved from the blockchain (powered by btcd) and daily average prices are retrieved from Then the prices are applied to each transaction to calculate a USD (fiat) amount and running balance. is a web frontend to the open-source command-line tool bitprices. You can find out more about how it works at that link and even download and run the tool yourself.


Three primary reports can be generated:

Price History: A list of bitcoin movements with many available columns and customization options.

Matrix: A list of outgoing movements (disposals) including realized gain. It is similar to the LibraTax "Matrix" report.

Schedule D: Like the Matrix report but only includes columns needed for USA Schedule D tax form.


This software has not yet been reviewed or certified by a CPA and no claims are made with regards to correctness or accuracy.

You should not use it for tax reporting purposes.

The price history report has many available columns and is highly customizable. To simplify matters, the following pre-built column groupings are available.

Price History (Standard)Includes btc amounts, historical fiat amounts, present fiat amounts, present gain/loss, movement type
BalanceIncludes btc incoming, outgoing, balance and realized gain. This uses the same columns as LibraTax's Balance Report
Realized GainIncludes btc amounts, fiat amounts, realized gain short and long term
Then and NowIncludes historic price and fiat amounts, present price and fiat amounts, and present gain/loss.
Incoming and OutgoingIncludes btc incoming and outgoing, historic price, and fiat incoming and outgoing.
BlockChainIncludes Transaction ID, full address, btc incoming and outgoing.
AllIncludes all available report columns.
CustomChoose your own columns in any combination you wish.

The FIFO (first-in-first-out) method is used by default. The LIFO (last-in-first-out) method is available as an option.

The web-hosted service is limited to 100 addresses and 1000 transactions per address to limit abuse.

We feel these limits are sufficient for typical bitcoin wallet users. If you need higher limits, please let us know.

If there is demand and our server has enough capacity, we may increase the limit or add a pay option for larger reports.

Of course, you always have the option to run the open source command-line tool yourself without any limits.

This can happen for several reasons:

  1. Failure to provide all your wallet addresses, including change addresses.
  2. Providing additional addresses from outside your wallet.
  3. Using a reporting date range that does not include some transactions.
  4. Reporting on only inputs or outputs, not both.
  5. One or more addresses had more than 250 transactions.
  6. One or more addresses were used in multisig/escrow transactions (excluding p2sh), or non-standard transactions.

If none of the above apply, then the balances should match. If you find discrepancies, please let us know!

It is important to understand that it is not always possible to calculate a balance for an address because for some types of transactions the sending address is unknown.

This tool calculates balances by summing all the inputs and outputs matching your addresses for each historical transaction.

Wallets calculate balance in a different way, by summing all the unspent transaction outputs at the present time for which your wallet holds the keys.

Typically they will match, but not always.

If your report can be generated within about 5 seconds, it will be displayed immediately.

Reports are generated on a first come, first serve basis and some reports take longer to generate than others.

If your report cannot be generated right away then you will be presented with a screen that indicates how long the queue (line) is and how many reports are scheduled ahead of yours.

Just leave that page open and your report will automatically appear when it is ready.

If you lose the page, you will need to start your report over.


Yes! First export all addresses from each wallet. Then provide those addresses to the tool and the report will include transactions from all wallets.

Every bitcoin wallet software is unique. Some make it easy to export addresses. Others require digging into hidden files, or manually copying and pasting. Some make it pretty much impossible.

The key thing to keep in mind is that in order for the report generated by this tool to match up with your wallet's transaction history and balance, you must provide all wallet addresses that have received or spent funds -- including change addresses.

You can use the RPC API method listaddressgroupings from the command line or GUI Console.

On linux/mac, the easiest way is via the command-line with this command:

$ ./bitcoin-cli listaddressgroupings | grep '",' | tr -d '", '

Go into your wallet settings, Advanced, Wallet Information. Find the section Extended Public Keys.

Copy *all* of the Extended Public Keys into the Wallet Discovery Tool to get started.

Important: In the wallet discovery tool, choose the wallet type based on the version of CoPay in use at the time of wallet creation, not the present version. Versions 1.2.4 and below of CoPay used a non-standard format.

If your wallet was created with CoPay 1.2.5+ then choose 'Multi Signature' for an m-of-n wallet, and 'Single Signature' for a standard 1-of-1 wallet.

Go into your wallet settings, choose 'Export' then show 'Public'.

Copy the Extended Public Key beginning with 'xpub...' into the Wallet Discovery Tool to get started.

For most HD Wallets, you will need to locate or export the Master Extended Public Key.

You can recognize the key because it starts with 'xpub...'

Then visit Wallet Discovery Tool to get started.

If your wallet software does not provide the necessary functionality, please request they add it!

If you have instructions for a wallet not listed here, please send them to us.

The HD Wallet Discovery Tool

The Wallet Discovery Tool accepts your wallet's Master Extended Public Key (xpub) and generates a list of all your wallet addresses (including change addresses) that have ever been used, ie received funds.

The address list can then be used as input to the Price History tool, or you may have other uses for them.

Yes, you can choose the report option to 'Include Unused Addresses'. By default, the first 20 receive addresses and first 20 change addresses will be reported. This number can be changed by adjusting the 'Gap Limit' option.

Some wallet software (looking at you CoPay) do not display a list of change addresses in their user interface. Apparently because they wish to keep things 'simple'.

This is wrong-headed because often it can be that all of a wallet's funds are contained in the change addresses.

A wallet owner may wish to look up their funds on the blockchain manually, and will be dismayed when they cannot find them. Hiding these addresses from the owner of the funds is confusing at best, even a betrayal of the owner's trust in the software.

The Wallet Discovery tool can be very useful to users of such software, as it displays a full list of addresses that have been used.

Please see this description.

Privacy and Security

No. You provide only your public addresses. There is no way this website or anyone else could steal your bitcoins with that information.

Yes in a way. When you provide multiple addresses together, then there is a high probability that those addresses are from the same wallet or otherwise belong to you.

If were interested in correlating multiple addresses together we could store those addresses and subsequently use them for de-anonymization purposes.

Also, when you use the 'Wallet Discovery Tool', the public wallet addresses are transmitted to (We plan to add a feature to the btcd software that will remove this necessity soon.)

As it happens, the site does NOT store any submitted addresses except temporarily for one hour while reports are available for download.

Still, if you wish to be 100% certain of your privacy, we encourage you to never trust a third party, but instead run tools yourself locally. The command-line tools used by this website are available for download.

Yes. All data is transmitted over a secure connection. Insecure http requests are redirected to

Software Development

Not at the present time. If you would be interested in this, please let us know. Also, you can run the open-source command line tool yourself.

Not presently. You wouldn't want to see it anyway. ;-)


Yes please! It costs money to run servers. And time and effort to develop this software. Tips may be sent to: