Plain Wallet GitHub ↗

A wallet you can read.

A very minimal EVM wallet for Chrome, Firefox, Safari, Android, iPhone and Mac. About 2,850 lines of TypeScript — small enough to read in an evening, or have your agent read in a minute.

  • 3 runtime deps
  • no servers
  • no analytics
  • MIT
Plain Wallet popup: network and account selectors above a list of token balances, with Tokens and Send buttons.

You see what you sign.

Every signature needs a click in the wallet's own window. The transaction is fully prepared first, and exactly that is signed.

Install

Don't trust it — check it. That's the point of keeping it small.

For Chrome Brave, Edge too

Install it from the Chrome Web Store, then pin it from the puzzle-piece menu so it stays in the toolbar. It updates automatically.

For Android Android 11+

A browser with the wallet built in. Type a site and it gets Plain Wallet, with the same approvals as the extension. Star the sites you use to keep them on top of the wallet, and unlock with your fingerprint if you like.

  • Plain Wallet on Android: the blue wallet band over the home screen, favorite dapps on top, then network, account and token balances.
  • The Send form on Base: asset, recipient address and amount, then Review.
  • Settings: export and remove accounts, connected sites with Disconnect, and fingerprint unlock turned on.

APKs from GitHub releases are signed with this certificate (SHA-256):1F:EC:2B:63:39:34:74:21:B0:C5:64:AB:19:EE:66:34:39:16:F7:FE:B0:81:62:C3:5F:C3:5C:9F:B5:9F:CB:83

For Mac and Safari macOS 14+ · in App Store review

One app, two ways to use it: the wallet in a window of its own, and the Plain Wallet extension for Safari, sharing the same wallet. After installing, open Safari → Settings → Extensions, turn on Plain Wallet and allow it on websites; sites then get it as their wallet, with the same approvals as the Chrome extension. It locks when your Mac sleeps or locks its screen.

Plain Wallet on a Mac: a window with the network and account selectors above token balances, with Tokens and Send buttons.

For iPhone iOS 18+ · in App Store review

Like the Android app: a browser with the wallet built in. Type a site and it gets Plain Wallet; star the sites you use, and unlock with Face ID or Touch ID if you like.

For Firefox LibreWolf too · add-on in review

Plain Wallet is waiting for review on Firefox Add-ons. Until it's listed, build it yourself, then load it temporarily from about:debugging, or in LibreWolf or Firefox Developer Edition/Nightly turn off xpinstall.signatures.required and open the zip renamed to .xpi.

git clone https://github.com/backmeupplz/plainwallet
cd plainwallet
npm ci && npx wxt zip -b firefox --mv3   # → .output/plainwallet-<version>-firefox.zip

For AI agents review first

Paste this into Claude Code, Codex, Cursor or any agent that can run a shell.

Install the Plain Wallet browser extension for me from https://github.com/backmeupplz/plainwallet — but review the code before you install or build anything.

1. Clone the repo. Don't run npm install yet: dependencies have install scripts.
2. Read all of the source: entrypoints/, lib/, wxt.config.ts, package.json and package-lock.json. It's about 2,850 lines of TypeScript.
3. Look for anything that could leak seed phrases or private keys, send data anywhere other than the user's chosen RPC, weaken the vault encryption, or sign without an explicit approval. Check the dependencies for anything unexpected.
4. Report what you found, with file and line references. If anything is suspicious, stop and ask me.
5. If it's clean: npm ci && npm test && npm run build
6. Tell me how to load it: in Chrome, chrome://extensions → Developer mode → Load unpacked → .output/chrome-mv3. For Firefox, build with npx wxt zip -b firefox --mv3 and follow the README.

For humans

Or build the extension from source for Chrome, Brave, Edge and other Chromium browsers, or Firefox.

  1. Clone and build:
    git clone https://github.com/backmeupplz/plainwallet
    cd plainwallet
    npm ci && npm run build
  2. Open chrome://extensions, turn on Developer mode, click Load unpacked and pick .output/chrome-mv3.
  3. Firefox / LibreWolf: npx wxt zip -b firefox --mv3, then load it as described above.

Not audited. Don't keep funds in it that you can't afford to lose.

Support

Email questions to plainwallet@borodutch.com, or put bug reports and feature requests on the GitHub issue tracker; the developer answers both. Never post your password, seed phrase or private key there, or anywhere else.

Forgot your password?

It can't be recovered: the wallet is encrypted with it on your device and nobody else has a copy. Reset the wallet from the unlock screen, then import your seed phrase or private key again and choose a new password.

Lost your seed phrase?

While the wallet still unlocks, export it in Settings with your password and write it down. Without it and the password, nobody can restore the wallet, including us.