solana-foundation/pay
GitHub: solana-foundation/pay
基于 Solana 稳定币的 HTTP 402 支付中间件,让 AI 代理和命令行工具能安全、透明地访问付费 API。
Stars: 1656 | Forks: 556
# 支付
**HTTP 缺失的支付层。`pay` 通过用户授权的稳定币签名来处理 x402 和 MPP 支付挑战。**
包装一组选定的命令行工具(`curl`、`claude`、`codex`、`whoami` 等)——当稳定币门控 API 返回 402 时,`pay` 会检测支付协议,准备稳定币交易,请求本地钱包授权并签名,然后携带支付证明重试。
[安装](#installation) · [快速开始](#quick-start) · [文档](https://docs.solanapay.com)
```
# 无支付 — 你会收到一个 402
curl https://debugger.pay.sh/mpp/quote/AAPL
# 有支付 -- 它会处理 402 质询并返回响应
pay --sandbox curl https://debugger.pay.sh/mpp/quote/AAPL
```
## 核心特性
### 💵 透明的 402 处理
包装你的 CLI(`curl`、`claude`、`codex` 等)——当 API 返回 402 时,`pay` 会检测支付协议,准备稳定币交易,请求本地钱包授权并签名,然后携带支付证明重试。
支持 Solana 上的两种实际支付标准:
- **[MPP](https://paymentauth.org/draft-solana-charge-00.html/)** — Machine Payments Protocol
- **[x402](https://x402.org/)** — x402 Payment Protocol
开箱即用地支持部署在 Solana 上的稳定币。
### 🤖 基于 MCP 的 AI 原生集成
`pay` 内置了 [MCP](https://modelcontextprotocol.io/) 服务器,让 AI 助手可以通过相同的本地钱包审批流程请求付费 API 调用。
```
# 将 pay 注入到 agent 会话中以运行 Claude Code 或 Codex
pay claude
pay codex
```
### 🛠️ 支付调试与模拟
`pay` 内置了支付调试器——一个本地的 Web UI,可将每一次 402 挑战-响应周期可视化为序列图。准确查看发送了哪些头部信息、使用了哪种协议(MPP 或 x402),以及问题出在哪里。
所有操作均在本地运行——没有任何数据会离开你的设备。
```
# 在任何 API 规范上启动带有 debugger 的 gateway
pay server start --debugger spec.yml
# 或者运行捆绑的 demo(sandbox + debugger + 示例 endpoints)
pay server demo
```
还提供了一个[公共调试器](https://debugger.pay.sh)。
### 🔐 通过生物识别进行门控支付
`pay` 允许 AI 代理使用付费 API,而无需向它们提供你的私钥或全局 API 消费凭证。
当某个命令、Claude Code、Codex 或其他 MCP 客户端访问付费端点时,`pay` 会在本地准备支付,并请求你的钱包后端授权签名。在 macOS 上,这意味着通过 Keychain 使用 Touch ID。在 Windows 上,使用 Windows Hello。在 Linux 上,使用 GNOME Keyring / polkit。如果你拒绝提示,支付将不会被签名,请求也不会被发送。
```
pay setup # Touch ID on macOS, Windows Hello on Windows, GNOME Keyring on Linux, or choose 1Password
```
### 📚 开源目录
付费 API 目录在 [`pay-skills`](https://github.com/solana-foundation/pay-skills) 仓库中开源。
任何人都可以贡献服务商列表,改进端点元数据,或为代理添加使用指南。目录条目遵循 [`pay-skills` 贡献指南](https://github.com/solana-foundation/pay-skills/blob/main/CONTRIBUTING.md),该指南定义了元数据、定价、端点和使用说明标准,以保持一致的**代理(Agent)体验**。
```
pay skills search "maps"
```
良好的目录条目使人类和代理都能更轻松、安全地发现、比较和使用付费 API。
## 安装说明
### 预编译二进制文件
```
# macOS
brew install pay
# 通过 NPM
npm install -g @solana/pay
```
### 从源码构建
```
git clone https://github.com/solana-foundation/pay.git
cd pay
just install pay
```
### 验证
```
pay --version
```
## 快速开始
```
# 1. 设置你的账户
pay setup
pay whoami
# 2. 向 https://debugger.pay.sh sandbox endpoints 发起付费受限 API 调用
pay --sandbox curl https://debugger.pay.sh/mpp/quote/AAPL
# 3. 或者让你的 AI agent 来处理
pay claude
```
## 参与贡献
```
cd rust
just build # release binary
just test # all tests
just lint # clippy (warnings = errors)
```
我们欢迎各种贡献——查看[待处理问题](https://github.com/solana-foundation/pay/issues)以开始参与。
## 故障排除
### Linux:`pay topup` 或 `pay curl` 报错 "auth failed"
GNOME Keyring 认证使用 polkit,这需要进行一次性的设置步骤:
```
sudo cp rust/config/polkit/sh.pay.unlock-keypair.policy /usr/share/polkit-1/actions/
```
这将授予 `pay` 在访问密钥对之前提示输入密码或指纹的权限。
## 许可证
MIT — 见 [LICENSE](./LICENSE)。
在遵守上述前提的条件下,请参阅 [solana.com/tos](https://solana.com/tos) 上的服务条款