跳转到主要内容
角色2变体 - API提供者

将您的API出售给AI代理。

AI代理无法填写信用卡表单。它们可以用USDC支付给您。Blockchain0x只需一次API调用。

痛点

您的 API 是为人类设计的。现在调用者是代理。

未来十年的API收入不会来自人类注册。它将来自AI代理代表其用户调用API,通常是程序化的,并且没有任何人参与。这些代理无法使用您现有的结账流程。他们无法填写信用卡表单,无法创建账户,无法点击确认电子邮件,无法记住密码。

他们可以做的是读取 402 Payment Required 响应,从 JSON 主体中解析出 USDC 金额和收款人,在 Base 上付款,并重新发出带有付款证明的调用。这就是代理驱动的 API 商务的全部形态。成本模型(以稳定币按调用计费)也比基于卡的订阅更适合代理使用:卡在低于 1 美元的交易中失败;Base 上的 USDC 仅需几美分的燃气费;机器之间不会发生退款。

Blockchain0x是桥梁。在定价表中列出您想要收费的路由并挂载x402适配器。当未支付的调用命中定价路由时,适配器返回一个402,准确描述需要支付的内容。代理在Base上支付并使用X-Payment头重试;适配器验证它,您的处理程序运行。您收集USDC并像以前一样运行您的API。您的业务逻辑没有任何变化;计费层与之并行。

402 需要付款

HTTP状态码终于有了用途。

HTTP 402 was reserved in the original spec for "future use" and never standardized. For thirty years it sat unused while the internet built per-account subscription billing on top of 200/401/403. With Coinbase's x402 protocol, 402 finally has a standard implementation: any API that needs payment-before-it-runs can return a structured 402, and any client that understands the spec can pay and retry.

您的 API 在调用未支付时返回此 402 主体
HTTP/1.1 402 Payment Required
Content-Type: application/json

{
  "resource": "POST /api/expensive-operation",
  "accepts": [
    {
      "scheme": "exact-usdc",
      "network": "mainnet",
      "chainId": "eip155:8453",
      "payToAddress": "0xYourAgentWalletAddress",
      "amountWeiUsdc": "500000",
      "paymentRequestId": "pr_demo",
      "maxAgeSeconds": 60
    }
  ]
}

accepts[] 要求的含义

  • scheme - 支付方案。exact-usdc 意味着在 EVM 链上精确的 USDC 金额。客户端在付款前根据此进行匹配。
  • network / chainId - 结算的链(主网是 Base,CAIP-2 eip155:8453)。迁移可以通过在 accepts 中列出两个要求来引用两个网络。
  • payToAddress / amountWeiUsdc - 收款钱包和以 USDC 基本单位表示的确切金额(500000 = 0.50 USDC,6 位小数)。客户端在付款前验证这两者。
  • paymentRequestId - 将付款与此报价关联。适配器拒绝引用与报价路由不同的 paymentRequestId 的 X-Payment。
  • maxAgeSeconds - 付款必须多新。超过此窗口的付款将被拒绝,调用者必须再次付款。

x402 是机器对机器:一个 x402 识别的客户端读取 accepts,在链上支付所选要求,然后使用适配器验证的 X-Payment 头重新发出请求。一个不支持 x402 的客户端只会接收到 402 并没有结果,这是正确的结果(调用未支付)。在此流程中没有托管结账页面;支付由调用者的钱包以编程方式结算。

适配器模式

一个定价表。三种语言。相同的形状。

您安装一个适配器,并为其提供一个按 METHOD 加路径键入的定价表。它仅限制您列出的路由;您的处理程序从未看到未支付的调用,因为在运行时,X-Payment 头已经过验证。形状在 Python、TypeScript 和 Go 中是相同的 - X-Payment 电缆格式相同,因此 Go 服务器接受由 Python 客户端构建的头。

Python (Flask)
from flask import Flask
from blockchain0x import Client
from blockchain0x_x402.server import x402_before_request_factory, PricingEntry

sdk = Client()  # reads BLOCKCHAIN0X_API_KEY
app = Flask(__name__)

# Only routes named in the pricing table are gated.
app.before_request(x402_before_request_factory(
    sdk=sdk,
    pricing={
        "POST /api/expensive-operation": PricingEntry(
            amount_usdc="0.50",
            pay_to_address="0xYourAgentWalletAddress",
            payment_request_id="pr_demo",
        ),
    },
))

@app.route("/api/expensive-operation", methods=["POST"])
def expensive_operation():
    return run_the_work()  # only runs after X-Payment verifies
类型脚本(快速)
import express from "express";
import { createClient } from "@blockchain0x/node";
import { createX402Middleware } from "@blockchain0x/x402/server/express";

const sdk = createClient({ apiKey: process.env.BLOCKCHAIN0X_API_KEY! });
const app = express();

// Only routes named in the pricing table are gated.
app.use(createX402Middleware({
  sdk,
  pricing: {
    "POST /api/expensive-operation": {
      amountUsdc: "0.50",
      payToAddress: "0xYourAgentWalletAddress",
      paymentRequestId: "pr_demo",
    },
  },
}));

app.post("/api/expensive-operation", async (req, res) => {
  res.json(await runTheWork());  // req.x402Payment holds the verified payment
});
GO (NET/HTTP)
import (
  "net/http"
  x402 "tosh-labs/blockchain0x-x402-go"
)

func main() {
  pricing := map[string]x402.PricingEntry{
    "POST /api/expensive-operation": {
      AmountUSDC:       "0.50",
      PayToAddress:     "0xYourAgentWalletAddress",
      PaymentRequestID: "pr_demo",
    },
  }

  // serverSdk is your Blockchain0x Go SDK client.
  h := x402.Middleware(x402.ServerOptions{Sdk: serverSdk, Pricing: pricing})(
    http.HandlerFunc(expensiveOperation))
  http.Handle("/api/expensive-operation", h)
  http.ListenAndServe(":8080", nil)
}

我们为 Express 和 Fastify(Node)、ASGI(Starlette 和 FastAPI)以及 Flask(Python)和 Go 的 net/http 提供服务器适配器。对于其他框架,402 主体和 X-Payment 头是普通 HTTP,@blockchain0x/x402 中的线助手构建和解析 - 在您的堆栈的习惯用法中手动编写检查。Ruby 和 JVM x402 包已发布用于客户端。

与 STRIPE CHECKOUT 对比

何时使用每个工具。

Stripe是人类结账的合适工具。Blockchain0x是代理结账的合适工具。它们解决不同的问题,并且经常并排放置在同一API上。

维度Blockchain0xStripe 结账
买家任何 HTTP 客户端(人或 AI 代理)在浏览器上的人类
付款前需要身份验证不 - 第一次调用返回402,带有支付要求是的 - 电子邮件 + 卡片表单
结算速度5秒(Base上的USDC)2-7天(卡网络)
退单风险无(USDC是最终的)最长120天的退款窗口
按交易成本经济学每次调用费用为$0.01-$0.10(基础燃气费 + 我们的费用)卡费使得低于 $1 的交易不经济
退款手动 - 你的代码将USDC发送回付款地址通过 Stripe 仪表板自动化
国际支持相同的钱包,任何国家,无需额外配置按国家许可、货币转换、区域规则
最佳适用程序化代理驱动的API消费人驱动的结账(SaaS注册,电子商务)

大多数 API 提供商采用的模式:将 Stripe 保留用于人类注册流程(您的仪表板,您的订阅产品页面);在 API 边缘添加 Blockchain0x 以进行程序化代理访问。x402 适配器仅限制您放入其定价表中的路由,因此您的人类、Stripe 认证的路由不会受到影响。将代理指向定价路由,将人类指向其余路由,这样两个受众都由相同的 API 代码提供服务。

适合的计划

适合早期流量的专业版。当审计日志成为要求时选择商业版。

API提供商几乎总是从第一天开始选择Pro:免费版是只读的,而x402适配器需要API访问权限来验证和结算支付,以及webhook来跟踪它们。高流量API随着每月交易量的增加而进入商业领域。请查看定价页面以获取每个代理的确切费用和各个层级的位置。

  • Free:仅适合 dashboard 和元数据探索。为只读模式,因此 adapter 无法完成付款结算。
  • Pro:实时 API 变现的默认选择。完整 API 访问、webhooks、导出功能。
  • Business:当你需要用于合规的审计日志,或更高的 API 限流时。
查看完整定价
常见问题

五个 API 提供者问题。

我可以在同一 API 上同时运行 Stripe 和 Blockchain0x 吗?

是的,许多 API 提供商也这样做。模式:保持您现有的基于 Stripe 的人工注册流程,并仅在 x402 定价表中列出面向代理的路由。适配器正好限制这些路由;表中未列出的所有内容(包括您的 Stripe 认证客户调用的路由)都直接通过,不受影响。如果您想要一个单一的路由来服务两者,请在处理程序中检查您自己的 API 密钥,并为经过身份验证的调用者跳过定价路径。两个受众都能得到他们想要的,而不会阻碍彼此的路径。

如果AI代理支付后退出,然后再尝试调用,会发生什么?

支付在链上仍然有效;它只是未被使用。代理的钱包显示成功的 USDC 转账到您的地址。从代理的角度来看,它失去了 USDC;从您的角度来看,您获得了未执行调用的支付。这在实践中是罕见的(x402 客户端在支付后立即重试),但如果您想要防御性,您可以跟踪未产生完成调用的已验证支付,并使用 payments.create 将 USDC 退回给您自己,支付原始付款人地址。没有单独的退款端点 - 退款只是朝相反方向的支付。

我如何对我的API和价格变更进行版本控制?

定价表中的每个条目都是按路由计算的,因此不同的路由可以收取不同的价格。对于版本控制,推荐的模式是将 v2 端点与 v1 端点一起公开,并将新价格作为新的定价表条目;客户在 v2 路由的第一次 402 响应中看到新金额并相应支付。在稳定路由上突然提高价格是不良的协议公民行为;我们建议弃用旧路由并提供指向新路由的新价格的 410 Gone。

可观察性是什么样的 - 日志、指标、警报?

每笔支付都会出现在 Blockchain0x 仪表板上,包含付款钱包、金额和时间戳,并且相同的数据会到达您的 payment.received webhook,以便您可以将其流入 Datadog、Splunk 或您自己的日志堆栈。适配器在您的服务器内部运行,因此请求级信号(引用了哪个路由、您返回的每个 402、您验证的每个 X-Payment)都是您记录并以您堆栈使用的任何格式发出的指标。对明显的情况设置警报:402 响应的突然激增,或验证支付率的下降。

关于监管问题 - 如果我这样做,我算不算货币服务业务?

可能不行,但这取决于具体的司法管辖区,我们不是您的律师。原因是:您是为提供的服务收取费用,而不是在第三方之间转移资金(这在美国是 MSB 状态的触发条件)。USDC 在大多数司法管辖区被视为支付稳定币。您确实需要对美元等值收入缴税;我们会生成您所需的记录。如果您在高交易量的 B2B 环境中运营,或在具有严格加密规则的司法管辖区(德国、新加坡的某些形态),请在启用生产流量之前获取具体的法律建议。我们可以将您推荐给为以前客户做过这项工作的公司。

让代理为您的API付款。

添加一个路由到定价表并挂载适配器。Stripe为人类保留。两个受众都得到服务。