As far as I can tell, my old bitcoin wallet got corrupted. It was created in Bitcoin Core in the 2014/2015s, and I'm trying to recover it. Bitcoin Core doesn't accept it anymore (and doesn't give an error message), so I'm trying another way.

I managed to read the contents using walletools (https://github.com/akx/walletool), and here is what I have :

  • a long list of "tx" items, containing mostly binary data
  • quite a few (probably 50 ish) "ckey" items, with the public key and encrypted private keys
  • a single "mkey" item, with the 'nID', 'encrypted_key', 'salt', 'derivationMethod', 'nDerivationIterations' and 'otherParams' fields containing data
  • two "name" items containing 'hash' and 'name' fields
  • a number of "pool" items with 'n', 'nVersion', 'nTime', and the 'public_key'
  • lots of empty "keymeta" items
  • a "version" item : 150001
  • a "bestblock" item, with a "key" field
  • a "minversion" item : 130000
  • a "orderposnext" item (empty)
  • a "bestblock_nomerkle" item (empty)

From there, I imagine the important data is the mkey. What is its encryption algorithm and what Python lib could I use to decrypt it (assuming I remember the password ! ) ?


1 Answer 1


I think the least "intense" option here would be to look up each of the wallet addresses from your ckey items on a node (i.e. blockchain.info blockchair.com btc.com etc) to see which ones have any value in them.

Once you have a list of the wallet addresses that are "worth recovering," you will need to take those ckey items' encrypted private keys (possibly along with data from the mkey item) to attempt to manually decrypt/recover your private keys to those wallets.

If you're experienced with programming, you could read through the code from the version of bitcoin core you used in 2014/2015 to figure out how it was encoded. Otherwise, you may need to find an experienced programmer you can trust, to help here.

As a post-note: Have you tried re-compiling a copy of that older version of bitcoin core on a sandbox system? It's just a try, but maybe the file just got caught by a reverse-compatibility issue!

  • Well sadly, I have no idea what version I used exactly, so I may be out of luck going this way. Reading the code is no problem for me though, but if I have to iterate through all the commits to see what changed and at what point, this may not be so much of a trivial task... I will try to pick one and see if it loads it :)
    – Magix
    Commented Jan 24, 2021 at 18:36

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.