Use extract scripts to run BTCRecover on a separate machine without exposing your wallet’s private keys, enabling privacy-preserving password recovery.
Extract scripts let you separate the wallet file from the password recovery process. Instead of copying your full wallet to another machine (or to someone helping you), you run a short script on your own computer that extracts only a small piece of encrypted data — just enough for BTCRecover to test passwords against, but not enough to reconstruct your private keys or access your funds.
Run the recovery on a cloud VM or a machine with a better CPU or GPU without exposing your wallet file.
Get help safely
Let someone else configure and run BTCRecover for you. They only ever see a base64 string, not your wallet.
Reduce trust required
Even if BTCRecover itself had a bug or malicious code, it cannot access your funds with only the extract output.
Short, auditable scripts
Each extract script is intentionally short and easy to read, making it straightforward to verify what data is being exported.
Extract scripts never extract enough information to reconstruct private keys or access funds, even after a successful password recovery. The recovered password alone, without the rest of the wallet file, is not sufficient to spend bitcoin.
cd btcrecover-master/extract-scriptspython3 extract-bitcoincore-mkey.py wallet.dat
Example output:
Bitcoin Core encrypted master key, salt, iter_count, and crc in base64:lV/wGO5oAUM42KTfq5s3egX3Uhk6gc5gEf1R3TppgzWNW7NGZQF5t5U3Ik0qYs5/dprb+ifLDHuGNQIA+8oRWA==
Run recovery:
cd btcrecover-masterpython3 btcrecover.py --data-extract --tokenlist tokens.txt# Please enter the data from the extract script# > lV/wGO5oAUM42KTfq5s3egX3Uhk6gc5gEf1R3TppgzWNW7NGZQF5t5U3Ik0qYs5/dprb+ifLDHuGNQIA+8oRWA==
What is extracted: The encrypted master key (mkey), its salt, and iteration count. The mkey is needed to test passwords but contains no address or private key information. Even if the password is found, the decrypted mkey is useless without the rest of the wallet file.
If you have a pywallet dump file instead of wallet.dat, use extract-bitcoincore-mkey-from-pywallet.py instead.
cd btcrecover-master/extract-scripts# Electrum 2.xpython3 extract-electrum2-partmpk.py default_wallet# Electrum 1.xpython3 extract-electrum-halfseed.py default_wallet
Example output (Electrum 2.x):
Electrum2 partial encrypted master private key, iv, and crc in base64:ZTI69B961mYKYFV7Bg1zRYZ8ZGw4cE+2D8NF3lp6d2XPe8qTdJUz
Example output (Electrum 1.x):
First half of encrypted Electrum seed, iv, and crc in base64:ZWw6kLJxTDF7LxneT7c5DblJ9k9WYwV6YUIUQO+IDiIXzMUZvsCT
Run recovery:
cd btcrecover-masterpython3 btcrecover.py --data-extract --tokenlist tokens.txt# > ZWw6kLJxTDF7LxneT7c5DblJ9k9WYwV6YUIUQO+IDiIXzMUZvsCT
What is extracted:
1.x: The 16-byte AES initialization vector and the first 16 bytes of the encrypted seed (50% of the seed). The private keys cannot be reconstructed from half the seed alone.
2.x: The 16-byte IV and the first 16 bytes of the encrypted master private key — all non-sensitive header data. Without the rest of the wallet file, this cannot lead to fund loss.
BTCRecover operates on MultiBit private key backup files, not the .wallet file itself. These backup files are created whenever you add a password or a new receiving address.Key backup location:%appdata%\MultiBit\multibit-data\key-backup\Key files are named like walletname-20140407200743.key.Extract script:extract-scripts/extract-multibit-privkey.py
cd btcrecover-master/extract-scriptspython3 extract-multibit-privkey.py multibit-20140407200743.key
Example output:
MultiBit partial first encrypted private key, salt, and crc in base64:bWI6sTaHldcBFFj9zlgNpO1szOwy8elpl20OWgj+lA==
Run recovery:
cd btcrecover-masterpython3 btcrecover.py --data-extract --tokenlist tokens.txt# > bWI6sTaHldcBFFj9zlgNpO1szOwy8elpl20OWgj+lA==
MultiBit Classic data-extracts have a false positive rate of approximately 1 in 3×10¹¹. If you plan to test more than ~10 billion passwords, use BTCRecover directly with the key file instead of an extract.
First, download your wallet file via the browser developer tools (see the BTCRecover tutorial for detailed download steps). The wallet file is typically named wallet.aes.json.Extract script:extract-scripts/extract-blockchain-main-data.py
If you use Blockchain.com’s Second Password feature, you must first recover the main password, then run the second-password extract script:
cd btcrecover-master/extract-scriptspython3 extract-blockchain-second-hash.py wallet.aes.json# Please enter the Blockchain wallet's main password: [enter main password]
Example output:
Blockchain second password hash, salt, and iter_count in base64:YnM6LeP7peG853HnQlaGswlwpwtqXKwa/1rLyeGzvKNl9HpyjnaeTCZDAaC4LbJcVkxaECcAACwXY6w=
The extract-blockchain-second-hash.py script requires PyCrypto (or the full BTCRecover package which includes an AES decryption library) to decrypt the first encryption layer.
What is extracted: The first 32 bytes of encrypted wallet data — a 16-byte AES initialization vector and the first encrypted AES block. Once decrypted, this block contains a non-sensitive string (guid, tx_notes, address_book, or double) used to verify a correct password. No private key data is present.
cd btcrecover-master/extract-scriptspython3 extract-bither-partkey.py address.db
Example output:
Bither partial encrypted private key, salt, and crc in base64:YnQ6PocfHvWGVbCzlVb9cUtPDjosnuB7RoyspTEzZZAqURlCsLudQaQ4IkIW8YE=
Run recovery:
cd btcrecover-masterpython3 btcrecover.py --data-extract --tokenlist tokens.txt# > YnQ6PocfHvWGVbCzlVb9cUtPDjosnuB7RoyspTEzZZAqURlCsLudQaQ4IkIW8YE=
What is extracted: A Bither encrypted private key is 48 bytes: 32 bytes of encrypted private key data followed by 16 bytes of encrypted padding. Only the last 16 bytes of padding are extracted. This padding, once decrypted, is predictable — BTCRecover uses it to verify passwords. The first 32 bytes (the actual private key) are never extracted, so the private key cannot be reconstructed.
cd btcrecover-master/extract-scriptspython3 extract-msigna-partmpk.py msigna-wallet.vault
Example output:
mSIGNA partial encrypted master private key, salt, and crc in base64:bXM6SWd6U+qTKOzQDfz8auBL1/tzu0kap7NMOqctt7U0nA8XOI6j6BCjxCsc7mU=
Run recovery:
cd btcrecover-masterpython3 btcrecover.py --data-extract --tokenlist tokens.txt# > bXM6SWd6U+qTKOzQDfz8auBL1/tzu0kap7NMOqctt7U0nA8XOI6j6BCjxCsc7mU=
What is extracted: An mSIGNA encrypted master private key is 48 bytes: 32 bytes of encrypted key data followed by 16 bytes of encrypted padding (the chaincode is stored separately). Only the 16-byte padding is extracted. Because less than half the private key is present and the chaincode is absent, the wallet cannot be reconstructed even if the padding is decrypted.