Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ Your keys stay on your device. Wallets are encrypted with a password you choose,
- **Multiple networks** — connect to the default Zenon node or point at your own
- **In-browser Proof-of-Work** — generates the required PoW locally when an account lacks plasma; nothing is outsourced
- **Password-encrypted storage** with an auto-locking session (30-minute inactivity timeout)
- **WalletConnect** — pair with dApps over the Reown relay, in both the web app and the extension

## Getting Started

Expand Down Expand Up @@ -62,6 +63,20 @@ On first launch the wallet has no accounts, so you're taken to the **setup** flo

Sending a transaction requires the active wallet to be unlocked — if it's locked, the wallet prompts you for your password and then continues to the action.

## WalletConnect

The wallet can pair with dApps over [WalletConnect](https://walletconnect.com), in both the web app and the extension (via its WalletConnect popup window). Pairing needs a Reown project ID:

1. Get a project ID from [dashboard.reown.com](https://dashboard.reown.com)
2. Copy `.env.example` to `.env` and set `VITE_WALLETCONNECT_PROJECT_ID`
3. Rebuild — without a project ID, WalletConnect is disabled with no relay dependency and the rest of the wallet is unaffected

Portions © 2025 Reown, Inc. All Rights Reserved. `@walletconnect/sign-client` is used under the WalletConnect Community License Agreement (see `LICENSE.md` in the package, or [the walletconnect-monorepo repository](https://github.com/walletconnect/walletconnect-monorepo)).

### Known limitation: macOS native fullscreen

The extension's approval window and its WalletConnect window are both separate popup windows (`chrome.windows.create`). On macOS, when the browser is in native fullscreen (the green traffic-light button, not maximized), Chrome cannot attach or reliably surface a new popup window — this is a platform limitation of Chrome on macOS, not specific to this wallet ([MetaMask has the same issue](https://github.com/MetaMask/metamask-extension/issues/13590)). Exit fullscreen before approving a dApp request or pairing over WalletConnect in the extension.

## Scripts

| Command | Description |
Expand Down
12 changes: 12 additions & 0 deletions approve.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<title>NoM Wallet — Approve</title>
</head>
<body>
<div id="app"></div>
<script type="module" src="/src/approve-main.ts"></script>
</body>
</html>
15 changes: 15 additions & 0 deletions manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,21 @@
"service_worker": "src/background.ts",
"type": "module"
},
"content_scripts": [
{
"matches": ["http://*/*", "https://*/*"],
"js": ["src/inpage.ts"],
"run_at": "document_start",
"all_frames": true,
"world": "MAIN"
},
{
"matches": ["http://*/*", "https://*/*"],
"js": ["src/content-script.ts"],
"run_at": "document_start",
"all_frames": true
}
],
"sandbox": {
"pages": ["pow-sandbox.html"]
},
Expand Down
Loading