- NIP-46 remote signer in the page (bunker:// and nostrconnect:// pairing) - Chrome extension (NIP-07) with per-site permission prompts, unlocked by the site via externally_connectable; downloadable from the page - Passkey (WebAuthn PRF) encryption of the Drive key file - NIP-49 backups: download or save to Drive; reveal nsec - Fix: oldest key file wins when two devices sign up at once - Fix: never overwrite an existing kind-0 because a relay was slow - Fix: EOSE tracking; relays reconnect with backoff; verify event signatures - One-click re-sign-in (consent only the first time) - Vendored, pinned nostr-tools; CSP; no third-party scripts but Google's Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
28 lines
1.2 KiB
JSON
28 lines
1.2 KiB
JSON
{
|
|
"manifest_version": 3,
|
|
"name": "Goostr signer",
|
|
"version": "0.1.0",
|
|
"description": "Use your Google-backed Goostr nostr identity on any nostr website (NIP-07).",
|
|
"key": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnRZ2LEEG8oBnIUJ6Xg/Dq1lLjVFCHrsM7NQy1Oo9XFibfg/CIsKkAlViNj0EAA2rxdJfFeUDMkLQ3MqbXT6/ST0u1q+sAYDVKgv2RZf0OeZK0C9zlP8Bx72q+odk/6Ut/aL9PGGKRrsbnsSIvMc+IkOt7xh8kKi7yZAwxu2e6d7Ng1CLIVRstz3aImezeWlke/odkUpe9L29eWC80U/NovnN6e41JFP3Dx60KtSaTM+T1atQ74nvpX/IzYuTIEa3fFRBKZsYpflz0eAmrDKNWb46KI1dB7NSfHtiXAXp2pLmITeQW0AcqYBpcG6Fq/msueAURMV5ZIL65Hr6cCsy2wIDAQAB",
|
|
"minimum_chrome_version": "111",
|
|
"permissions": ["storage"],
|
|
"background": { "service_worker": "background.js", "type": "module" },
|
|
"action": { "default_title": "Goostr signer", "default_popup": "popup.html" },
|
|
"content_scripts": [
|
|
{
|
|
"matches": ["https://*/*", "http://localhost/*", "http://127.0.0.1/*"],
|
|
"js": ["content.js"],
|
|
"run_at": "document_start"
|
|
},
|
|
{
|
|
"matches": ["https://*/*", "http://localhost/*", "http://127.0.0.1/*"],
|
|
"js": ["provider.js"],
|
|
"run_at": "document_start",
|
|
"world": "MAIN"
|
|
}
|
|
],
|
|
"externally_connectable": {
|
|
"matches": ["http://localhost/*", "http://127.0.0.1/*"]
|
|
}
|
|
}
|