name: cashu
description: 这是用于比特币支付的工具。使用Nutshell (cashu) CLI管理Cashu电子现金钱包、发送/接收代币以及支付闪电网络发票。
compatibility: 需要cashu CLI(通过pipx安装)。
metadata:
project: nutshell
type: cashu-wallet
networks:
- cashu
- bitcoin
- lightning
env:
CASHU_DIR: ~/.cashu
Nutshell (Cashu CLI)
Nutshell是Cashu的命令行钱包,Cashu是比特币的电子现金协议。它允许您私密地发送和接收电子现金代币,并与闪电网络交互。
安装
此技能需要cashu CLI。通过pipx(推荐)或pip安装:
# 推荐(隔离环境)
pipx install cashu
# 替代方案(系统/用户全局)
pip install cashu
确保二进制路径在您的PATH中。
环境配置(必需)
CLI需要两个环境变量才能正常运行:
CASHU_DIR:钱包数据目录(通常为~/.cashu)。MINT_URL(或MINT_HOST):您要使用的Cashu铸币厂的URL。
Linux / macOS: 在命令前添加变量或在shell配置文件中导出它们。
# 每条命令单独设置
CASHU_DIR=~/.cashu MINT_URL=https://mint.example.com cashu balance
# 持久化(添加到~/.bashrc或~/.zshrc)
export CASHU_DIR=~/.cashu
export MINT_URL=https://mint.example.com
Windows (PowerShell):
$env:CASHU_DIR = "$HOME\.cashu"
$env:MINT_URL = "https://mint.example.com"
cashu balance
CLI使用
以下所有示例均假设已设置CASHU_DIR和MINT_URL。如果未在shell配置文件中持久化它们,请在每条命令前添加。
代理提示: 始终使用--yes(或-y)标志以跳过交互式提示和确认。这对于代理使用是强制性的,因为代理无法响应stdin提示(如“确认付款?[y/N]”);省略它将导致命令挂起并超时。
余额与信息
# 检查钱包余额
CASHU_DIR=~/.cashu MINT_URL=<url> cashu --yes balance
# 检查待处理代币
CASHU_DIR=~/.cashu MINT_URL=<url> cashu --yes pending
# 获取钱包信息
CASHU_DIR=~/.cashu MINT_URL=<url> cashu --yes info
# 列出钱包
CASHU_DIR=~/.cashu MINT_URL=<url> cashu --yes wallets
发送与接收
发送Cashu代币(电子现金):
# 发送金额(生成要共享的代币字符串)
CASHU_DIR=~/.cashu MINT_URL=<url> cashu --yes send <金额>
# 示例:CASHU_DIR=~/.cashu MINT_URL=https://8333.space:3338 cashu --yes send 100
接收Cashu代币:
# 接收代币字符串
CASHU_DIR=~/.cashu MINT_URL=<url> cashu --yes receive <代币字符串>
闪电网络
支付闪电网络发票(熔化):
# 支付发票
CASHU_DIR=~/.cashu MINT_URL=<url> cashu --yes pay <bolt11发票>
支付闪电地址(LNURL):
# 支付LNURL/闪电地址(自动解析发票)
CASHU_DIR=~/.cashu MINT_URL=<url> cashu --yes pay <用户@域名.com> <金额_聪>
# 示例:CASHU_DIR=~/.cashu MINT_URL=<url> cashu --yes pay user@npubx.cash 100
创建闪电网络发票(铸造):
# 创建发票以接收资金到钱包
CASHU_DIR=~/.cashu MINT_URL=<url> cashu --yes invoice <金额>
闪电地址(LNURL)
管理您的Nostr闪电地址(例如,user@npubx.cash)以接收付款。
# 创建(或显示)您的静态闪电地址
CASHU_DIR=~/.cashu MINT_URL=<url> cashu --yes lnurl create
# 检查发送到您地址的待处理付款
CASHU_DIR=~/.cashu MINT_URL=<url> cashu --yes lnurl check
# 铸造(申领)待处理付款
CASHU_DIR=~/.cashu MINT_URL=<url> cashu --yes lnurl mint
支付Cashu 402(代理模式)
支持Cashu的API可能会返回402 Payment Required错误,并在X-Cashu标头中包含付款请求。这对于计量API或付费端点很常见。
流程:
- 发出HTTP请求
- 如果收到带有
X-Cashu: creqA...标头的402,提取付款请求 - (可选)解码以检查接受的铸币厂:
cashu decode <付款请求> - 支付:
cashu --yes pay <付款请求> - 从响应中获取代币
- 重试原始请求,在
X-Cashu标头中包含代币
铸币厂兼容性: 付款请求可能编码了接受电子现金的特定铸币厂。如果您尝试使用不在允许列表中的铸币厂支持的钱包支付,将会出错。在尝试付款之前,使用cashu decode <creq>查看接受哪些铸币厂。
示例:
# 1. 初始请求(返回402)
curl -s -i https://api.example.com/data
# 响应包括:
# HTTP/1.1 402 Payment Required
# X-Cashu: creqA1...
# 2. 支付付款请求
CASHU_DIR=~/.cashu MINT_URL=<url> cashu --yes pay "creqA1..."
# 返回类似代币:cashuA...
# 3. 使用代币重试
curl -s -H "X-Cashu: cashuA..." https://api.example.com/data
此模式对代理友好:自动处理402、支付、重试——就像处理速率限制或身份验证重定向一样。
高级
# 销毁已花费的代币
CASHU_DIR=~/.cashu MINT_URL=<url> cashu --yes burn
# 查看所有发票
CASHU_DIR=~/.cashu MINT_URL=<url> cashu --yes invoices
配置
Nutshell在CASHU_DIR内使用.env文件进行额外配置。
如果未提供MINT_URL,它可能默认为公共测试铸币厂或失败。请始终指定您信任的铸币厂。
注意事项
- 代币是以
cashuA...(V3)或cashuB...(V4)开头的大字符串。 - 如果使用大量资金,请确保备份您的助记词(参见
cashu info)。