Quick reference · btcrecover · hashcat · John the Ripper
Wallet password recovery — the command cheat sheet.
Every wallet format, the command that runs it — one page. Copy, adapt, run. The full reasoning, install steps and honest limits live in the walkthroughs linked from each row.
By Robbert Bink · ~6 min read · Published 9 August 2026 · Last reviewed: 14 August 2026
Every command below only works as well as your candidate list. Copy the right command, but build the list first — the hint-list guide is the method, this page is the syntax. Always run on a copy of your file, offline, with tools from official sources only.
How to use this page
Three steps: (1) identify your file — the identifier or the master list; (2) find your wallet in the table below and copy the command for the tool you chose; (3) if the command errors, the troubleshooting index has the fix. The btcrecover, hashcat and John the Ripper walkthroughs contain the full steps behind every row.
The three tools at a glance
| Tool | The basic command | Start here |
|---|---|---|
| btcrecover | python btcrecover.py --wallet <file> --tokenlist tokens.txt | Full walkthrough |
| hashcat | hashcat -m <mode> <hashfile> words.txt -r rules/best66.rule (renamed from best64.rule in recent versions — older installs use best64.rule) | Full walkthrough |
| John the Ripper | john --wordlist=words.txt --rules=All <hashfile> | Full walkthrough |
Extraction scripts: extract-*.py lives in btcrecover’s extract-scripts/ folder (for btcrecover’s own --data-extract path), *2hashcat.py in hashcat’s tools/ folder, and *2john.py in John’s run/ folder — the *2john lines are what the hashcat columns need. Full recipes: convert a wallet to a hashcat hash.
Wallet → the command that runs it
| Wallet / file | btcrecover | hashcat | John the Ripper |
|---|---|---|---|
| wallet.dat — Bitcoin Core, Litecoin, Dogecoin, BCH, Dash | python btcrecover.py --wallet wallet.dat --tokenlist tokens.txt |
bitcoin2john.py wallet.dat > wallet.hashhashcat -m 11300 wallet.hash words.txt -r rules/best66.rule |
bitcoin2john.py wallet.dat > wallet.hashjohn --wordlist=words.txt --rules=All wallet.hash |
| Electrum — 1.x–4.x wallet file | python btcrecover.py --wallet <file> --tokenlist tokens.txt2FA/TrustedCoin wallets: special case — not covered by the standard btcrecover route; identify the wallet type first |
electrum2john.py <file> > e.hashmode follows the $electrum$N prefix: 1/2/3 → 16600 · 4 → 21700 · 5 → 21800 |
electrum2john.py <file> > e.hash |
Ethereum keystore — UTC--*.json |
python btcrecover.py --wallet UTC--*.json --tokenlist tokens.txt |
ethereum2john.py UTC--*.json > eth.hash (remove any filename: prefix), then hashcat -m 15600 eth.hash words.txt (PBKDF2) · -m 15700 (scrypt) |
ethereum2john.py UTC--*.json > eth.hash |
| Ethereum pre-sale — 2014 JSON | — | ethereum2john.py on the pre-sale JSON → hashcat -m 16300 presale.hash words.txt |
— |
BIP38 — 6P… paper key |
python btcrecover.py --bip38-enc-privkey 6P… --tokenlist tokens.txt |
No hashcat mode | — |
Blockchain.com — wallet.aes.json |
python btcrecover.py --wallet wallet.aes.json --tokenlist tokens.txt |
blockchain2john.py <file> > bc.hash-m 12700 (legacy My Wallet) · -m 15200 (v2/v3) · -m 18800 (2nd password) · very early V0: -m 34700 (identify first) |
blockchain2john.py <file> > bc.hash |
| MetaMask — vault data (legacy 10k or newer dynamic-iteration vault) | Reads the vault folder directly; extract-metamask-vaults.py produces a clean vault file |
metamask2hashcat.py --vault vault.json > mm.hash — the extractor reads the KDF parameters from the vault-m 26600 (legacy) · -m 26610 (newer dynamic-iteration) · -m 31900 (mobile) — 26620 only in newer/development hashcat builds; use the modes your installed version supports |
— |
MultiBit Classic / HD — .key · .wallet · .wallet.aes |
Classic .key: direct / data-extract (fastest). Classic .wallet: btcrecover direct (slower) — or hashcat 27700 / John via multibit2john. HD mbhd.wallet.aes: extract/direct; hashcat 22700 also applies | multibit2john.py <file> > mb.hash-m 22500 (.key) · -m 27700 (.wallet) · -m 22700 (HD) |
multibit2john.py <file> > mb.hash |
| Coinomi — scrypt vault | Reads the vault directly | — | coinomi2john.py <vault> > co.hash |
Exodus — seed.seco |
— | exodus2hashcat.py seed.seco > ex.hashhashcat -m 28200 ex.hash words.txt -r rules/best66.rule |
— |
| BIP39 passphrase — the 25th/13th word | python btcrecover.py --bip39 --mnemonic "your 12/24 words here" --addrs <known-address> --addr-limit 10 --tokenlist tokens.txtYou also need the mnemonic and a known address/xpub target; for Ethereum/altcoins add the appropriate --wallet-typeSLIP39 passphrases: separate --slip39 mode — different KDF, needs a share quorum |
— | — |
Monero — .keys file |
— | No hashcat mode | monero2john.py wallet.keys > monero.hashjohn --wordlist=words.txt --rules=All monero.hash |
“—” means that tool has no supported path for this format — use the listed tool instead. Rows verified against the official btcrecover, hashcat and John the Ripper documentation (9 August 2026). Several 2john extractors prefix the hash with filename: — remove that prefix before running hashcat; the conversion guide covers it.
Specialist formats — one tool each
| Format | Command |
|---|---|
| Brainwallet (SHA-256 / scrypt) | btcrecover reads it directly — see the walkthrough for the address setup · dedicated guide |
| Terra Station | needs extraction first — assemble the salt + IV + ciphertext hash from the wallet data, then hashcat -m 29600 terra.hash words.txt -r rules/best66.rule · extraction guide |
Bisq — .wallet | bisq2hashcat.py bisq.wallet > bisq.hash → hashcat -m 29800 bisq.hash words.txt |
| Stargazer (Stellar/XLM) | needs extraction first — build the $stellar$... record (salt/IV/ciphertext) from the wallet data, then hashcat -m 25500 stellar.hash words.txt -r rules/best66.rule · extraction guide |
| Keplr (Cosmos) | keplr2john.py <vault-folder> > keplr.hash → john --wordlist=words.txt --rules=All keplr.hash — legacy extension format only; identify v2/current vaults before assuming compatibility |
Cardano — legacy secret.key | cardano2john.py secret.key > ada.hash → john --wordlist=words.txt --rules=All ada.hash |
| BitShares | bitshares2john.py <db> > bs.hash → john --wordlist=words.txt --rules=All bs.hash |
| Tezos ICO / fundraiser credentials | tezos2john.py <seed words> <fundraiser email> <tz1 address> > xtz.hash → john --wordlist=words.txt --rules=All xtz.hash — the ICO/fundraiser password route, not a generic Tezos client key file |
btcrecover wallet formats — three situations, three commands
There is no single command that fits every wallet below. Split the list into three cases: files btcrecover reads straight into --wallet, formats that need a special btcrecover flag, and formats that need extraction or preparation first.
Direct --wallet formats
Same command — python btcrecover.py --wallet <file> --tokenlist tokens.txt — no extraction, no mode number:
| Wallet / file | Note |
|---|---|
| mSIGNA (CoinVault) wallet database | Reads the keychain directly |
| Hive for OS X | bitcoinj-family encrypted wallet — wallet-password route via btcrecover |
| Litecoin / Dogecoin Wallet for Android | bitcoinj encrypted backup |
| Toast Wallet | Wallet passphrase |
| imToken keystore | Modified Ethereum keystore — also hashcat 15600/15700 |
| Electron-Cash · MultiDoge | Electrum-family (BCH) / MultiBit-style .key backup |
Special BTCRecover flags required
These formats need an extra btcrecover flag — the generic command above tests the wrong target:
| Wallet / file | Note |
|---|---|
| Bitcoin Wallet (Android/BlackBerry) · KnC Wallet | Spending PIN or encrypted backup. For the spending PIN add --android-pin — without it btcrecover tests the backup password instead: python btcrecover.py --wallet <backup-file> --android-pin --tokenlist pins.txt |
| Yoroi (Cardano) | Not a direct --wallet input — extract the encrypted master-password value from the wallet data first, then use BTCRecover’s --yoroi-master-password workflow |
Hive Android / iOS / Web is a different case again: not the same wallet-file/password route — btcrecover documents these under seed recovery instead.
Extraction / preparation required
Not a direct --wallet input — prepare the recovery target first:
| Wallet / file | Note |
|---|---|
| Dogechain.info | Separate workflow — wallet.aes.json / Dogechain recovery (extract-dogechain-privkey.py) |
| Bither | Bither SQLite wallet database (format-3; fields such as addresses.encrypt_private_key / password_seed) — not every exported/encrypted backup is the direct target |
| block.io | Account “Secret PIN” — PBKDF2-HMAC-SHA256; check the stored iteration count first (legacy ~2,048 vs newer 100,000+) before estimating speed |
| btc.com (Blocktrail) | Prepare the recovery-sheet wallet data first (passwordEncryptedSecretMnemonic) — the raw PDF is not the --wallet input |
Password managers & encrypted documents
When the wallet password sits behind a second lock, the same tools open it. All modes from the official hashcat example-hashes list:
| File | hashcat mode | Extraction |
|---|---|---|
KeePass 1 (.kdb) / KeePass 2 (.kdbx) | 13400 (AES-KDF, KDBX ≤ 3); 34300/34301 (KDBX 4) | keepass2john — identify the version and KDF first: KDBX 4 may use Argon2 (34300) or AES-KDF (34301) |
| LastPass vault (local cache) | 6800 | local XML/SQLite vault cache via lastpass2hashcat.py — not the CSV account export |
| Bitwarden — PBKDF2-configured vaults | 23400 | bitwarden2john |
| Bitwarden — Argon2id-configured vaults | no generic 23400 route — identify the KDF first | workflow that supports the Argon2id configuration (not the standard 23400 extractor) |
| 1Password | 6600 / 8200 | keychain files |
Password Safe (.psafe3) | 5200 | pwsafe2john |
7-Zip (.7z) | 11600 | 7z2john |
WinZip AES (.zip) | 13600 — PKZIP/ZipCrypto uses 17200/17210/17220/17225/17230 instead; let the extracted hash decide | zip2john |
| RAR3 / RAR5 | 12500 (RAR3-hp) · 23700 (RAR3-p uncompressed) · 23800 (RAR3-p compressed) · 13000 (RAR5) — let rar2john's output decide | rar2john |
| MS Office (2007+) | 9400 / 9500 / 9600 (+ 9700–9820 old) | office2john |
10400–10700, and in some cases 25400 — let pdf2john decide | pdf2john |
The full walkthroughs: password manager recovery and wallet password in an encrypted file.
Encrypted drives & volumes
When the wallet file itself sits on an encrypted drive or in a container — the full method is on the encrypted-file guide:
| Format | Tool / mode | Extraction |
|---|---|---|
| BitLocker | hashcat 22100 | bitlocker2john |
| FileVault 2 (CoreStorage) | hashcat 16700 | fvde2john |
| APFS-encrypted volume (macOS 10.13+) | hashcat 18300 | APFS keybag/volume material |
| TrueCrypt | hashcat 6211–6243 (legacy) / 29311–29343 (current) | truecrypt2john (legacy) / truecrypt2hashcat.py (current) |
| VeraCrypt | hashcat 13711–13783 (legacy VeraCrypt) / 29411–29483 (current) | veracrypt2john (legacy) / veracrypt2hashcat.py (current) |
| LUKS | hashcat 14600 (legacy LUKS v1) / 29511–29543 (LUKS1 by config) / 34100 (LUKS2 Argon2, supported configs) | luks2john (legacy) / luks2hashcat.py (LUKS2) |
| Apple DMG | John the Ripper | dmg2john |
Flags that save your run
btcrecover — test candidates first, then let it save progress and resume:
Resume after a crash (this flag must be the only option): --restore progress.sav. Already have full candidate passwords? Use --passwordlist candidates.txt instead of a token list.
hashcat — wordlist + rules, or a mask when you know the shape:
Hybrids (-a 6 word + mask ending, -a 7 mask + word) cover mixed clues in one run. Preview what your wordlist + rules generate before spending GPU time: hashcat --stdout -a 0 words.txt -r rules/best66.rule | head.
John the Ripper — wordlist + rules, mask, or incremental; cracked passwords land in the potfile:
Re-read a cracked hash anytime: john --show monero.hash.
Sources & references
- 3rdIteration/btcrecover — source & extract-scripts/
- hashcat — example hashes (modes) & tools/
- openwall/john — jumbo build & *2john scripts
Cite this page
APA: Bink, R. (2026). Wallet password recovery — the command cheat sheet. ForgotWalletPassword.com. https://forgotwalletpassword.com/wallet-password-recovery-cheat-sheet
Markdown: [Wallet password recovery — the command cheat sheet.](https://forgotwalletpassword.com/wallet-password-recovery-cheat-sheet)
Keep going — it’s all free
Not sure what you lost or what’s possible?
Take the quick diagnosis for a first verdict — it stops early when the answer is already clear — then work the search checklist. Everything here is informative, runs offline, and is free to use.