Bitcoin Core wallet.dat (and old-coin clients built on Bitcoin Core)
Works for legacy Berkeley DB wallets and SQLite descriptor wallets. The passphrase goes in secrets/wallet.pw (first line; leave it empty if the wallet…
Works for legacy Berkeley DB wallets and SQLite descriptor wallets. The passphrase goes in
secrets/wallet.pw (first line; leave it empty if the wallet is unencrypted).
./blocktools run 'classify /in/wallet.dat'
Descriptor wallet (test vector: the BIP84 spec phrase imported into Core 24, encrypted):
./blocktools run 'read-file /secrets/wallet.pw /in/wallet.dat | dat-read | derive --chain btc --count 1'
Front door, balance only:
recipes/recover.sh /in/wallet.dat - --goal balance --password-file /secrets/wallet.pw
Old-coin clients (Litecoin, Dogecoin, Peercoin, Namecoin, Feathercoin ... before descriptors)
These clients are forks of Bitcoin Core and store keys in the same Berkeley DB format, so dat-read reads
their keys and key-to-addresses --chain <coin> encodes them for that coin. See chain-old-coins.md.
Test file: the btcrecover legacy wallet.dat fixture, shown as Peercoin.
./blocktools run 'read-file /secrets/multibit.pw /in/old-client-wallet.dat | dat-read | key-to-addresses --chain ppc'
UNTESTED: no wallet.dat made by an actual altcoin client is in the test set. The format is the same, but a client that changed the key-record layout would fail here.