MetaMask · Encrypted vault
Recovering a MetaMask password
If you remember something about the password you used to unlock the extension and you still have the browser profile, there is a case. If you remember nothing and the vault is recent, almost certainly not. This page explains why, with the numbers.
Two cases that get confused
MetaMask has two different secrets, and it matters which one you lost. The password unlocks the extension in that browser and nowhere else. The twelve-word recovery phrase is the wallet itself, and works anywhere. If you still have the phrase you need nobody: reinstall the extension and restore it. This page is about the other case: you have the browser profile and you have forgotten the password.
Where the file lives
The vault is an encrypted JSON blob kept in the extension’s local storage, inside the browser profile. The usual paths, for MetaMask’s extension id in Chrome:
- Windows
%LOCALAPPDATA%\Google\Chrome\User Data\Default\Local Extension Settings\nkbihfbeogaeaoehlefnkodbefgpgknn- macOS
~/Library/Application Support/Google/Chrome/Default/Local Extension Settings/nkbihfbeogaeaoehlefnkodbefgpgknn- Linux
~/.config/google-chrome/Default/Local Extension Settings/nkbihfbeogaeaoehlefnkodbefgpgknn- What to look for
.logand.ldbfiles. Inside, a string with the fieldsdata,ivandsalt: that is the vault.
What protects your password
MetaMask derives the encryption key with PBKDF2-HMAC-SHA-256. The iteration count is the figure that decides your case, and it changed: older vaults used 10,000 and those created from 2023 on use 600,000. Sixty times slower per guess.
| Vault | Derivation | Guesses per second, order of magnitude |
|---|---|---|
| Before 2023 | PBKDF2, 10,000 iterations | 10⁵ – 10⁶ on GPU |
| From 2023 on | PBKDF2, 600,000 iterations | 10³ – 10⁴ on GPU |
If you open the vault in a text editor and see a keyMetadata field with an iteration count, tell me: that gives me the exact cost per guess, which is half the diagnosis. It is public data and not a secret.
When there is a way out
- You remember the password in pieces: a stem, a pattern, a suffix, the rough length.
- It was a variant of another password of yours from the same period.
- You know which rules you applied: initial capital, digits at the end,
a→@-style substitutions. - The vault is old, with 10,000 iterations, which multiplies by sixty the candidates that fit in the same time.
- You can name three or four specific candidates and just want to know which it was.
When there is not
- A password manager generated it and you remember nothing about it. Twelve random characters are 3.2 · 10²¹ combinations: that fits on no timescale, not even with the old vault.
- You have lost the browser profile and have no copy of the vault. With no file there is nothing to decrypt, and the password alone is worth nothing.
- You reinstalled the extension over the same profile and the vault was overwritten.
- You cannot prove the wallet is yours.
What I need for the study
- If the vault has
keyMetadata, the iteration count shown there. - Roughly when you created the wallet, and in which browser and system.
- Everything you remember about the password, described in words, without writing the password out.
- How you could prove the wallet is yours: an address with movements you recognise, the purchase record, emails from the application.
If you want to understand the underlying maths before writing to me, the article why some wallet passwords are unrecoverable explains where these numbers come from.