NIP-07

Especificação do protocolo Nostr voltada para navegação web e aplicações web.
NIP-07

Capacidade window.nostr para navegadores web

draft optional

O objeto window.nostr pode ser disponibilizado por navegadores web ou extensões, e sites ou aplicações web podem fazer uso dele após verificar sua disponibilidade.

Esse objeto deve definir os seguintes métodos:

async window.nostr.getPublicKey(): string
// retorna uma chave pública em formato hexadecimal

async window.nostr.signEvent(event: {
  created_at: number,
  kind: number,
  tags: string[][],
  content: string
}): Event
// recebe um objeto de evento, adiciona `id`, `pubkey` e `sig` e o retorna

Além desses dois métodos básicos acima, as seguintes funções também podem ser implementadas de forma opcional:

async window.nostr.nip04.encrypt(pubkey, plaintext): string
// retorna ciphertext e iv conforme especificado no nip-04 (obsoleto)

async window.nostr.nip04.decrypt(pubkey, ciphertext): string
// recebe ciphertext e iv conforme especificado no nip-04 (obsoleto)

async window.nostr.nip44.encrypt(pubkey, plaintext): string
// retorna ciphertext conforme especificado no nip-44

async window.nostr.nip44.decrypt(pubkey, ciphertext): string
// recebe ciphertext conforme especificado no nip-44

Recomendação para autores de extensões

Para garantir que o window.nostr esteja disponível para clientes Nostr no momento do carregamento da página, autores que criam extensões para Chromium e Firefox devem carregar seus scripts especificando:

"run_at": "document_end"

no manifesto da extensão.


Implementação

Veja: https://github.com/aljazceru/awesome-nostr#nip-07-browser-extensions


No comments yet.