I know this very old thread but I’m trying to restore an old blockchain.info wallet using the aes backup. Is that possible with bitcoin -QT since multibit been deprecated for years now. Thanks.
If this doesn't work, consider posting a new topic with more details about the backup (
dates, etc.):
- First, download their official "My Wallet Backup Decryption Tool" from GitHub: github.com/blockchain/my-wallet-backup-decryption-tool
- Run it offline, load your wallet.aes.json and provide the correct password(s) to decrypt it.
- Once decrypted, click on "View JSON" to see its human-readable contents.
- Find your HD Wallets (for newer backups) and look for the "xprv" key of each of your bitcoin wallets.
Each wallet that you've created is labeled with the same name that you can see in their app/web and should be under "account:" following a number indicating its account_index in the derivation path.
For example, under "accounts: { 0:", you should see your first wallet's label, below it is its extended private key (xprv) at account_index. - Copy it, do the same to your other xprv keys if you created more than one wallet.
Now, to Bitcoin Core:
- Prepare the xprv keys that you've copied as HD output descriptors that Bitcoin Core support: more info here
E.g: If your Blockchain wallet used legacy addresses: pkh(your_xprv_key/0/*) for the receiving addresses and pkh(your_xprv_key/1/*) for the change addresses - Open Core and create a new blank wallet.
- Open the Console (GUI) and select that specific wallet or use the terminal to issue RPC command using bitcoin-cli,
use getdescriptorinfo command followed by a descriptor containing your xprv key and take note of its checksum.
E.g.: from the descriptor samples above, use: getdescriptorinfo pkh(your_xprv_key/0/*)
Copy its "checksum" and paste it after a "#" next to the descriptor;
E.g.: when appended with the checksum: pkh(your_xprv_key/0/*)#z57zd4jx and pkh(your_xprv_key/1/*)#7uskjw5w
Do the same to your wallet.aes.json's other xprv keys.
- Then, all you need to do is to import those via importdescriptors command containing the correct args;
E.g.: importdescriptors "[{\"desc\": \"pkh(your_xprv_key/0/*)#z57zd4jx\",\"timestamp\": 0,\"active\": true,\"internal\": false,\"range\": [0,999]},{\"desc\": \"pkh(your_xprv_key/1/*)#7uskjw5w\",\"timestamp\": 0,\"active\": true,\"internal\": true,\"range\": [0,999]}]"
Notes: Those args are quite important, \"internal\": false indicates that the descriptor is for your receiving addresses and true for your change addresses.
\"timestamp\": 0 indicates the "birthday" of your descriptor, means that Bitcoin Core will rescan the blockchain starting with the indicated unix timestamp, 0 means all blocks. - If you have more descriptors, just follow the format and add it as another desc: json object like how the two descriptors in the example are formatted.
- The result should be multiple "success: true" indicating that all descriptors are imported correctly,
If there's one or more error, that points to the descriptor in the same order they're placed in importdescriptor command.
Now if you have loose private keys (
e.g. imported or old non-HD Blockchain wallet): Post the details (
but not the contents of your wallet.aes.json) in a separate topic
Since you'll need a tool to encode those bare base58 private keys to WIF to import them as single-key descriptors.