-snip-
I understand keeping everything public -- I have done this for years so 100% sold on that. Are there any open source (read: trusted) utilities that will just let me import this wallet.dat file, read what's in it, and give me a private key for all the addresses with funds or let me move them out?
You can use iancoleman's BIP39 tool; but do not trust, validate it; it's open-source so you can ask someone in your company to audit its code.
Link to the source code:
https://github.com/iancoleman/bip39In Bitcoin Core:
Use the console command that I've suggested with "
true" flag.
Open the menu: "Window->Console", select the correct wallet in the console's wallet selection drop-down menu
Then use the command:
listdescriptors trueTake note of the results, you need to find the correct parent descriptor among the results that can derive the funded address' private key.
If your address starts with "
bc1q" (
default), get the descriptor that shows:
"desc": "wpkh... and
"internal": false,.
The latter tells that the descriptor is for your receiving addresses and the former shows that the script type is for bc1q addresses.
If the address starts with '1', then get
"desc": "pkh...; if '3', then
"desc": "sh(wpkh... (
should be internal false for both).
In BIP39 Tool:
Open it in your
"Air-Gap" machine's browser.
Paste the descriptor's master private key in the "
BIP39 Root key" text box (
"xprv..." do not include the following ' / ' and the rest),
scroll down a little and open "
BIP84" tab (
for 'bc1q' address) / "
BIP44" tab (
for '1' address) / "
BIP49" tab (
for '3' address)
The default derivation paths of those tabs should match to the descriptor's path so the addresses and keys should be listed below the page.
You can click "
show ___ More rows" below the addresses to generate more addresses if it's not included there.
-snip- Start create standard wallet, then next select use master key then type your key from bitcoin core. Your address should show in view tab im not sure if it support bip32 but well see.
Electrum will derive the child key of the provided master private key with the derivation path of
m/0 (
receiving) and
m/1 (
change) which is different than the descriptor's derivation path.
And with that restore option, the user can't select the path Electrum should use.