SwapChan
Never holds your keys · your wallet signs
blocktools CLI

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.