Agent Payments
让自主 Agent 在不获得无限制钱包权限的前提下,按策略、预算和审批规则安全发起稳定币支付。
Agent Payments 是 StableOps 的 Agent 支付控制层。运营者预先登记付款钱包、激活不可变支出策略、设置预算并签发受限 Agent Key。Agent 运行时只能在这些边界内购买收费资源。
一笔支付如何完成
- Agent SDK 请求收费资源,并读取 HTTP 402 响应中的 x402 付款要求。
- StableOps 控制面校验来源、收款地址、网络、资产、金额、策略和两级日预算。
- 需要人工决定时,Intent 进入审批。通过后继续使用同一个 Intent。
- 客户自行部署的签名器伴随服务校验短时执行授权,再使用本地密钥或 AWS KMS 签名。
- Agent SDK 携带支付凭证重试原资源,控制面异步对账资源响应与链上结算状态。
信任边界
- Agent 运行时只持有受限 Agent Key 和伴随服务鉴权令牌,不能修改钱包、策略、预算或审批。
- 签名器只签署与 StableOps 执行授权完全一致的类型化数据,不提供任意签名接口。
- 付款钱包私钥或 KMS 权限始终留在客户环境中。
- StableOps 不代理业务请求、不广播付款交易,也不持有客户私钥。
- 支付状态与资源状态分别记录。拿到资源不等于已经确认链上结算。
软件包
| 软件包 | 运行位置 | 职责 |
|---|---|---|
@stableops/agent-payments-api-sdk | 运营者服务端 | 管理 Agent、钱包、策略、预算、审批和支付查询 |
@stableops/agent-sdk | Agent 运行时 | 请求收费资源,协调 Intent、审批、签名与结果查询 |
@stableops/agent-signer | 客户签名环境 | 校验执行授权,并通过本地钱包私钥或 AWS KMS 签名 |
支持范围
- 服务端 Node.js 20 或更高版本。不支持浏览器或边缘运行时。
- x402 v2
exact、GET和 HTTPS 收费资源。 - 当前资产固定为下表中的 USDC;TRON 主网和 Nile 测试网暂不支持。
- 沙盒只能使用测试网,正式环境只能使用主网。正式环境默认关闭,组织完成风控与恢复演练门禁后由 StableOps 开通。
沙盒和正式环境的网络限制会在策略、钱包、支付意图和授权接口中分别校验,不能通过自行构造请求跨环境使用网络。
正式环境网络
Ethereum
EIP-3009
- 网络标识
- eip155:1
- 合约或 Mint
- 0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
- 资产
- USDC
- 位数
- 6
Base
EIP-3009
- 网络标识
- eip155:8453
- 合约或 Mint
- 0x833589fcd6edb6e08f4c7c32d4f71b54bda02913
- 资产
- USDC
- 位数
- 6
Arbitrum
EIP-3009
- 网络标识
- eip155:42161
- 合约或 Mint
- 0xaf88d065e77c8cc2239327c5edb3a432268e5831
- 资产
- USDC
- 位数
- 6
Polygon
EIP-3009
- 网络标识
- eip155:137
- 合约或 Mint
- 0x3c499c542cef5e3811e1192ce70d8cc03d5c3359
- 资产
- USDC
- 位数
- 6
Optimism
EIP-3009
- 网络标识
- eip155:10
- 合约或 Mint
- 0x0b2c639c533813f4aa9d7837caf62653d097ff85
- 资产
- USDC
- 位数
- 6
BNB Smart Chain
Permit2
- 网络标识
- eip155:56
- 合约或 Mint
- 0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d
- 资产
- USDC
- 位数
- 18
Solana
SVM 预签名交易
- 网络标识
- solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp
- 合约或 Mint
- EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
- 资产
- USDC
- 位数
- 6
沙盒网络
Ethereum Sepolia
EIP-3009
- 网络标识
- eip155:11155111
- 合约或 Mint
- 0x1c7d4b196cb0c7b01d743fbc6116a902379c7238
- 资产
- USDC
- 位数
- 6
Base Sepolia
EIP-3009
- 网络标识
- eip155:84532
- 合约或 Mint
- 0x036cbd53842c5426634e7929541ec2318f3dcf7e
- 资产
- USDC
- 位数
- 6
Arbitrum Sepolia
EIP-3009
- 网络标识
- eip155:421614
- 合约或 Mint
- 0x75faf114eafb1bdbe2f0316df893fd58ce46aa4d
- 资产
- USDC
- 位数
- 6
Polygon Amoy
EIP-3009
- 网络标识
- eip155:80002
- 合约或 Mint
- 0x41e94eb019c0762f9bfcf9fb1e58725bfb0e7582
- 资产
- USDC
- 位数
- 6
Optimism Sepolia
EIP-3009
- 网络标识
- eip155:11155420
- 合约或 Mint
- 0x5fd84259d66cd46123540766be93dfe6d43130d7
- 资产
- USDC
- 位数
- 6
BNB Smart Chain 测试网
Permit2
- 网络标识
- eip155:97
- 合约或 Mint
- 0x64544969ed7ebf5f083679233325356ebe738930
- 资产
- USDC
- 位数
- 18
Solana Devnet
SVM 预签名交易
- 网络标识
- solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1
- 合约或 Mint
- 4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU
- 资产
- USDC
- 位数
- 6
BNB Smart Chain 使用 Binance-Peg USDC,测试网使用社区锚定测试代币,不应表述为 Circle 官方 USDC。
签名器与燃料费
- EIP-3009 网络在沙盒中使用
LocalTestSigner,正式环境使用AwsKmsSigner。x402 结算服务提交付款交易,付款钱包不需要为每笔付款准备原生代币。 - Permit2 网络的沙盒使用本地 EVM 测试签名器,正式环境使用 AWS KMS。付款钱包必须先授权规范 Permit2 合约(
0x000000000022D473030F116dDEE9F6B43aC78BA3)使用 USDC。授权额度应以资金管理策略实际需要为限;广播前必须逐项核对网络、代币、被授权方和金额。该授权交易由钱包广播,因此钱包需要持有对应网络的原生代币支付燃料费;后续 x402 付款交易仍由结算服务提交。 - Solana 使用
LocalSvmSigner。结算服务的费用支付方负责交易费,付款钱包无需为了 x402 付款持有 SOL。 AwsKmsSigner只支持 EVM 网络。Solana 私钥必须留在客户环境,并由LocalSvmSigner使用。
金额单位
支付报价、审批和回执中的金额使用上表所列资产位数。策略和预算则始终使用 6 位 USDC 预算单位:1000000 表示 1 USDC。BNB Smart Chain 上 1 USDC 的支付金额为 1000000000000000000,但策略限额仍为 1000000。
从沙盒迁移到正式环境
沙盒和正式环境彼此隔离。不能在正式环境中复用沙盒的 Agent、Agent Key、钱包、策略、预算、签名器实例、授权记录存储或幂等键。
首次主网付款前应完成以下检查:
- 完成 StableOps 组织风控审核和恢复演练,并确认正式环境已经开通、收款地址风险筛查链路健康。
- 创建正式环境 Agent Payments 管理 API Key 和新的正式环境 Agent,在目标主网上登记并绑定专用钱包。
- 使用 6 位预算单位重新创建策略和预算,并把生产资源来源、收款地址、网络及上表列出的 USDC 合约固定到策略中。
- 把签名器配置为
environment: 'LIVE'和目标主网的准确 CAIP-2 标识;每个签名器实例使用独立、持久的授权记录存储。 - 使用 BNB Smart Chain 时核对 Permit2 授权余额和原生代币燃料费余额;所有网络都应独立核对钱包 USDC 余额。
- 先执行一笔金额很小且需要人工审批的验证付款。确认收费资源响应、StableOps 支付与回执、签名 Webhook、结算服务结果和钱包余额全部一致后,再启用自动付款。
ak_sandbox_... Agent Key 不能访问正式环境,必须重新签发并安全保存 ak_live_... Key。主网请求返回 403 风控错误,表示组织尚未完成开通;返回 503 风险筛查错误时必须保持拒绝并升级处理,不能通过创建第二个 Intent 重试付款。
从哪里开始
- 想先查看真实
402挑战:打开在线 x402 测试。 - 想跑通第一笔受控支付:按快速开始逐步配置。
- 已完成基础流程:继续阅读管理 SDK、签名器和 Webhook。
这篇文档怎么样?
最后更新