This post explains how to get access to your Bitcoin Cash (BCC/BCH) coins if you held your bitcoins in the official Bitcoin Core wallet during the chain split that occured August 1st 2017 at 12:20 UTC. To do so we will use the official Bitcoin ABC wallet as the receiver of our Bitcoin Cash coins.
It took me quite some time to figure out how to split those coins so I decided to write this short guide to help other people out that are in the same situation. The guide is based on the steps outlined by Greg Maxwell on Bitcointalk.org.
So let’s get started.
Send the Bitcoins to another Wallet You Control
The idea behind this is to transmit your bitcoins to a completely different wallet you control so that if anything goes wrong while retrieving your Bitcoin Cash coins, at least your bitcoins are safely stored in another location.
One thing to note is that as this transaction is being done after the August 1st split, the transaction will be valid on the Bitcoin (Core) chain but not on the Bitcoin Cash chain, as those chains have forked. So the bitcoins will be transferred but not the Bitcoin Cash coins.
You could send the bitcoins to a different PC with Bitcoin Core installed, but I simply sent my bitcoins to my Kraken account. This is less secure but I trust Kraken enough to hold my bitcoins for at least the time required to split the coins.
Import the Bitcoin Core Wallet into the Bitcoin ABC Wallet
Basically, the Bitcoin ABC wallet is a modified clone of the Bitcoin Core wallet, and so their data files are compatible. However there are some tweaks required to have Bitcoin ABC properly use Bitcoin Core’s files.
Copy Bitcoin Core’s Data Directory
On the PC which has the Bitcoin Core wallet installed, start Bitcoin Core, then select Help->Debug in the menu and select the Information tab. The data directory that contains the wallet’s data files is visible. Your directory may be different than mine:
Now stop Bitcoin Core, then copy that data directory to the PC where you want to install Bitcoin ABC. The amount of data to copy is quite large (+- 140 GB at the time of this writing), so you’ll need to copy the data directory via the local network if you have one available or use an external USB drive with enough capacity.
Delete peer.dat Files
Once the data directory has been copied, open it on the new PC, locate the peer.dat file(s) and delete it/them. Those files contains the addresses of other Bitcoin wallets on the network, which are invalid for Bitcoin Cash and so we must delete those files.
Download and Install the Bitcoin ABC wallet
The next step is to download the Bitcoin ABC wallet and install it on the second PC. As I use Windows, I simply downloaded the file called bitcoin-0.14.6-win64-setup-unsigned.exe in the download section of the BitcoinAbc web site.
Start the installation program and follow its directions. When the installation completes, let the installation program start Bitcoin ABC.
When Bitcoin ABC starts it asks for where to store its data directory. Choose Use a custom data directory and select the data directory you copied earlier (in ly case D:\Cache\BitcoinAbc), and click OK:
Completing the Synchronization
The main window of Bitcoin ABC opens and it tries to synchronize with the network:
However, the synchronization is stuck because the data directory contains blocks from the Bitcoin Core wallet created after the fork, and those blocks need to be invalidated so that Bitcoin ABC discards them and downloads the correct ones from its own network. So do the following:
- Open the debug console (found in the menu under Help->Debug), and select the Console tab.
- At the bottom of the console tab, type in the following command: invalidateblock 00000000000000000019f112ec0a9982926f1258cdcc558dd7c3b7e5dc7fa148 followed by Enter:
Bitcoin ABC should now synchronize the Bitcoin Cash blocks created after the fork from its own network.
At this stage, I have to admit that the synchronization process got stuck again after some time. I had to kill Bitcoin ABC and restart it. It then proceeded to synchronize the remaining blocks however.
Abandoning the Last Transaction
At this point, the Bitcoin ABC wallet should have completely synchronized. But to my dismay, it displayed that I had 0 BCC available in my balance. It seemed the last transaction where I sent all my BTC from Bitcoin Core to Kraken was also duplicated in Bitcoin ABC. Not good.
But I noticed that last transaction was grayed out. I also noticed that the last transaction’s value was delimited by square brackets:
When clicking on the Transactions tab, then right-clicking the last transaction, it appears that transaction has the status Open for xyz more blocks:
So this transaction hasn’t been confirmed on the Bitcoin Cash blockchain, and never will be.
What you can do now is close the details window for that transaction and do a right-click on that transaction in the transaction list. In the popup menu that appears, toward the bottom of the menu, an Abandon transaction menu item should be available:
Click that Abandon transaction menu item.
Bitcoin Cash Finally Available
Voilà! The last transaction you did on the Bitcoin Core blockchain should be abandoned and won’t be taken into account by the Bitcoin ABC wallet anymore. You should now have the full Bitcoin Cash balance available from the time of the fork in your Bitcoin ABC wallet.
Note that the abandoned transaction still stays visible in the Bitcoin ABC wallet but this isn’t really a problem other than it looks ugly.
What About the Old Bitcoin Core Wallet?
At this point, the old Bitcoin Core wallet has no use anymore and should be discarded. So what you can do is open its data directory, back up the wallet.dat file located there just in case, and then delete it.
The next time you start Bitcoin Core it will create a new wallet.dat file, which essentially means you now have a new wallet with completely different addresses and your past transactions are not available anymore.
What I did was to transfer the bitcoins I had stored at Kraken back to this (new) Bitcoin Core wallet.
Summary
That’s it. I hope this guide will be useful to others that are also struggling like I did to have access to get their Bitcoin Bash. Good luck!
Please leave your comments below.
This process does not need to be this complex. Download abc, run and let it download all of the bcc blockchain. Close abc, copy your old bitcoin wallet.dat (the one with the funds sent to a new bitcoin wallet) into abc’s data directory. Open abc then invalidate as above any transactions that are squared out. Then you have Bcc to spend.
It’s basically the same procedure as bitcoin core for importing a backed up wallet.
True. But depending on the speed of your Internet connection, downloading the whole blockchain can take a lot of time.
Just installed ABC without moving anything from BTC QT. It’s processing blocks on disk and has so far made 0.02 BCH available with a LOONG way to go. It is showing all old transactions I made with BTC – I am so clueless what is going on. I did take a backup of the few BTC I had, but where do the 0.02 BCH come from? Perhaps from a quarter BTC I received once?
Hi,
You need to move your coins in BTC Core to another wallet before copying the wallet.dat to the Bitcoin ABC directory.
After you have copied the wallet.dat to the Bitcoin ABC wallet, it is normal to see the old transactions in the Bitcoin ABC wallet, as Bitcoin and Bitcoin Cash shared the same blockchain up to August 1st.
Hope this helps.
I just took a copy. Am I now in trouble for installing ABC on the same box without moving my coins????
I actually did not copy my wallet.dat to ABC yet. So I am good if I move the coins before I do? Or is ABC reading my wallet from the BTC Core directory?
I installed Bitcoin ABC on another machine because Bitcoin ABC and Bitcoin Core use the same settings and unintended side effects could occur. So I can’t say what exactly happens if you install them on the same machine.
Did you backup the wallet.dat from the Bitcoin Core client before starting the split?
If you want to do everything from the same machine, I think you need to at least be sure that Bitcoin ABC and Bitcoin Core use different data directories and you don’t want to run them at the same time.
If they use different data directories, make sure the wallet.dat in Bitcoin Core is the same as one as the one you backed up. Startup Bitcoin Core and move the coins to another Bitcoin Wallet.
Only then copy the wallet.dat from Bitcoin Core to Bitcoin ABC to get access to your Bitcoin Cash coins.
Hope this helps.
What OSX wallet do you recommend or should I send it to a broker? I believe I would have to pay a commission if I just send it to for example Kraken and then later send it back to myself?
I only even had BTC/QT to store my wallet on my Mac – I wonder if I can now stop ABC, start BTCQT and send my coins somewhere (local wallet?) and then continue with the Abc. It is unnecessarily complicated all this and I am actually in IT ;/
When I split the coins, I just sent the BTC to Kraken. But I wouldn’t recommend doing this now, as Kraken has really become bad. Is there another exchange that you trust? But the best, in my opinion, would be to get a hardware wallet and to send/keep your coins there.
I am still waiting for my BTC QT to reindex – something got corrupt when I used the ABC
Same story as https://bitcointalk.org/index.php?topic=2082277.0
I hope I will recover.
In that bitcointalk thread, it looks like the original poster didn’t move his BTC out of the wallet before opening the wallet.dat with Bitcoin ABC. This is explained in my article.
Hope you’ll be able to retrieve your BCH. Good luck!
So 3 weeks after installing ABC, the file was finally reindexed, my transactions showed again. I am not going to do this again. I have found another blog showing how to create Coinomi wallets – one for BCH and one for BTG. I think I will try that. I started with Electrum wallet, but when I saw it would cost 19mBtc (350USD) to sweep the key, I dropped that idea… So it seems I need to send my few coins to an online wallet before I try the Coinomi thing…
The macOS binary is not code signed. The latest version (0.19.12) does not run. A fresh install reports that it has a corrupted database and just quits. The web site only has a domain validated certificate so you really don’t know you are getting the legitimate software. From all this, I wouldn’t trust Bitcoin ABC on any platform.
You can verify the checksum of the binary you download and compare it to the one posted on the website to make sure it hasn’t been tampered with.
Lots of other crypto wallets do the same, for example, Monero.