NIP-07: `window.nostr` capability for web browsers
window.nostr capability for web browsers
Section titled âwindow.nostr capability for web browsersâdraft optional
The window.nostr object may be made available by web browsers or extensions and websites or web-apps may make use of it after checking its availability.
That object must define the following methods:
async window.nostr.getPublicKey(): string // returns a public key as hexasync window.nostr.signEvent(event: { created_at: number, kind: number, tags: string[][], content: string }): Event // takes an event object, adds `id`, `pubkey` and `sig` and returns itAside from these two basic above, the following functions can also be implemented optionally:
async window.nostr.nip04.encrypt(pubkey, plaintext): string // returns ciphertext and iv as specified in nip-04 (deprecated)async window.nostr.nip04.decrypt(pubkey, ciphertext): string // takes ciphertext and iv as specified in nip-04 (deprecated)async window.nostr.nip44.encrypt(pubkey, plaintext): string // returns ciphertext as specified in nip-44async window.nostr.nip44.decrypt(pubkey, ciphertext): string // takes ciphertext as specified in nip-44Recommendation to Extension Authors
Section titled âRecommendation to Extension AuthorsâTo make sure that the window.nostr is available to nostr clients on page load, the authors who create Chromium and Firefox extensions should load their scripts by specifying "run_at": "document_end" in the extensionâs manifest.
Implementation
Section titled âImplementationâSee https://github.com/aljazceru/awesome-nostr#nip-07-browser-extensions.