user72373: 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 ! ) ?

user114553: 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!

72373: <p>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.</p>
<p>I managed to read the contents using walletools (<a href="https://github.com/akx/walletool" rel="nofollow noreferrer">https://github.com/akx/walletool</a>), and here is what I have :</p>
<ul>
<li>a long list of &quot;tx&quot; items, containing mostly binary data</li>
<li>quite a few (probably 50 ish) &quot;ckey&quot; items, with the public key and encrypted private keys</li>
<li>a single &quot;mkey&quot; item, with the 'nID', 'encrypted_key', 'salt', 'derivationMethod', 'nDerivationIterations' and 'otherParams' fields containing data</li>
<li>two &quot;name&quot; items containing 'hash' and 'name' fields</li>
<li>a number of &quot;pool&quot; items with 'n', 'nVersion', 'nTime', and the 'public_key'</li>
<li>lots of empty &quot;keymeta&quot; items</li>
<li>a &quot;version&quot; item : 150001</li>
<li>a &quot;bestblock&quot; item, with a &quot;key&quot; field</li>
<li>a &quot;minversion&quot; item : 130000</li>
<li>a &quot;orderposnext&quot; item (empty)</li>
<li>a &quot;bestblock_nomerkle&quot; item (empty)</li>
</ul>
<p>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 ! ) ?</p>
 114553: <p>I think the least &quot;intense&quot; option here would be to look up each of the wallet addresses from your <code>ckey</code> items on a node (i.e. blockchain.info blockchair.com btc.com etc) to see which ones have any value in them.</p>
<p>Once you have a list of the wallet addresses that are &quot;worth recovering,&quot; you will need to take those <code>ckey</code> items' encrypted private keys (possibly along with data from the <code>mkey</code> item) to attempt to manually decrypt/recover your private keys to those wallets.</p>
<p>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.</p>
<p>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!</p>
