NIP-46: Nostr Connect
NIP-46 define assinatura remota sobre relays Nostr. Um cliente conversa com um signer separado, frequentemente chamado de bunker, para que as chaves de assinatura possam ficar fora do app que o usuário está usando ativamente.
Como funciona
- O cliente gera um keypair local usado apenas para a sessão bunker.
- A conexão é estabelecida com uma URI
bunker://ounostrconnect://. - Cliente e signer trocam eventos criptografados kind
24133de request e response por meio de relays. - Depois de conectar, o cliente chama
get_public_keypara descobrir a pubkey real do usuário para quem está assinando.
Métodos de conexão
- bunker:// - conexão iniciada pelo signer
- nostrconnect:// - conexão iniciada pelo cliente via QR code ou deep link
Fluxos nostrconnect:// incluem um shared secret obrigatório para que o cliente possa verificar que a primeira response realmente veio do signer pretendido. Isso evita spoofing simples de conexão.
Operações suportadas
sign_event- assinar um evento arbitrárioget_public_key- recuperar a pubkey do usuário a partir do signernip04_encrypt/decrypt- operações de criptografia NIP-04nip44_encrypt/decrypt- operações de criptografia NIP-44switch_relays- pedir ao signer um conjunto atualizado de relays
Muitas implementações também usam strings de permissão como sign_event:1 ou nip44_encrypt durante a configuração, para que o signer possa aprovar um escopo estreito em vez de acesso total.
Modelo de relay e confiança
NIP-46 tira as chaves privadas do cliente, mas não remove confiança do signer. O signer pode aprovar, negar ou atrasar requests, e vê toda operação que o cliente lhe pede para executar. A escolha de relay também importa porque o protocolo depende de entrega de request e response por relays que ambos os lados conseguem alcançar.
O método switch_relays existe para que o signer possa mover a sessão para um conjunto diferente de relays ao longo do tempo. Clientes que o ignoram funcionarão com menos confiabilidade quando as preferências de relay do signer mudarem.
Fontes primárias:
Mencionado em:
- Newsletter #1: Mudancas notaveis no codigo
- Newsletter #3: Recapitulação de dezembro
- Newsletter #4: Primal Android vira um hub de assinatura completo
- Newsletter #12: NDK Collaborative Events and NIP-46 Timeout
- Newsletter #19: suporte a signer no NipLock
- Newsletter #19: signer Heartwood da Forgesworn
- Newsletter #19: login NIP-46 com Aegis no Flotilla
Veja também: