Cashu 的转账、备份和赎回,本质上是在跟"铸造厂"(Mint)打交道。你手里的余额是一串只有你自己知道的密钥,能不能拿回钱,取决于两件事:你有没有备份好种子词,以及你用的铸造厂是否还在正常运作。
下面按你实际要做的事来讲。
转账:怎么把 Cashu 发出去
Cashu 转账不是链上交易,也不是 Lightning 转账。你发给对方的是一串 token,对方拿着这串东西去铸造厂兑换,才算真正收到钱。
在大多数 Cashu 钱包(比如 Cashu.me 这类 PWA 或 App)里,发送流程基本一致:
选择金额,生成 token。
复制 token 字符串或展示二维码,发给对方。
对方在钱包里选择"接收",粘贴 token 或扫码。
这里有一个关键区别:你点击"发送"的那一刻,铸造厂并不会自动把 token 从你的余额转到对方名下。实际上,你的钱包会先向你选中的铸造厂发起一个"换币"(swap)操作,把你要发的金额拆分出来,生成新的盲签名 token 给你,同时把旧的 proofs 标记为已花费。你拿到的那串 token 字符串,就是拆分出来的新 proof 的编码形式。
所以转账能不能成功,取决于对方是否在同一个铸造厂接收。如果对方钱包里没有添加你发送时所用的铸造厂,他需要先添加那个 Mint 才能兑换。钱包一般会从 token 里解析出铸造厂地址,如果对方钱包不支持这个 Mint,会直接报错。
如果你把 token 发给了一个不打算立刻兑换的人,token 本身不会过期,但铸造厂可能在未来某个时间停用旧的 keyset。一旦 keyset 被停用,旧的 proof 可能无法直接兑换,需要铸造厂提供迁移或赎回通道。
如果你只是想转给另一个自己控制的钱包,更省事的做法是把种子词导入新钱包,让新钱包直接从铸造厂恢复余额,不需要生成 token 再收一遍。
备份:种子词是唯一真正需要保管的东西
Cashu 钱包的备份不是导出余额截图,也不是保存 token 字符串。真正需要备份的是 12 个(或 24 个)单词的种子词。
Cashu 协议从 NUT-13 开始支持确定性派生:钱包用种子词作为根密钥,按照一个递增的计数器,为每一笔新铸造的 token 推导出对应的 secret 和盲化因子。这意味着,只要你有种子词,并且知道用了哪些铸造厂,理论上可以把之前所有铸造出来的 token 重新推导出来,然后向铸造厂查询哪些还没花,恢复余额。
恢复的条件:
铸造厂必须仍然在线,并且仍然保留着对应的 keyset 来处理恢复请求。
恢复过程是在铸造厂的 /restore 接口上批量扫描,可能需要几分钟,取决于你之前用过的 keyset 数量和交易次数。
恢复只对种子词启用之后新铸造的 token 有效。如果你在钱包启用种子词备份之前就已经持有一些 token,那些旧 token 是用随机 secret 生成的,种子词恢复不出来,除非你在启用备份后主动做一次"自己给自己转账"把全部余额换成新格式。
不要在多个钱包里同时用同一个种子词。 NUT-13 的派生依赖计数器,两个钱包各自维护自己的计数器,同时使用会导致推导出的 secret 冲突,可能出现"token 已被花费"或余额不一致的问题。如果你要在新设备恢复,恢复完成后就不要再在旧设备上用同一个种子词了。
赎回:把 ecash 换成 Lightning 或提回交易所
"赎回"在 Cashu 语境里通常指 melt:你把 ecash 交给铸造厂,铸造厂通过 Lightning 网络把等值的 satoshi 付到你指定的地址(或帮你付掉一张 Lightning 发票)。
操作路径:
在钱包里选择"支付 Lightning 发票"或"提现到 Lightning 地址"。
钱包向铸造厂发起 melt quote,铸造厂返回需要的手续费(如果有)。
你确认后,铸造厂接收你的 proofs,并在 Lightning 网络上发起支付。
这里最容易被忽略的一点:melt 成功与否取决于铸造厂的 Lightning 节点状态。如果铸造厂节点流动性不足或路由失败,支付可能卡住。铸造厂通常会有一个超时窗口,超时后 proofs 可能被退回,也可能需要你主动触发一次状态同步来回收。如果铸造厂本身跑路或停机,melt 就无法完成。
如果你是要提回中心化交易所,操作上跟普通 Lightning 提现一样:在交易所生成一张 Lightning 发票,然后在 Cashu 钱包里支付这张发票。交易所收到的是一笔正常的 Lightning 入账,不会知道资金来源是 Cashu。但注意:交易所可能对入账来源有风控,这是另一层问题,跟 Cashu 本身无关。
卡住或报错时怎么办
最常见的两个报错是 "Already Spent" 和 "outputs have already been signed before"。这两个通常意味着钱包本地的 proof 状态跟铸造厂那边的记录不一致了——要么是恢复过程中计数器没对齐,要么是同一个 proof 被用了两次。
按这个顺序处理:
先同步 proof 状态。在钱包里找"同步余额"或类似功能,让钱包向铸造厂查询每个 proof 的当前状态(unspent / spent / pending),更新本地记录。
如果同步后仍然报错,尝试 bump 计数器。在 ZEUS 钱包里,路径是
Menu > Tools > Cashu Tools,把 counter 增加几次,强制钱包跳过可能出冲突的推导位置。最后的手段是移除 Mint 再重新添加。移除时先复制 Mint URL,重新添加后勾选"检查现有余额",让钱包从铸造厂重新扫描恢复。这个过程可能比较慢。
如果以上都无效,把你钱包里的种子词导出,导入到另一个 Cashu 钱包(比如 Cashu.me),从另一个实现尝试恢复。但前提是铸造厂还在线。
你真正需要盯住的只有两件事
铸造厂的信誉和存活状态。 Cashu 的 ecash 是托管型的——铸造厂控制着 backing 的比特币,你持有的只是铸造厂欠你的凭证。铸造厂如果关机、跑路、或者停用 keyset 而不给迁移窗口,你的 ecash 就可能变成一张无法兑现的欠条。这不是协议缺陷,是托管模型的固有代价。
种子词。 铸造厂还在线的前提下,种子词是你恢复余额的唯一凭证。截屏余额、保存 token 字符串,都不能替代种子词。如果你用的是一个不提供种子词备份的 Cashu 钱包,需要认真考虑要不要继续把余额放在里面。
参考资料
- ZEUS Documentation·Cashu ecash,页面未标明更新日期;核查日期:2026-10-12。
- cashubtc/cdk·Restoration and Recovery,页面未标明更新日期;核查日期:2026-10-12。
- cashubtc/nuts·Release 0.13.0 – Ecash backups,页面发布或更新日期:2023-07-25;核查日期:2026-10-12。
- Cashu Protocol·NUT-13: Deterministic Secrets,页面未标明更新日期;核查日期:2026-10-12。
- GitHub·Cashu eCash Integration (SatSigner),页面未标明更新日期;核查日期:2026-10-12。
- Stacker News·reply on: Stay away from Voltz,页面发布或更新日期:2025-02-09;核查日期:2026-10-12。
- KuCoin·Cashu Protocol Explained,页面发布或更新日期:2025-12-24;核查日期:2026-10-12。



