163 / 691NWC

Nostr Wallet Connect

应用向 Lightning 钱包发出的授权请求

Nostr Wallet Connect 通过加密请求连接应用与钱包;访问范围由钱包服务决定。

Nostr Wallet Connect(NWC)是通过 Nostr 中继远程操作 Lightning 钱包的 NIP-47 协议。中继传输消息,而非比特币本身;个人节点与托管服务都可以使用它。

客户端应用发送请求,钱包服务验证后调用支付接口。NWC 本身不决定谁持有比特币密钥。因此,个人节点与托管钱包可以使用同一协议,但信任要求和恢复方式不同。 [NWC — NIP-47: Core protocol] [NWC — Project overview]

连接 URI 包含服务公钥、中继和 secret,即客户端连接的私钥。它不是钱包 seed,却能签署获准请求。QR 码或副本可能把权限交给其他应用。每个连接使用独立密钥可减少相互关联。 [NWC — NIP-47: Core protocol]

公开的 info 事件公布服务能力;get_info 返回特定连接可用的方法。核心包括 pay_invoice、make_invoice、lookup_invoice、get_balance 和 get_info。历史记录、keysend 和通知属于可选扩展。应分别检查支持情况和权限:出现方法名不代表一般支付授权。 [NWC — NIP-47: Core protocol] [NWC — Optional specifications] [NWC-02 — Notifications]

Info 使用 kind 13194,请求使用 23194,响应使用 23195。p 标签指明对方,响应的 e 标签关联请求。客户端核对签名、预期服务公钥、请求关联和 result_type。仅从中继收到事件不能证明命令已执行。 [NWC — NIP-47: Core protocol]

NIP-47 的金额和费用使用 msat;1000 msat 等于一个 satoshi。混淆单位会造成千倍差异。成功的 pay_invoice 返回 preimage,失败响应提供 error。通过 make_invoice 创建发票不等于已付款,可用 lookup_invoice 查询状态。 [NWC — NIP-47: Core protocol]

目前协商优先使用 nip44_v2,旧 nip04 用于兼容;缺少 encryption 标签意味着旧模式。NIP-44 本身不提供 forward secrecy。中继能看到事件类型、标签、连接公钥及时间。NWC 连接不应使用用户的主要身份密钥。 [NWC — NIP-47: Core protocol] [Nostr — NIP-44: Encrypted payloads]

NWC 请求与响应使用临时事件。中继不可用或服务离线可能丢失消息,也可能只是已完成支付的响应丢失。发生 timeout 后,应先通过 lookup_invoice 或钱包检查状态。沉默不代表必然失败,重新请求也不是自动安全的重试。 [NWC — NIP-47: Core protocol]

服务可以限制方法、预算或有效期,并撤销连接密钥。这些限制必须在服务端执行,而不只是显示在客户端界面。应用里删除连接可能仍保留钱包端权限。撤销阻止后续使用,却不能逆转已完成的支付。 [NWC — NIP-47: Core protocol]

要获得更完整的理解,请将本词条与以下词条结合阅读: Nostr, Lightning Network, BOLT 11, 钱包, 私钥, Satoshi. 反向关联还来自: Nostr, BOLT 11.

DOC · 001NWC — NIP-47: Core protocol规范DOC · 002NWC — Project overview一手来源DOC · 003NWC — Optional specifications规范DOC · 004Nostr — NIP-44: Encrypted payloads规范DOC · 005NWC-02 — Notifications规范
来源优先 · 非投资建议