I burned BTC through blockchain.info, how do I access my XCP?

This problem has been getting worse - now there are 3 types of possible answers. If your wallet isn’t recovery phrase-based, you probably want the 2nd approach as your old style wallet (the 3rd approach) has been converted by blockchain.info.

Case 1: Recovery-Phrase Based Blockchain.info Wallet

Note: Blockchain.info’s new wallets make use of a bip39 recovery seed to generate EVERY ADDRESS and PRIVATE KEY in your Blockchain.info account. At this time it is not possible to extract only 1 address’ private key so the only option is to make use of the recovery seed to gain access to the address that has your funds. Extreme care should be taken to perform the following steps on an airgapped/offline machine to preserve the possible integrity of your recovery seed. You may even want to consider this method a fallback/last resort and after completing the recovery actions discard all addresses/wallets/accounts and start a new Blockchain.info wallet. You have been warned

If you have not already got your Blockchain.info recovery seed/phrase you will need to login to your Blockchain.info account and navigate to the ‘Security Center’ and then click on the ‘Phrase Backup’ Option under Level 1 (Note: Once you backup the recovery phrase you will not be able to access it again. Make sure you properly record this info). If you have more than 1 wallet in your blockchain.info account you will need to determine which wallet contains the address you want to recover.

  1. If you have not already got your Blockchain.info recovery seed/phrase you will need to login to your Blockchain.info account and navigate to the ‘Security Center’ and then click on the ‘Phrase Backup’ Option under Level 1 (Note: Once you backup the recovery phrase you will not be able to access it again. Make sure you properly record this info)
  2. If you have more than 1 wallet in your blockchain.info account you will need to determine which wallet contains the address you want to recover.
  3. In blockchain.info’s wallet go to ‘Settings-> Addresses’. You will see all your wallets listed by name.
  4. If you only have 1 then your Account number for step 6 is 0. If you have more than 1 then use the ‘Manage Address’ button to display the addresses within each wallet until you find the wallet that contains the address you want to recover/import into Omniwallet.
  5. Count down the list of wallets starting with 0 for the first/‘My Bitcoin Wallet’ and when you reach the wallet that has the address make note of its number. This will be the account number for step 6.
  6. Once you have your recovery phrase you will need access to the Bip39 generator
  7. We recommend you download the ‘bip39-standalone.html’ file directly from github to thumbdrive
  8. On your offline machine access/open/load the ‘bip39-standalone.html’ file
  9. Enter your Blockchain.info recovery phrase/seed in the webpage next to ‘BIP39 Mnemonic’
  10. Choose number of words = ‘12’ (or set the number of words for how many were in your recovery phrase)
  11. Scroll down to the ‘Derivation Path’ (leave BIP44 selected) and enter your account number from step 2 here.
  12. Leave all the rest of the entries set to their default
  13. Scroll down to the ‘Derived Addresses’ section and you should now see a list of addresses that will match the list of addresses in blockchain.info for your wallet.
  14. Find the address in question and copy its private key.

Note: This procedure was borrowed from here

Case 2: Blockchain.info Wallet with Private Keys in Newer (Non-Compressed) WIF Format

Counterwallet uses a WIF format - 52 character, base58 private keys. These start with a ‘K’ or ‘L’ and are compressed private keys. The WIF format of Blockchain.info is uncompressed WIF (a 51-character string that starts with ‘5’).

Using bitaddress.org

You need to use that WIF to create the compressed WIF (which can be used in Counterwallet). You can use any utility that does that (because this isn’t Counterparty- but Bitcoin-specific), such as bitaddress.org (which you can download and run offline if you wish).

  • Create a wallet with bitaddress.org (you don’t need it, though) and then go to Wallet Details and paste your Blockchain.info WIF (sample: 5J5ZVe9qacp3irVdzEbURShHzfYeReNY79FkhdD3FXdTxw15ZHH). (The form works with privkey in any format listed on the page, but our input here is the non-compressed WIF used by blockchain.info).

  • On the right (mark (1) in screenshot below) you should see your Bitcoin/Counterparty address that is derived from the private key and further down (marked with (2)) a Counterwallet compatible WIF. Now, this address (1) must be the same as the address from which you want to import. You need to be careful about this because if the address isn’t the same, sweep/import won’t work (and worse problems are possible, e.g. notice that the same key translates two two addresses, so guess what happens if you write down the wrong address and later decide to send additional funds to "your "(actually not, since it’s wrong) address). Ensure that you’re getting correct output from these actions.

As mentioned earlier here you can paste private key in any of the formats (compressed WIF, non-compressed WIF, hexadecimal) - supported Key Formats are provided at the top of the page.

Using bitcoin-tools

Another tool that I tested is GitHub - matja/bitcoin-tool: Tool for converting Bitcoin keys and addresses. On Ubuntu it requires openssl-dev and the usual build-essential to make.

Procedure:

  • Create a Counterwallet wallet and note the first address and its private key
  • Paste the private key into bitaddress.org to obtain the non-compressed private key (used by Blockchain.info WIF)
  • Then use the bitcoin-tool to massage (“convert” is not the right word because no conversion happens) the Blockchain.info-style WIF into the output WIF (to obtain a Counterwallet-style WIF from the beginning of this procedure). This is used to verify back-and-forth change of WIF format .

Verification procedure with bitcoin-tools

Using Bitadddress.org and bitcoin-tools I was able to go from a Counterwallet address and its private key (compressed WIF) to Blockchain.info’s non-compressed WIF and back (to Counterwallet’s compressed WIF).

  • Input: Private Key Hexadecimal Format (64 characters [0-9A-F]): from the left hand side of Wallet Details at bitaddress.org, in the screenshot it is marked with (4).
  • Output: Counterwallet/Bitcoin address as address.base58check (marked with (1) in screenshot above) and Counterwallet-compatible WIF as private-key-wif.base58check (marked with (2)).
$ ./bitcoin-tool --input-type private-key --input-format hex --input \
22AEABFEF482C379C4F1932C64312738749A5D7511098F7C5614EFCDA8D8FADF \
--network bitcoin --output-type all --output-format base58 \
--public-key-compression compressed

address.base58check:161kPNRxcWhMP63PdchJuFGTmXHNjL3hRU
private-key-wif.base58check:KxP8RQz1RP4f1jTQFd1A2tQr1X8gBmx4J7S7tJp8w8Bx1gHnWuyX

Case 3: Old Style Wallet (Compressed WIF)

NOTE: It appears blockchain.info does not provide this type of wallet any more, so if you’re not using the newest approach you probably want to use the second approach (blockchain.info’s non-compressed WIF => Counterwallet’s compressed WIF).

Using Counterwallet

Obtain your private key in compressed WIF format from blockchain.info.

In Counterwallet, go to Import Funds > Import (Sweep) Tokens from Another Address.

There enter the unencrypted uncompressed private key (in the Wallet Input Format) to the address with the tokens you want to move over.

Using Bitcoin Core / Bitcoin-Qt

If you burned BTC through Blockchain.info you will need to import the compressed private keys of the addresses from which you burned into Bitcoin Core. Use Bitcoin Core with addrindex patch (releases can be found here) because regular releases can’t build address index.

On blockchain.info you can find the private key for each address under Import/Export -> Export Unencrypted. You will see your private keys in JSON format. Under Select Private Key Format select Bitcoin-Qt Format.

Below will be a list of your addresses and their private keys: {“addr”:”ADDRESS”, “privkey”:”PRIVATEKEY”,…}.

To use your XCP, you must first run Bitcoin Core and download the Bitcoin blockchain. The blockchain is approximately 45 gigabytes and growing. Make sure that you have enough room to store it (100 GB, just in case). If you have previously downloaded the blockchain, you will have to install an addrindex version of Bitcoin Core and reindex it (see this). Refer to the documentation to see how to reindex the blockchain on your OS.

Then, when you have installed the most recent version of counterparty-server, run the following command and leave its terminal open:
counterparty-server start

To speed things up, you can download the counterparty database using the bootstrap command (first run bootstrap and then start as above).

Once counterparty has rescanned the blockchain up to the most recent block, you can open another terminal window to use counterparty-client’s client functionality (for example, to display wallet balance, issue counterparty-client wallet).