StableOps

Agent Payments

让自主 Agent 在不获得无限制钱包权限的前提下,按策略、预算和审批规则安全发起稳定币支付。

Agent Payments 是 StableOps 的 Agent 支付控制层。运营者预先登记付款钱包、激活不可变支出策略、设置预算并签发受限 Agent Key。Agent 运行时只能在这些边界内购买收费资源。

一笔支付如何完成

  1. Agent SDK 请求收费资源,并读取 HTTP 402 响应中的 x402 付款要求。
  2. StableOps 控制面校验来源、收款地址、网络、资产、金额、策略和两级日预算。
  3. 需要人工决定时,Intent 进入审批。通过后继续使用同一个 Intent。
  4. 客户自行部署的签名器伴随服务校验短时执行授权,再使用本地密钥或 AWS KMS 签名。
  5. Agent SDK 携带支付凭证重试原资源,控制面异步对账资源响应与链上结算状态。

信任边界

  • Agent 运行时只持有受限 Agent Key 和伴随服务鉴权令牌,不能修改钱包、策略、预算或审批。
  • 签名器只签署与 StableOps 执行授权完全一致的类型化数据,不提供任意签名接口。
  • 付款钱包私钥或 KMS 权限始终留在客户环境中。
  • StableOps 不代理业务请求、不广播付款交易,也不持有客户私钥。
  • 支付状态与资源状态分别记录。拿到资源不等于已经确认链上结算。

软件包

软件包运行位置职责
@stableops/agent-payments-api-sdk运营者服务端管理 Agent、钱包、策略、预算、审批和支付查询
@stableops/agent-sdkAgent 运行时请求收费资源,协调 Intent、审批、签名与结果查询
@stableops/agent-signer客户签名环境校验执行授权,并通过本地钱包私钥或 AWS KMS 签名

支持范围

  • 服务端 Node.js 20 或更高版本。不支持浏览器或边缘运行时。
  • x402 v2 exactGET 和 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、钱包、策略、预算、签名器实例、授权记录存储或幂等键。

首次主网付款前应完成以下检查:

  1. 完成 StableOps 组织风控审核和恢复演练,并确认正式环境已经开通、收款地址风险筛查链路健康。
  2. 创建正式环境 Agent Payments 管理 API Key 和新的正式环境 Agent,在目标主网上登记并绑定专用钱包。
  3. 使用 6 位预算单位重新创建策略和预算,并把生产资源来源、收款地址、网络及上表列出的 USDC 合约固定到策略中。
  4. 把签名器配置为 environment: 'LIVE' 和目标主网的准确 CAIP-2 标识;每个签名器实例使用独立、持久的授权记录存储。
  5. 使用 BNB Smart Chain 时核对 Permit2 授权余额和原生代币燃料费余额;所有网络都应独立核对钱包 USDC 余额。
  6. 先执行一笔金额很小且需要人工审批的验证付款。确认收费资源响应、StableOps 支付与回执、签名 Webhook、结算服务结果和钱包余额全部一致后,再启用自动付款。

ak_sandbox_... Agent Key 不能访问正式环境,必须重新签发并安全保存 ak_live_... Key。主网请求返回 403 风控错误,表示组织尚未完成开通;返回 503 风险筛查错误时必须保持拒绝并升级处理,不能通过创建第二个 Intent 重试付款。

从哪里开始

这篇文档怎么样?

最后更新

本页内容