Technical guide · file locations
Find the file that holds your keys — before you do anything else.
Recovery always starts with the file. If the wallet file still exists on some disk, recovery is a technical problem that can be worked. If it does not exist, no amount of password guessing helps. This page shows exactly where every major wallet stores its data — on Windows, macOS and Linux.
By Robbert Bink · ~5 min read · Published 6 August 2026 · Last reviewed: 15 August 2026
Find the file that holds your keys before you do anything else: wallet.dat for Bitcoin Core, a UTC--*.json keystore for Ethereum, the vault in your browser profile for MetaMask, and app-data folders for Electrum and Coinomi. The exact path per wallet and operating system is below.
Once found, copy the file read-only and work on the copy — see protect your wallet files before touching the original. If the file is gone everywhere, the real exceptions are covered in recovery without the wallet file.
Bitcoin Core (wallet.dat)
The classic Bitcoin wallet stores everything in a single wallet.dat file inside the Bitcoin data directory:
| OS | Default location |
|---|---|
| Windows | C:\Users\<you>\AppData\Roaming\Bitcoin\wallets\wallet.dat (legacy) · C:\Users\<you>\AppData\Local\Bitcoin\wallets\wallet.dat (current default) — older/single-wallet setups keep wallet.dat directly in the data directory |
| macOS | ~/Library/Application Support/Bitcoin/wallets/wallet.dat |
| Linux | ~/.bitcoin/wallets/wallet.dat |
In older versions the file sat directly in the data directory (no wallets subfolder). Note the ~ means your user folder — on macOS, ~/Library is hidden by default (press Cmd+Shift+. in Finder or use Go → Go to Folder). A custom -datadir or -wallet flag moves it — check shortcuts and startup scripts. More in the wallet.dat guide.
Electrum
Electrum stores one wallet file per wallet, usually called default_wallet:
| OS | Default location |
|---|---|
| Windows | C:\Users\<you>\AppData\Roaming\Electrum\wallets |
| macOS | ~/Library/Application Support/Electrum/wallets |
| Linux | ~/.electrum/wallets |
See Electrum wallet guide for the file format and what is recoverable.
Ethereum keystores (geth, MEW, MyCrypto, MetaMask vaults)
Ethereum “keystore” wallets are JSON files named like UTC--2026-01-15T12-34-56.789Z--<address>:
| Where | Default location |
|---|---|
| geth (all OS) | ~/Library/Ethereum/keystore · %LOCALAPPDATA%\Ethereum\keystore (current geth; legacy installs: %APPDATA%\Ethereum\keystore) · ~/.ethereum/keystore — search both Windows locations before concluding none exists |
| MetaMask vault | Extension local storage: chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn → localstorage leveldb files |
| imToken / ETH clones | The same UTC--*.json keystore format if you exported one; the mobile vault itself lives in app storage |
| MyCrypto / MEW export | Wherever you saved the downloaded JSON file |
MetaMask is special: its encrypted vault lives inside the browser extension’s Local Storage (LevelDB), not as a JSON file you can see — so it is not an Ethereum-keystore-JSON case. With the seed phrase, restore the accounts derived from it (imported private-key/JSON accounts need their own backups); without it but with the encrypted vault still in the browser profile, offline password recovery may be possible. For real keystore JSON files, see Ethereum keystore guide.
Other wallets
| Wallet | What to look for |
|---|---|
| Bitcoin Cash / Litecoin / Dogecoin (Core forks) | wallet.dat in the app-specific data folder (e.g. ~/.litecoin, ~/.dogecoin) |
| Armory | An .wallet file in ~/Library/Application Support/Armory or %APPDATA%\Armory |
| Bitcoin Knots | wallet.dat, same layout as Bitcoin Core |
| MultiBit | Classic .key backup files; HD wallets keep .wallet + .wallet.aes in ~/.multibit-hd/<wallet-id> or %APPDATA%\MultiBitHD\<wallet-id> — MultiBit guide |
| Exodus (desktop) | seed.seco in the Exodus data folder — %APPDATA%\Exodus\ (Windows) or ~/Library/Application Support/Exodus/ (macOS) — Exodus guide |
| Monero | The <walletname>.keys file in ~/Monero/wallets/ (macOS/Linux) or Documents\Monero\wallets (Windows); older builds used ~/.bitmonero/wallets/ — Monero guide |
| Blockchain.com (formerly blockchain.info) | Self-custody — the crackable file is the wallet.aes.json export you downloaded yourself: check downloads folders, old email attachments and cloud storage from the era you used the wallet. For some legacy wallets, the encrypted wallet payload can also be retrieved during a login attempt without the correct password, provided you still have the Wallet ID and can satisfy any required email/2FA checks — version-dependent, not guaranteed for the current account flow. The old in-browser export only ran while you were logged in, and Blockchain.com cannot reset the password either (the sign-up email only retrieves your wallet identifier). No file? Only the 12-word recovery phrase replaces the password — recovery without the wallet file · Blockchain.com guide |
| Coinomi | The scrypt vault lives in Android app storage (com.coinomi.wallet) or, on desktop, as .wallet files in the Coinomi data directory (e.g. %localappdata%\Coinomi\Coinomi\wallets) — the realistic source is a device backup or the desktop data folder: get the wallet file off an old phone — Coinomi guide |
| Keplr (Cosmos) | LevelDB vault in the browser extension’s local storage — back up the extension profile; keplr2john.py applies to the legacy Keplr extension format, while current/v2 vaults use a changed format — identify the version before assuming compatibility — master list |
| Cardano (legacy Daedalus) | secret.key from 2017–2019 Daedalus wallets — cardano2john.py extracts it — master list |
| Bisq | bisq.wallet — bisq2hashcat.py, hashcat mode 29800 — master list |
| Stargazer (Stellar) | Encrypted vault file — hashcat mode 25500 — master list |
| Terra Station | Encrypted wallet JSON from the desktop/mobile app — master list |
| Electron-Cash (BCH) | Same layout as Electrum — the wallets folder under ~/.electrum-cash/ (Linux/macOS) or the Electron-Cash folder under %APPDATA% (Windows) — master list |
| MultiDoge (DOGE) | A single multidoge.key file in ~/.multidoge/ (Linux/macOS) or %APPDATA%\MultiDoge\ (Windows) — master list |
| mSIGNA (CoinVault) | Wallet database in the mSIGNA data folder — btcrecover reads the keychain directly — master list |
| Hive (macOS / Android / Web) | bitcoinj-family wallet file in the Hive data folder (macOS: ~/Library/Application Support/Hive/) — master list |
| Bitcoin Wallet (Android/BlackBerry) · KnC · LTC/DOGE Android | Encrypted backup files you exported from the app (names like bitcoin-wallet-backup-…) — the spending PIN is the key — master list |
| Bither | The encrypted wallet / backup file (desktop or Android export) — master list |
| block.io | No local wallet file — the wallet lives server-side; recovery targets the account “Secret PIN” — master list |
| btc.com (Blocktrail) | The PDF backup sheet you saved from the account — the password decrypts it — master list |
| Yoroi (Cardano) | Wallet data in browser-extension storage or the desktop app — extract with btcrecover; for wallets created directly in Yoroi, look for the 15-word recovery phrase first (Yoroi can also restore compatible 24-word Cardano wallets created elsewhere, such as some Daedalus wallets) — master list |
| Toast Wallet | Wallet data in the desktop/mobile app folder — passphrase via btcrecover — master list |
| imToken | Modified Ethereum keystore + identity.json in app storage — usually needs phone extraction: get the file off an old phone — master list |
| BitShares | Wallet database from the BitShares client — extract with bitshares2john.py — master list |
| Tezos | Wallet data / key file — the exact file depends on the client. Important: tezos2john.py is the ICO/fundraiser route (15-word mnemonic, fundraiser email and tz1 address), not a generic extractor for Tezos client key files — master list |
| Ethereum pre-sale (2014) | The presale JSON (or PDF) you saved in 2014 — hashcat mode 16300 — master list |
| Trust Wallet | No wallet file — seed-based, except Trust Wallet SWIFT wallets, which use a passkey tied to your Apple/Google environment instead of a 12-word phrase. The optional cloud backup (iCloud / Google Drive) is an encrypted copy of the phrase with a password you set; if you forgot that password, there is no standard public crack tool for the backup — restoring from the phrase is the real path |
| Paper wallets / BIP38 / brain wallets | No file — the key is the printed text (or a photo/scan of it), or a passphrase you must recall |
Do not recognise your wallet? Use the which wallet file do you have? identifier — it walks you from clues to a shortlist of formats.
Your wallet was on a phone
Many wallet vaults only ever lived in a phone’s app storage — MetaMask mobile, Coinomi, imToken, Keplr, old Android wallets. If the phone still powers on, the vault may still be on it; if it doesn’t, the source is a backup. The full extraction walkthrough — ADB backups, encrypted iTunes/Finder backups, browser-extension vaults and the dead ends — is covered in get your wallet file off an old phone.
The headline in one line: phone app storage is the one place you can’t just browse — but a backup is usually the answer. No vault and no backup: there is nothing to attack.
Coinomi and Trust Wallet — the two most common phone-wallet questions
These two come up constantly, and the answer is different for each:
- Coinomi. The app password locks a scrypt vault — in Android app storage (
com.coinomi.wallet) on phones, or as.walletfiles in the Coinomi data directory on desktop. On Android it is not a file you can browse, so the realistic source is a device backup (ADB or full-device); on desktop, check the Coinomi data folder. Either way the vault is then cracked like any other wallet file. Coinomi guide · get the file off an old phone - Trust Wallet. Traditional wallets are seed-based, so there is no wallet file — the phrase is the real path, and the app password stops mattering once you restore it. Trust Wallet SWIFT wallets are different: they use a passkey tied to your Apple/Google environment instead of a 12-word phrase, so identify the wallet model first. The one exception on the traditional path: the optional cloud backup (iCloud on iOS, Google Drive on Android) stores an encrypted copy of the phrase behind a password you set. If you forgot that password, there is no standard public crack tool for Trust Wallet’s backup format — treat it as a remember-the-password case, not a cracking case. seed phrase passphrase · rebuild the password from memory
How to search beyond the default folders
- Search by file name —
wallet.dat,default_wallet,*.json,UTC--*,*.wallet,*.aes.json. - Search by content — strings like
encrypted_key,ciphertext,BIP38, or the JSON key"crypto"that marks Ethereum keystores. - Check old backups — external drives, NAS shares, phone backups, Time Machine, Windows File History, cloud storage. The file from years ago is still valid.
- Check deleted-but-recoverable space — if the file was deleted, undelete tools or a specialist may still pull it back from the disk, as long as it was not overwritten. Do not keep using the drive.
- Recovered files need verification — copy them somewhere safe first, then verify with the original software before you rely on them.
If you find a file but do not know what kind it is, the how wallet encryption works page shows how to read its format markers — and the glossary explains the terms you will see.
Next steps
- Found a file? Read how wallet encryption works, then judge feasibility on when recovery is possible.
- Nothing found? Run where old passwords hide for non-file trails, and consider whether the wallet was seed-based — then the seed, or the passphrase on top of it, matters more than any file.
- Still unsure? The wallet identifier and first 24 hours plan keep you on track.
Sources & references
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.