nostr signer and key store browser extension
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗
Diogel Porwr is a browser extension that injects a NIP-07-compatible window.nostr provider into web pages,
routes requests through a background script, enforces per-origin approval rules, signs with the Nostr identity each
site connected with, stored inside an encrypted local vault, and provides a Vue/Pinia UI for account, vault, and settings
Key Features:
A site signs as the account that was active when it first connected, even after you select another account in Porwr. A site caches the key it was given at sign-in, so following the active account would change who it thinks you are without telling it.
When a site is connected as an account that isn't your active one, Porwr says so:
Moving a site disconnects it, removing its standing permissions, and connects it as the active account. Sign out of the site and sign in again so it picks up the new key. Disconnecting the site in Connected Sites and then signing in again does the same.
Nostr clients zap through Porwr the same way they do through any browser signer. The client builds the zap and Porwr signs and pays it, each only after you approve:
window.nostr.getRelays(). Porwr answers with the relay
list (kind 10002) published by the account the site is connected as.window.nostr.signEvent(). The
approval shows the amount, the recipient, the zapped event and any comment. A zap request can be
remembered for at most 8 hours.window.webln.sendPayment(). Porwr pays through your active wallet connection (NIP-47). The
site must have been allowed WebLN access once with window.webln.enable(), and every payment
asks for approval.Porwr never builds zap requests or fetches invoices itself. If another wallet extension already
provides window.webln, Porwr leaves it in place and offers its own as window.diogelWebln. Of
the WebLN methods, Porwr supports enable, getInfo and sendPayment. The others
(sendPaymentAsync, keysend, makeInvoice, signMessage, verifyMessage, lnurl) reject
with an UnsupportedMethodError, so a client can fall back.
The project has been bootstrapped with Quasar Framework. Learn More
See DEVELOPING.md for the build and reload loop, the Node version to use, and why
quasar dev -m bex does not currently give you a working panel.
The generated icons are committed (src-bex/icons/, public/icons/) and referenced by
src-bex/manifest.json, so nothing needs to generate them to build or run the extension.
Regenerate only when the source artwork changes:
nvm use
npx --yes @quasar/icongenie generate -m bex -i public/images/light/diogel.png
IconGenie is deliberately not a dependency. It was the root of 25 of 39 audit advisories, including the only critical one, for a tool last needed in May (threenine/diogel#204).
Detailed instructions for setting up GitHub Secrets and publishing to the Chrome Web Store can be found in DEPLOYMENT.md.
To install a browser extension from the GitHub repository, follow these steps:
Download the extension code Go to the ereleases page , select the latest release, and expand the "Assets" section. Select "Download ZIP" to get the source files.
Extract the ZIP file Unzip the downloaded file to a folder on your computer. Make sure the folder contains a manifest.json file, which is required for Chrome extensions.
Enable Developer Mode in Chrome Open Chrome and go to chrome://extensions. Toggle on "Developer mode" in the top right corner.
Load the extension Click "Load unpacked", then navigate to the folder where you extracted the files. Select it and click "Open".
The extension will now appear in your extensions list and be active.