Plain Wallet GitHub ↗

A wallet you can read.

A very minimal EVM wallet for Chrome and Firefox. About 1,400 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 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 1,400 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

Build it 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 in the README.

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