x402 支付协议
五、x402 支付协议
文档版本: v2.0 更新日期: 2026-01-12 状态: 技术规范
5.1 协议概述
什么是 x402
x402 是 Coinbase 于 2025 年推出的互联网原生支付协议,激活了长期被保留的 HTTP 402 (Payment Required) 状态码。这是 Web3 与传统互联网基础设施融合的里程碑。
核心特点:
- 标准 HTTP 协议,无需特殊客户端
- 链上支付验证,无需信任中介
- 支持多链(包括 Solana)
- AI Agent 友好
核心流程:

MCC:x402 的首个生产级应用
PING 是 Coinbase 发布的 x402 技术演示 Token,而 MCC 是第一个将 x402 协议应用到完整业务逻辑场景的项目。
| 维度 | PING (裸体 x402) | MCC (业务包裹 x402) |
|---|---|---|
| 参与资格 | 任何人 | Miner 状态 + 铸币额度 (铸币) / 任何人 (轮回/DAO) |
| 业务逻辑 | 无 | 完整的用户体系、组织结构、DAO 治理 |
| 分配规则 | 100% 给铸币者 | 50% 用户 + 10% 团队 + 10% Magistrate(政务官) + 30% Territory(领地)金库MCD |
| 价格机制 | 固定 (1 USDC = 5000 PING) | 动态 (30天均价) |
| 实际价值 | 技术演示 | 支撑真实业务 |
| 回购机制 | 无 | 5% 溢价回购保底 |
PING 是 x402 的 "Hello World",MCC 是 x402 的 "Production Application"。
x402 对 Microcosm 的意义
| 现状 | x402 后 |
|---|---|
| 仅内部用户可铸造 | 外部用户可参与轮回和 DAO |
| 项目需 API Key 授权 | 无许可读取链上状态 |
| 支付流程封闭 | 开放的链上支付通道 |
| 手动验证支付 | 链上自动验证 + 自动执行 |
Solana 阶段实施策略
战略定位: Solana 阶段是为自研主链积累经验的过渡阶段
外部用户(非注册,仅持有钱包)
外部用户通过 x402 协议,可以直接把 MCC 兑换成 USDC(轮回),无需平台注册:
| 可以做 | 不能做 |
|---|---|
| ✅ MCC → USDC 轮回(任何持有者) | ❌ USDC → MCC 铸币(需 Miner 身份) |
| ✅ 参与 DAO 募资(用 MCC) | ❌ 创建 DAO 募资(需 Miner 身份) |
| ✅ 查询价格、系统状态 | ❌ MCD 相关操作(需注册) |
内部用户(注册 + Miner)
内部用户通过 x402 实现自动扣费结算,在很多业务场景上实现自动化:
| 场景 | x402 自动化效果 |
|---|---|
| 每日铸造 | 自动验证 USDC 支付 → 自动铸造 MCC → 自动分配 (50-10-10-30) |
| 拍卖竞价 | 自动托管 MCC 出价 → 自动结算 → 自动铸造/转移 NFT |
| 游戏下注 | 自动扣费 → 自动执行游戏逻辑 → 自动发放奖励 |
| API 调用 | 自动扣费 MCC/MCD → 自动返回服务结果 |
| DAO 募资 | 自动托管 MCC → 自动记录份额 → 自动分配收益 |
"自动"的含义:传统流程需要人工验证和处理,x402 流程实现链上自动验证 + 自动执行业务,无需信任、无需人工。
Solana 阶段的技术限制
根据技术评估,Solana 对 Microcosm 复杂业务的支持有限:
| 业务逻辑 | Solana 支持度 | 原因 |
|---|---|---|
| MCC/MCD 代币 | ✅ 完全支持 | SPL Token 标准 |
| 用户基本身份 | ✅ 可以 | 简单 PDA 存储 |
| 用户级别 | ⚠️ 勉强 | 简化版可以,复杂判定困难 |
| 领地归属 | ❌ 困难 | 四层嵌套关系,动态变化 |
| MCD 每日分配 | ❌ 困难 | 无定时器,大量用户遍历超限 |
| 按贡献比例计算 | ❌ 困难 | 复杂计算超出单交易限制 |
演进路线图
| 阶段 | 链上 | 链下 | x402 开放程度 |
|---|---|---|---|
| Solana 阶段(现在) | MCC/MCD 代币、基础交易、NFT、拍卖 | 用户系统、领地归属、MCD 分配 | 有限(外部只能轮回 + 参与 DAO) |
| 自研主链(未来) | 用户身份、领地归属、MCD 分配、所有业务逻辑 | 无 | 完全开放(无需注册,钱包即身份) |
Solana 阶段的战略目的是为自研主链积累开发经验。
双代币 x402 支持
Microcosm 的双代币(MCC 和 MCD)均支持 x402 协议:
| 代币 | x402 操作 | 说明 |
|---|---|---|
| MCC | 铸币 (Mint) | USDC → MCC,需 Miner 身份 |
| MCC | 轮回 (Cycle) | MCC → USDC,任何人可参与 |
| MCC | DAO 募资 | 创建/参与 Station DAO 募资 |
| MCD | 充值 (Deposit) | USDC → MCD,1:1 锚定 |
| MCD | 消费 (Spend) | MCD 支付服务费用 |
| MCD | 提现 (Withdraw) | MCD → USDC,1:1 兑换 |
5.2 系统架构
整体架构
系统分为四层:外部消费者(AI Agent、第三方 App、钱包集成、Double Helix、Event Horizon)通过 Open API Gateway 接入,Gateway 内置 x402 Middleware 负责检测付费端点、验证支付。核心请求路由到 Facilitator Service 进行支付验证和收入分配,最终与 Solana Blockchain 交互。
| 路由 | 说明 | 认证方式 |
|---|---|---|
/x402/* | 核心交易(铸币/轮回) | x402 支付 |
/v1/paid/* | 付费 API(AI 服务等) | x402 支付 |
/v1/auth/* | 需认证 API(用户信息) | OAuth |
/v1/free/* | 免费 API(价格查询) | 无 |
Facilitator Service 核心职责:
- 生成支付请求 (Payment Request) — 返回 402 响应体
- 验证链上交易 (Solana Transaction) — 确认支付完成
- 签发 JWT Payment Token — 用于后续请求鉴权
- 收入分配 — 按规则分配到各 Vault
官方 App (microcosm.money) 是第一个基于 x402 API 的客户端,未来第三方可基于同一 API 构建其他应用。
5.3 x402 API 端点清单
核心交易 API
| 端点 | 方法 | 功能 | 支付代币 | 参与资格 |
|---|---|---|---|---|
/x402/mint | POST | USDC → MCC 铸币 | USDC | Miner + 铸币额度 |
/x402/cycle | POST | MCC → USDC 轮回 | MCC | 任何持有者 |
/x402/mcd/deposit | POST | USDC → MCD 充值 | USDC | 注册用户 |
/x402/mcd/spend | POST | MCD 消费服务 | MCD | 注册用户 |
/x402/mcd/withdraw | POST | MCD → USDC 提现 | MCD | 注册用户 |
/x402/dao/create | POST | 创建 DAO 募资 | MCC | Miner |
/x402/dao/{id}/contribute | POST | 参与 DAO 募资 | MCC | 任何人 |
/x402/dao/claim | POST | 领取 DAO 收益 | - | DAO 成员 |
付费 API
| 端点 | 方法 | 功能 | 支付代币 | 价格 |
|---|---|---|---|---|
/v1/paid/ai/analysis | POST | AI 交易分析 | MCC | 0.1 MCC/次 |
/v1/paid/ai/prediction | POST | AI 价格预测 | MCC | 0.5 MCC/次 |
/v1/paid/data/historical | GET | 历史数据导出 | MCC | 0.01 MCC/1K条 |
/v1/paid/batch/transfer | POST | 批量转账 | MCD | 1 MCD/批次 |
/v1/paid/sandbox/create | POST | 创建开发沙箱 | MCD | 5 MCD/天 |
辅助查询 API(免费)
| 端点 | 方法 | 功能 | 说明 |
|---|---|---|---|
/x402/status | GET | 系统状态 | 铸造阶段、总铸造量 |
/x402/price | GET | 价格查询 | MCC 当前价格、30日均价 |
/x402/user/{wallet} | GET | 用户信息 | 链上状态(级别、余额) |
/x402/dao/list | GET | 募资列表 | 活跃的 DAO 募资项目 |
5.4 MCC 铸币 API
铸币是用户支付 USDC 获得 MCC 的过程,需要满足业务前置条件(Miner 状态 + 铸币额度)。
API 端点
POST /x402/mint
流程
请求铸币 → 身份验证 → 返回 402 → 链上付款 → 执行铸币。身份验证阶段可能返回 403(钱包未注册、非 Miner、额度不足)。
请求格式
POST /x402/mint
Content-Type: application/json
Headers:
X-Wallet-Address: <用户 Solana 钱包地址>
X-Wallet-Signature: <钱包签名>
X-Timestamp: <Unix 毫秒时间戳>
X-Nonce: <UUID v4>
Body:
{
"amount_mcc": 100 // 想铸造的 MCC 数量
}
402 响应
HTTP/1.1 402 Payment Required
{
"status": "payment_required",
"request_id": "mint_abc123def456",
"expires_at": 1703145600,
"payment": {
"network": "solana",
"chain_id": "devnet",
"token": "USDC",
"token_address": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"amount": "1000000000",
"decimals": 6,
"recipient": "轮回地址 (Reincarnation Address)",
"memo": "mint_abc123def456"
},
"quote": {
"mcc_amount": 100,
"mcc_price": 10.0,
"usdc_required": 1000,
"mining_phase": 0,
"multiplier": 50.0,
"distribution": {
"user": 50,
"team": 10,
"managers": 10,
"station_mcd": 30
}
},
"user_info": {
"uid": "user_12345",
"wallet": "Gq8ubUZwFrBgscZjerWHZCTYXXFMN2b8W6kRyaKMQYJo",
"role": "miner",
"remaining_quota": 9000,
"station_id": 1
}
}
成功响应
{
"success": true,
"request_id": "mint_abc123def456",
"minted": {
"total_mcc": 70,
"user_mcc": 50,
"team_mcc": 10,
"managers_mcc": 10,
"station_mcd": 30
},
"tx_signature": "5xYz...",
"new_balance": {
"mcc": 150.5,
"mcd": 30.0
}
}
5.5 MCC 轮回 API
轮回是用户卖出 MCC 换取 USDC 的过程,任何持有 MCC 的地址均可参与,无需平台注册。
费率机制
| 用户类型 | 轮回费率 | 说明 |
|---|---|---|
| 已注册用户 | 1% | 平台内用户优惠 |
| 未注册用户 | 2% | 外部钱包默认费率 |
手续费从用户获得的 USDC 中扣除,留在轮回地址,形成资金闭环。
API 端点
POST /x402/cycle
轮回计算示例
用户轮回 100 MCC (未注册用户,2% 费率)
当前回购价格: 11 USDC/MCC (铸造价格 10.5 × 1.05)
计算:
gross_usdc = 100 × 11 = 1100 USDC
fee_usdc = 1100 × 2% = 22 USDC → 留在轮回地址
net_usdc = 1100 - 22 = 1078 USDC → 转给用户
402 响应
HTTP/1.1 402 Payment Required
{
"status": "payment_required",
"request_id": "cycle_xyz789abc123",
"expires_at": 1703145600,
"payment": {
"network": "solana",
"token": "MCC",
"token_address": "6we9ind8T3uqX1YXsKqzMqQePF7Him3CLBepCQrfaRWM",
"amount": "100000000000",
"decimals": 9,
"recipient": "轮回地址",
"memo": "cycle_xyz789abc123"
},
"quote": {
"mcc_amount": 100,
"cycle_price": 11.0,
"gross_usdc": 1100,
"fee_rate": 0.02,
"fee_usdc": 22,
"net_usdc": 1078
},
"user_info": {
"is_registered": false,
"fee_tier": "external"
}
}
5.6 MCD x402 API
MCD(Microcosm Dollar)作为生态内的稳定支付媒介,同样支持 x402 协议。
重要: MCD 与 USDC 保持 1:1 锚定,所有充值提现均使用 USDC。
MCD 充值
POST /x402/mcd/deposit
流程:
- 用户请求充值 MCD
- 服务器返回 402 + USDC 支付要求
- 用户链上支付 USDC
- 系统铸造等量 MCD 到用户账户
402 响应:
HTTP/1.1 402 Payment Required
{
"status": "payment_required",
"request_id": "mcd_deposit_abc123",
"expires_at": 1703145600,
"payment": {
"network": "solana",
"token": "USDC",
"token_address": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"amount": "1000000000",
"decimals": 6,
"recipient": "MCD 金库地址",
"memo": "mcd_deposit_abc123"
},
"quote": {
"usdc_amount": 1000,
"mcd_amount": 1000,
"rate": 1.0
}
}
MCD 消费
POST /x402/mcd/spend
用途: 支付生态内服务费用(API 调用、沙箱资源、高级功能等)
请求:
{
"service": "sandbox_starter",
"duration_days": 30
}
402 响应:
HTTP/1.1 402 Payment Required
{
"status": "payment_required",
"request_id": "mcd_spend_xyz789",
"expires_at": 1703145600,
"payment": {
"network": "solana",
"token": "MCD",
"token_address": "HutgrVGDzhSDTFybcqdEFWrbLf8iHAuRbFKZ31ftXc5a",
"amount": "50000000",
"decimals": 6,
"recipient": "服务费收款地址",
"memo": "mcd_spend_xyz789"
},
"service": {
"name": "Sandbox Starter",
"price_mcd": 50,
"duration": "30 days",
"features": ["500m CPU", "512Mi Memory", "1 Replica"]
}
}
MCD 提现
POST /x402/mcd/withdraw
流程:
- 用户请求提现 MCD
- 服务器返回 402 + MCD 转账要求
- 用户将 MCD 转入销毁地址
- 系统发放等量 USDC 到用户钱包
手续费: 提现收取 0.5% 手续费
5.7 Station DAO 募资 x402 API
Station DAO 募资系统允许任何 Miner 级别用户发起众筹,募集 MCC 参与 Station 拍卖。所有交互基于 x402 协议。
设计目标
- 降低参与门槛: Station 估值 100万+ USDC,普通用户无法独立参与
- 去中心化治理: 投资者持有 DAO 治理份额,参与 Station 决策
- 开放平台: 平台内外用户均可参与,基于 x402 协议
- 资金安全: 所有资金由系统 PDA 托管,发起人无资金控制权
核心特点
| 特点 | 说明 |
|---|---|
| DAO 治理份额 | 投资者持有的是治理权,不是证券 |
| 系统 PDA 托管 | 募资地址由系统生成和控制,非个人地址 |
| 仅接受 MCC | 募资只接受 MCC,不支持其他币种 |
| 开放参与 | 平台内外地址均可参与 |
| x402 协议 | 所有交互基于 x402 标准 |
DAO 收益分配
当 Station 通过 DAO 募资获得后,Magistrate(政务官)收益(4%)进一步分配:
| 分配对象 | 比例 | 说明 |
|---|---|---|
| 发起人 (Initiator) | 10% | - |
| Magistrate(政务官) | 10% | 由 DAO 投票选出 |
| 所有投资者 | 80% | 按份额比例分配 |
创建募资 API
POST /x402/dao/create
请求:
{
"station_id": "STN-001",
"target_amount": 100000,
"min_contribution": 100,
"max_contribution": 10000,
"deadline_days": 14,
"description": "募资竞拍 Station Alpha"
}
402 响应:
HTTP/1.1 402 Payment Required
{
"status": "payment_required",
"request_id": "dao_create_abc123",
"expires_at": 1703145600,
"payment": {
"network": "solana",
"token": "MCC",
"amount": "1000000000000",
"recipient": "DAO 创建费收款地址",
"memo": "dao_create_abc123"
},
"create_fee": {
"amount_mcc": 1000,
"description": "DAO 创建费,募资成功后返还"
},
"fundraise": {
"station_id": "STN-001",
"target_amount": 100000,
"pool_pda": "系统生成的募资池 PDA 地址"
}
}
参与募资 API
POST /x402/dao/{fundraise_id}/contribute
402 响应:
HTTP/1.1 402 Payment Required
{
"status": "payment_required",
"request_id": "dao_contrib_xyz789",
"expires_at": 1703145600,
"payment": {
"network": "solana",
"token": "MCC",
"amount": "5000000000000",
"recipient": "募资池 PDA 地址",
"memo": "dao_contrib_xyz789"
},
"contribution": {
"amount_mcc": 5000,
"fee_rate": 0.01,
"fee_mcc": 50,
"net_contribution": 4950,
"estimated_share": "4.95%"
},
"fundraise_status": {
"raised": 45000,
"target": 100000,
"progress": "45%",
"contributors": 23
}
}
领取收益 API
POST /x402/dao/claim
份额转让 API
POST /x402/dao/shares/transfer
5.8 x402 安全机制
Header 规范
必需头(所有 /x402/ 端点):*
| Header | 说明 | 格式 |
|---|---|---|
X-Wallet-Address | 钱包公钥 | Base58 编码, 32-44 字符 |
X-Wallet-Signature | 请求签名 | Base58 编码, 64-88 字符 |
X-Timestamp | Unix 毫秒时间戳 | 13 位数字 |
X-Nonce | 请求唯一标识 | UUID v4, 36 字符 |
可选头:X-Client-Version(语义化版本号)
签名生成流程
- 构造签名消息:
MCC-x402-v1:{action}:{wallet_address}:{timestamp}:{nonce}:{SHA256(request_body)} - 使用 Ed25519 私钥签名
- Base58 编码签名结果
Nonce 防重放
| 配置项 | 值 |
|---|---|
| 存储 | Redis |
| Key 格式 | x402:nonce:{nonce_value} |
| Value | {wallet_address}:{timestamp} |
| TTL | 10 分钟 (600 秒) |
验证流程: 检查 Nonce 格式 (UUID v4) → 检查 Redis 是否存在(存在则拒绝) → 检查时间戳是否在 5 分钟内 → 存储到 Redis 并设置 TTL
分布式锁
| 锁类型 | Key 格式 | 用途 |
|---|---|---|
| 用户级锁 | x402:lock:user:{wallet_address} | 防止同一用户并发请求 |
| 请求级锁 | x402:lock:request:{request_id} | 防止同一请求重复处理 |
| 资源级锁 | x402:lock:dao:{fundraise_id} | 防止募资状态竞态 |
锁参数:TTL 30 秒、最多重试 3 次(间隔 100ms)、实现方式 Redis SETNX + Lua 脚本
链上交易验证
- 接收
tx_signature - 查询 Solana 链:
getTransaction(signature, {maxSupportedTransactionVersion: 0}) - 验证交易状态:确认数 >= 32 (finalized),无错误日志
- 解析交易内容:Token 类型、金额(考虑精度)、发送方/接收方地址、Memo 内容
- 匹配验证:Memo == request_id、金额 >= 要求金额、接收方 == 指定地址、发送方 == 请求钱包
- 防重复使用:存储 tx_signature 到数据库,标记已使用
5.9 错误码规范
| HTTP 状态码 | 错误码 | 说明 | 适用场景 |
|---|---|---|---|
| 400 | INVALID_SIGNATURE | 签名验证失败 | 全部 |
| 400 | INVALID_TIMESTAMP | 时间戳无效 (>5分钟) | 全部 |
| 400 | INVALID_NONCE | Nonce 格式错误 | 全部 |
| 400 | INVALID_AMOUNT | 金额无效 | mint/cycle/dao |
| 402 | PAYMENT_REQUIRED | 需要支付 | 全部 (正常流程) |
| 403 | WALLET_NOT_REGISTERED | 钱包未注册 | mint |
| 403 | NOT_MINER | 非 Miner 状态 | mint/dao_create |
| 403 | INSUFFICIENT_QUOTA | 铸币额度不足 | mint |
| 403 | FUNDRAISE_IN_PROGRESS | 有进行中的募资 | dao_create |
| 403 | FUNDRAISE_NOT_ACTIVE | 募资非活跃 | dao_contribute |
| 403 | SHARE_LOCKED | 份额锁定中 | dao_transfer |
| 404 | STATION_NOT_FOUND | Station 不存在 | dao_create |
| 404 | FUNDRAISE_NOT_FOUND | 募资不存在 | dao_contribute |
| 408 | REQUEST_EXPIRED | 请求已过期 | 全部 |
| 409 | REQUEST_ALREADY_USED | 请求已使用 | 全部 |
| 409 | TX_ALREADY_USED | 交易已使用 | 全部 |
| 409 | NONCE_REUSED | Nonce 重复 | 全部 |
| 423 | RESOURCE_LOCKED | 资源被锁定 | dao |
| 500 | INTERNAL_ERROR | 内部错误 | 全部 |
| 503 | CHAIN_UNAVAILABLE | 链服务不可用 | 全部 |
5.10 收入分配机制
MCC API 收入分配
来自付费 API 的 MCC 收入按以下比例分配:
| 比例 | 去向 | 说明 |
|---|---|---|
| 30% | 回购销毁 (Reincarnation Address) | 减少流通量,提升 MCC 价值 |
| 70% | 团队 (Team Vault) | 用于运营和开发 |
MCD 服务费分配
来自 MCD 付费服务的收入按以下比例分配:
| 比例 | 去向 | 说明 |
|---|---|---|
| 50% | 平台运营 | 服务器、人力成本 |
| 30% | 生态发展基金 | 激励开发者、社区活动 |
| 20% | 回流 Station 金库 | 增加 Miner 收益 |
分配执行
通过 CronJob 定期执行收入分配:
# k8s/x402-revenue-distribution-cronjob.yaml
apiVersion: batch/v1
kind: CronJob
metadata:
name: x402-revenue-distribution
namespace: microcosm
spec:
schedule: "0 1 * * *" # 每日 UTC 01:00
jobTemplate:
spec:
template:
spec:
containers:
- name: distributor
image: microcosm-blockchain-service:latest
command: ["python", "-m", "app.jobs.x402_revenue_distribution"]
5.11 数据库设计
新增表结构
-- API 定价表
CREATE TABLE api_pricing (
id SERIAL PRIMARY KEY,
endpoint VARCHAR(200) NOT NULL UNIQUE,
token VARCHAR(10) NOT NULL, -- MCC/MCD
price DECIMAL(20, 9) NOT NULL, -- 单次价格
unit VARCHAR(50) DEFAULT 'per_call', -- per_call/per_1k/per_day
description TEXT,
is_active BOOLEAN DEFAULT true,
created_at TIMESTAMP DEFAULT NOW(),
updated_at TIMESTAMP DEFAULT NOW()
);
-- x402 支付请求表
CREATE TABLE x402_payment_requests (
id SERIAL PRIMARY KEY,
request_id VARCHAR(100) NOT NULL UNIQUE,
wallet_address VARCHAR(100) NOT NULL,
endpoint VARCHAR(200) NOT NULL,
token VARCHAR(10) NOT NULL,
amount DECIMAL(20, 9) NOT NULL,
recipient VARCHAR(100) NOT NULL,
expires_at TIMESTAMP NOT NULL,
status VARCHAR(20) DEFAULT 'pending', -- pending/paid/expired/cancelled
tx_signature VARCHAR(200),
paid_at TIMESTAMP,
created_at TIMESTAMP DEFAULT NOW()
);
-- x402 收入记录表
CREATE TABLE x402_revenue (
id SERIAL PRIMARY KEY,
source VARCHAR(50) NOT NULL, -- api_call/mint_fee/cycle_fee
token VARCHAR(10) NOT NULL,
amount DECIMAL(20, 9) NOT NULL,
tx_signature VARCHAR(200),
distributed BOOLEAN DEFAULT false,
distributed_at TIMESTAMP,
distribution_details JSONB,
created_at TIMESTAMP DEFAULT NOW()
);
-- API 使用日志表
CREATE TABLE api_usage_log (
id SERIAL PRIMARY KEY,
wallet_address VARCHAR(100) NOT NULL,
endpoint VARCHAR(200) NOT NULL,
request_id VARCHAR(100),
token VARCHAR(10),
amount DECIMAL(20, 9),
status VARCHAR(20) NOT NULL, -- success/failed/pending
response_time_ms INTEGER,
error_code VARCHAR(50),
created_at TIMESTAMP DEFAULT NOW()
);
-- 索引
CREATE INDEX idx_payment_requests_wallet ON x402_payment_requests(wallet_address);
CREATE INDEX idx_payment_requests_status ON x402_payment_requests(status);
CREATE INDEX idx_payment_requests_expires ON x402_payment_requests(expires_at);
CREATE INDEX idx_revenue_distributed ON x402_revenue(distributed);
CREATE INDEX idx_usage_log_wallet ON api_usage_log(wallet_address);
CREATE INDEX idx_usage_log_created ON api_usage_log(created_at);
5.12 实施计划
阶段划分
| 阶段 | 名称 | 内容 | 依赖 |
|---|---|---|---|
| Phase 1 | 基础设施 | Facilitator Service、数据库表、x402 Vault | - |
| Phase 2 | 核心交易 | /x402/mint、/x402/cycle | Phase 1 |
| Phase 3 | MCD 操作 | /x402/mcd/* 端点 | Phase 2 |
| Phase 4 | 付费 API | /v1/paid/* 端点 | Phase 2 |
| Phase 5 | DAO 募资 | /x402/dao/* 端点 | Phase 3 |
| Phase 6 | 收入分配 | CronJob、分配逻辑 | Phase 4 |
关键文件清单
| 文件路径 | 用途 | 操作 |
|---|---|---|
services/facilitator-service/ | 新服务目录 | 创建 |
services/facilitator-service/app/main.py | 服务入口 | 创建 |
services/facilitator-service/app/routes/payment.py | 支付 API | 创建 |
services/facilitator-service/app/services/tx_verifier.py | 交易验证 | 创建 |
services/open-api-service/fastapi_app/x402_middleware.py | 中间件 | 创建 |
services/open-api-service/fastapi_app/routers/x402_mint.py | 铸币路由 | 创建 |
services/open-api-service/fastapi_app/routers/x402_cycle.py | 轮回路由 | 创建 |
services/open-api-service/fastapi_app/routers/x402_mcd.py | MCD 路由 | 创建 |
services/open-api-service/fastapi_app/routers/x402_dao.py | DAO 路由 | 创建 |
services/open-api-service/fastapi_app/routers/paid_api.py | 付费 API | 创建 |
solana-contracts/mcc-token/.../x402_revenue.rs | 收款合约 | 创建 |
k8s/x402-revenue-distribution-cronjob.yaml | 分配任务 | 创建 |
测试计划
| 测试类型 | 内容 | 工具 |
|---|---|---|
| 单元测试 | 签名验证、交易解析 | pytest |
| 集成测试 | 端到端支付流程 | pytest + Solana Devnet |
| 压力测试 | 并发支付验证 | locust |
| 安全测试 | 重放攻击、签名伪造 | 手动 + 自动化 |
5.13 风险与缓解
| 风险 | 影响 | 缓解措施 |
|---|---|---|
| Solana 网络拥堵 | 交易确认延迟 | 支持多 RPC 端点,自动重试 |
| 交易验证延迟 | 用户等待时间长 | 使用 WebSocket 订阅交易状态 |
| 价格操纵 | 套利风险 | 使用 30 日移动均价,考虑接入预言机 |
| 重放攻击 | 资金损失 | Nonce + tx_signature 双重校验 |
| 私钥泄露 | 资金损失 | GCP Secret Manager + 多签 |
| 合约漏洞 | 资金损失 | 代码审计 + 限额保护 |
5.14 未来规划
Solana 阶段扩展
- 接入 Coinbase 官方 Facilitator(可选)
- 支持更多 SPL Token 支付
- 开发 x402 JavaScript/Python SDK
自研主链阶段
当 Microcosm Chain 上线后,x402 将获得完整支持:
- 用户身份完全上链,无需注册
- 领地归属、MCD 分配原生支持
- 更低的 Gas 费用
- 更快的确认速度
5.15 x402 与传统支付对比
| 维度 | 传统支付 | x402 支付 |
|---|---|---|
| 中间商 | 银行、支付网关、清算机构 | 无(点对点) |
| 结算时间 | T+1 到 T+3 | 秒级确认 |
| 手续费 | 2-3% | < 0.1% |
| 跨境支付 | 复杂、高费用 | 无国界 |
| 可编程性 | 有限 | 完全可编程 |
| 透明度 | 黑箱 | 链上可验证 |
| 7×24 | 否 | 是 |
x402 是互联网支付的范式转移,Microcosm 是这一范式的先行者。