Nostr 钱包连接 (NWC) 说明
NWC 连接你的 Nostr 客户端和 Lightning 钱包。它让你的信息流可以进行闪电打赏,而不需要内置钱包。了解配对的工作原理。
在 Nostr 钱包连接出现之前,每个 Nostr 客户端都必须建立自己的钱包集成,或者完全不支持打赏功能。这导致了两个糟糕的结果:支持打赏的客户端被迫运行一个钱包,而不想运行钱包的客户端则无法支持打赏。
NWC 通过将钱包从客户端中分离出来解决了这个问题。钱包是自己的应用;客户端通过 Nostr 本身发送支出请求;每个人都赢了。
如果你在任何没有内置钱包的客户端上使用打赏,你都在使用 NWC,无论你是否这样想。本指南使机制明确化,以便你理解连接字符串做什么、它的限制是什么,以及如何撤销它。
简而言之。 NWC 是一个协议 (NIP-47),用于 Nostr 客户端请求 Lightning 钱包支付发票。配对是一个看起来像
nostr+walletconnect://...的字符串。该字符串授予花费权限,金额可达可配置的预算。任何钱包都可以通过 NWC 与任何支持 NWC 的客户端通信,所以配对在整个生态系统中都能工作。
准备好后, 领取你的 @nostr.blog 地址
NWC 之前的问题
在 NWC 出现之前,想要支持打赏的 Nostr 客户端有三个不好的选择。
选项 1:将钱包内置到客户端中。 管理 Lightning 通道、处理托管、成为钱包公司。大多数客户端无法承担这样的工程成本。
选项 2:要求用户提供他们的 nsec 和钱包凭证。 在客户端侧签署事件,直接向钱包 API 发送发票支付请求。这意味着客户端会看到钱包的 API 密钥,这是一个安全噩梦。
选项 3:不支持打赏。 一些客户端选择了这条路,这使它们不那么有用。
NWC 通过使用 Nostr 本身作为信令通道来解耦钱包和客户端。客户端永远看不到钱包凭证。钱包从不需要了解任何 Nostr 特定的东西,除了如何接收请求。
协议如何工作
NWC 在 NIP-47 中定义。流程:
- 钱包生成连接字符串。 包含 Nostr relay URL、钱包监听的公钥和用于加密的共享密钥。
- 用户将字符串粘贴到客户端中。 或扫描二维码。无论哪种方式,客户端现在知道在哪里发送请求。
- 客户端通过 Nostr 发送加密的支出请求。 "支付这张 1000 聪的发票"进入一个加密事件,发送到指定 relay 上钱包的监听公钥。
- 钱包接收请求并支付。 如果金额在连接的预算范围内,钱包立即支付发票。
- 钱包回复结果。 加密 Nostr 事件返回给客户端:支付成功或失败,这是证明。
整个过程在一秒钟内完成。客户端永远不直接处理 Lightning;它只是与 Nostr 通信。钱包从不需要理解 Nostr 社交功能;它只是监听支出请求。
连接字符串包含的内容
典型的 NWC 字符串:
nostr+walletconnect://abc123def456...?relay=wss://relay.example.com&secret=xyz789...
三部分。
一个公钥。 钱包在 Nostr 上的监听身份。客户端向这个公钥发送请求。
一个 relay。 钱包正在监听的地方。客户端和钱包都连接到这个 relay 来交换消息。
一个密钥。 用于加密客户端和钱包之间的消息,所以 relay 只看到密文。
这三个值合在一起授予客户端向钱包发送支出命令的权限。relay 是邮箱;公钥是地址;密钥是锁。
预算和权限
每个 NWC 连接都有由钱包在创建连接时设置的限额。
- 每次支付的最大金额。 通常是 10,000 到 100,000 聪,取决于你的设置。花费更多需要重新批准。
- 每天/周/月的最大金额。 按时间表补充的滚动预算。
- 到期日期。 一些钱包在一段时间后自动过期连接;其他连接保持打开直到被撤销。
- 允许的方法。 一些钱包允许你仅授予"支付发票",拒绝"查询余额"或"列出交易"。
预算意味着即使连接字符串泄露,损害也是有限的。攻击者无法排空整个钱包;他们只能花费到预算限额,之后钱包会拒绝进一步的请求,直到你增加限额或生成新的连接。
逐步设置 NWC
将钱包与 Nostr 客户端配对的典型用户的具体流程。
- 打开你的 Lightning 钱包。 Wallet of Satoshi、Phoenix、Alby Hub、Zeus 或任何支持 NWC 的钱包。
- 找到 NWC 设置。 在设置菜单中寻找"连接"、"Nostr 钱包连接"或"应用"。每个钱包的位置略有不同。
- 创建新连接。 给它起个名字,以便你记住它是用于哪个应用的。设置预算。
- 复制生成的 NWC 字符串。 或获取二维码。
- 打开你的 Nostr 客户端。 进入设置,找到"Lightning 钱包"或"打赏设置"。
- 粘贴 NWC 字符串或扫描二维码。 客户端测试连接。
- 成功。 打赏按钮亮起;你的下一个打赏通过配对的钱包进行。
如果配对后客户端显示"连接失败",最常见的原因是 relay 不匹配(NWC 字符串中的 relay 是客户端无法到达的)或防火墙阻止 WebSocket 连接。
为什么这比内置钱包更好
NWC 相比内置钱包的三个真实优势。
可移植性。 你可以切换 Nostr 客户端而不需要切换钱包。你的余额、历史和通道保持不变;新客户端只需通过新 NWC 连接与同一钱包配对。
专业化。 钱包开发者专注于 Lightning 基础设施;客户端开发者专注于社交 UX。每一方都在自己的领域变得更好,互操作性跨越组合工作。
安全边界。 客户端永远没有钱包凭证。有缺陷的客户端最多只能发送错误的发票;它无法排空钱包或导出种子短语。
唯一内置明显更好的情况是对于想要最大程度无摩擦入门的用户。带有捆绑钱包的客户端让用户比配对外部钱包快一步开始打赏。这是为什么 nostr.blog 注册默认包含一个钱包,用户以后如果愿意可以仍然通过 NWC 配对外部钱包。
撤销 NWC 连接
如果你丢失设备、停止使用客户端或想要轮换凭证,请从钱包端撤销连接。
- 打开钱包。
- 在设置列表中找到连接。
- 点击撤销或删除。
- 连接字符串不再工作;任何持有它的客户端在下一个请求时都会获得"未授权"错误。
这是即时的。与你可能泄露到 GitHub repo 的 API 密钥不同,NWC 连接可以在数秒内被杀死,没有持久会话存在。这是一个有意义的安全属性。
常见 NWC 问题
"连接超时"。 NWC 字符串中的 relay 从你的网络无法到达,或钱包离线。检查钱包应用是否打开并已连接;一些钱包需要应用处于活动状态才能响应。
"支付失败"尽管发票有效。 钱包的通道可能缺乏流动性来路由支付。这是 Lightning 层问题,不是 NWC 特定的。尝试不同的金额或不同的时间。
"权限被拒绝"。 连接的预算已用尽、连接已过期或请求类型不在允许的方法中。检查钱包的连接设置。
"客户端无法检测钱包"。 粘贴后,客户端挂起。关闭并重新打开客户端;一些客户端缓存连接状态,仅在启动时重新检查。
NWC 的发展方向
NIP-47 还不是最终版本。2026 年的活跃工作涵盖:
- 更丰富的权限。 比"可在一段时间内花费最多 X"更细粒度,带有每个接收者或每个金额的规则。
- 多钱包路由。 一个配对了多个钱包的客户端根据余额、费用或路由为每次支付选择最佳钱包。
- 更好的错误报告。 标准化的错误代码,以便客户端在支付失败时显示有用的消息。
- 离线钱包支持。 当前 NWC 假设两方都在线;草案允许排队请求在钱包重新连接时结算。
该协议在 2026 年已足够稳定用于日常使用,并将继续演进。今天配对一个钱包是一分钟的操作;当前设计中没有任何东西会在以后破裂。
常见问题
NWC 和连接钱包是一样的吗?
NWC 安全吗?
一个钱包可以通过 NWC 连接到多个客户端吗?
NWC 和 LNURL 有什么区别?
我需要 NWC 才能在 Nostr 上使用打赏吗?
继续阅读
Nostr 上的 zap 是什么?公开可见的比特币小费
Zap 是一键式比特币闪电网络小费,显示在 Nostr 信息流中。了解它们是什么、收据流程如何工作,以及如何发送或接收 zap。
阅读约 11 分钟钱包与 Lightning如何在 Nostr 上发送 zap:分步指南
一旦钱包有资金,发送第一个 zap 只需约两分钟。以下是设置、实际流程以及 zap 未到账时的处理方法。
阅读约 9 分钟钱包与 Lightning为 Nostr 用户讲解闪电网络
使小额打赏在经济上可行的比特币层。闪电网络如何工作、为什么 Nostr 用它来发送 zap,以及你需要了解的发送和接收聪的信息。
阅读约 13 分钟