# mavi wallet — browser extension (real keys) Encrypted vault lives **inside the extension** (not only the portal). | Feature | Status | |---------|--------| | Create 24-word wallet + 6-blank confirm | Yes | | Import 12/24 phrase | Yes | | Password lock / unlock (session) | Yes | | Address + copy + local balance | Yes | | Keys leave device | Never (encrypted at rest) | ## Load unpacked 1. Build JS: `bun run --cwd apps/mavi-extension build` 2. Load folder `apps/mavi-extension` (not only `dist/`): | Browser | Page | |---------|------| | Chrome | `chrome://extensions` → Developer mode → Load unpacked | | Brave | `brave://extensions` | | Edge | `edge://extensions` | | Opera | Extensions → Load unpacked | | Firefox | `about:debugging` → Load Temporary Add-on → `manifest.json` | ## Pack zip ```sh bun run ext:pack # → apps/mavi-extension/dist-pack/mavi-extension.zip ``` ## Notes - Vault storage: `chrome.storage.local` (encrypted). - Unlocked session: `chrome.storage.session` (cleared when browser session ends). - Balance probes local anvil `http://127.0.0.1:8545` when running. - Portal and extension vaults are **separate** (different storage). Import the same phrase to both if you want the same address. Product name is always **mavi** (lowercase).