Nostr Wallet Connect (NWC) es el protocolo NIP-47 para controlar remotamente una cartera Lightning mediante relays Nostr. Los relays transportan mensajes, no los bitcoins; pueden usarlo tanto un nodo propio como un servicio custodial.
La app cliente envía una solicitud; el servicio la verifica y llama a su interfaz de pagos. NWC no determina quién posee las claves de bitcoin. Un nodo propio y una cartera custodial pueden utilizar el mismo protocolo con distintas necesidades de confianza y recuperación. [NWC — NIP-47: Core protocol] [NWC — Project overview]
La URI incluye la clave pública del servicio, un relay y secret: la clave privada de la conexión del cliente. No es la semilla de la cartera, pero permite firmar solicitudes autorizadas. Su QR o copia puede dar acceso a otra app. Claves distintas por conexión reducen su vinculación. [NWC — NIP-47: Core protocol]
El evento público info anuncia capacidades; get_info devuelve métodos disponibles para esa conexión. El núcleo incluye pay_invoice, make_invoice, lookup_invoice, get_balance y get_info. Historial, keysend y notificaciones son extensiones opcionales. Verifique compatibilidad y permiso por separado: el nombre de un método no equivale a consentimiento general de pago. [NWC — NIP-47: Core protocol] [NWC — Optional specifications] [NWC-02 — Notifications]
Info usa kind 13194; solicitudes, 23194; respuestas, 23195. La etiqueta p identifica a la contraparte y e en la respuesta referencia la solicitud. El cliente comprueba firma, clave esperada del servicio, relación con la solicitud y result_type. Recibir un evento del relay no demuestra ejecución. [NWC — NIP-47: Core protocol]
Los importes y comisiones de NIP-47 están en msat; 1000 msat equivalen a un satoshi. Confundir unidades multiplica o divide el importe por mil. pay_invoice exitoso devuelve preimage; un fallo indica error. Crear una factura con make_invoice no significa pagarla; lookup_invoice permite consultar su estado. [NWC — NIP-47: Core protocol]
La negociación actual prefiere nip44_v2; nip04 permanece por compatibilidad y la ausencia de encryption implica el modo antiguo. NIP-44 por sí solo no ofrece forward secrecy. El relay ve tipos, etiquetas, claves de conexión y tiempos. No debe usarse la clave principal de identidad del usuario para una conexión NWC. [NWC — NIP-47: Core protocol] [Nostr — NIP-44: Encrypted payloads]
Las solicitudes y respuestas NWC son eventos efímeros. Un relay inaccesible o servicio desconectado puede perder mensajes; también puede perderse solo la respuesta de un pago completado. Tras un timeout, consulte primero lookup_invoice o la cartera. El silencio no asegura el fallo ni una nueva solicitud es una repetición automáticamente segura. [NWC — NIP-47: Core protocol]
El servicio puede limitar métodos, presupuesto o vigencia y revocar la clave de conexión. Debe imponer esos límites el servicio, no solo la pantalla del cliente. Borrar la conexión en una app puede mantener el permiso en la cartera. Revocar bloquea usos futuros, pero no revierte pagos completados. [NWC — NIP-47: Core protocol]
Para obtener la imagen más completa, lee esta entrada junto con Nostr, Lightning Network, BOLT 11, Cartera, Clave privada, Satoshi. También enlazan con esta entrada Nostr, BOLT 11.