NIP-47 define Nostr Wallet Connect, um protocolo que permite a um app Nostr conversar com um serviço remoto de carteira Lightning sem expor as credenciais principais da carteira a todo cliente.

Como funciona

Um serviço de carteira publica um evento replaceable kind 13194 com informações sobre os métodos e modos de criptografia que suporta. Um cliente se conecta usando uma URI nostr+walletconnect:// que contém a pubkey do serviço de carteira, um ou mais relays e um secret dedicado para aquela conexão. Requests são enviados como eventos kind 23194, e responses retornam como eventos kind 23195.

Comandos e notificações

Métodos comuns incluem pay_invoice, pay_keysend, make_invoice, lookup_invoice, list_transactions, get_balance e get_info. Serviços de carteira também podem enviar notificações como payment_received, payment_sent e hold_invoice_accepted.

A spec originalmente acumulou vários métodos opcionais ao longo do tempo, mas uma limpeza recente removeu os métodos de pagamento multi_. Na prática, a interoperabilidade melhora quando clientes se limitam aos comandos anunciados pelo evento de informações da carteira, em vez de assumir um conjunto amplo de métodos.

Casos de uso

  • Zapping - enviar sats para posts, perfis ou criadores de conteúdo
  • Pagamentos - pagar invoices Lightning a partir de qualquer app Nostr
  • Separação de UX da carteira - usar um serviço de carteira em muitos clientes Nostr

Notas de segurança e interoperabilidade

A URI de conexão contém um secret dedicado que o cliente usa para assinatura e criptografia. Isso dá a cada app sua própria identidade de carteira, o que ajuda tanto em revogação quanto em privacidade. Uma carteira pode limitar gastos, desabilitar métodos ou revogar uma conexão sem afetar as demais.

A NIP-44 agora é o modo preferido de criptografia. A spec ainda documenta fallback para NIP-04 em implementações mais antigas, então clientes precisam inspecionar a tag encryption anunciada pela carteira, em vez de assumir que toda carteira já migrou.


Fontes primárias:

Mencionado em:

Veja também: