AIエージェントにAPIを販売します。
AIエージェントはクレジットカードフォームを記入できません。彼らはUSDCで支払うことができます。Blockchain0xはその1つのAPI呼び出しを行います。
あなたのAPIは人間のために設計されました。あなたの呼び出し元は今やエージェントです。
次の10年間のAPI収益は、人間のサインアップからは生まれません。ユーザーの代わりにAPIを呼び出すAIエージェントから生まれ、しばしばプログラム的に、そして人間が介在しない状態で行われます。これらのエージェントは、あなたの既存のチェックアウトを使用できません。クレジットカードフォームを記入することも、アカウントを作成することも、確認メールをクリックすることも、パスワードを記憶することもできません。
彼らができることは、402 Payment Requiredレスポンスを読み取り、JSONボディからUSDCの金額と受取人を解析し、Baseで支払い、支払いの証明を持って呼び出しを再発行することです。これがエージェント駆動のAPI商取引の全体の形です。コストモデル(ステーブルコインでの呼び出しごとの請求)は、カードベースのサブスクリプションよりもエージェントの使用形状に適しています:カードは$1未満の取引に失敗し、BaseのUSDCはガス代でセント単位のコストがかかります。チャージバックは機械間では発生しません。
Blockchain0xは橋です。料金表に請求したいルートをリストし、x402アダプタをマウントします。未払いの呼び出しが価格設定されたルートにヒットすると、アダプタは支払うべき内容を正確に説明する402を返します。エージェントはBaseで支払い、X-Paymentヘッダーで再試行します。アダプタはそれを検証し、あなたのハンドラが実行されます。あなたはUSDCを集め、以前と同様にAPIを実行します。ビジネスロジックに変更はありません。請求レイヤーは並行して存在します。
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.
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に2つの要件をリストすることで両方のネットワークを引用できます。
- payToAddress / amountWeiUsdc - 受取人のウォレットとUSDC基本単位での正確な金額(500000 = 0.50 USDC、6桁)。クライアントは支払い前に両方を確認します。
- paymentRequestId - この見積もりに支払いを結びつけます。アダプターは、引用されたルートとは異なるpaymentRequestIdを参照するX-Paymentを拒否します。
- maxAgeSeconds - 支払いがどれくらい新鮮でなければならないか。このウィンドウより古い支払いは拒否され、呼び出し元は再度支払う必要があります。
x402は機械対機械です:x402を認識したクライアントはacceptsを読み取り、選択した要件をオンチェーンで支払い、その後、アダプターが検証するX-Paymentヘッダーでリクエストを再発行します。x402を理解しないクライアントは単に402を受け取り、結果は得られません。これは正しい結果です(呼び出しは支払われていません)。このフローにはホストされたチェックアウトページはありません。支払いは呼び出し元のウォレットによってプログラム的に決済されます。
1つの価格表。3つの言語。同じ形状。
1つのアダプターをマウントし、METHODとパスでキー付けされた価格表を提供します。それはリストしたルートのみをゲートします。ハンドラーは未払いの呼び出しを決して見ません。なぜなら、X-Paymentヘッダーがすでに検証されているからです。形状はPython、TypeScript、Goの間で同一です - X-Paymentワイヤフォーマットは同じであるため、GoサーバーはPythonクライアントによって構築されたヘッダーを受け入れます。
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 verifiesimport 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
});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は人間のチェックアウトに適したツールです。Blockchain0xはエージェントのチェックアウトに適したツールです。彼らは異なる問題を解決し、同じAPIでしばしば並んでいます。
| 次元 | Blockchain0x | Stripe Checkout |
|---|---|---|
| バイヤー | 任意のHTTPクライアント(人間またはAIエージェント) | ブラウザの前の人間 |
| 支払い前に認証が必要です | いいえ - 最初の呼び出しは支払い要件を伴う402を返します | はい - メール + カードフォーム |
| 決済速度 | 5秒(Base上のUSDC) | 2-7日(カードネットワーク) |
| チャージバックリスク | なし (USDCは最終的です) | 最大120日間のチャージバックウィンドウ |
| 取引ごとのコスト経済学 | $0.01-$0.10のコールあたりで動作します(Baseガス + 私たちの手数料) | カード手数料により、$1未満の取引が非経済的になります |
| 返金 | 手動 - あなたのコードはUSDCを支払い元アドレスに返します | Stripeダッシュボードを通じて自動化されています |
| 国際サポート | 同じウォレット、どの国でも、追加の設定は不要 | 国ごとのライセンス、通貨換算、地域ルール |
| 最適な用途 | プログラムによるエージェント駆動のAPI消費 | 人間主導のチェックアウト (SaaSサインアップ、eコマース) |
ほとんどのAPIプロバイダーが採用するパターン:人間のサインアップフロー(あなたのダッシュボード、あなたのサブスクリプション製品ページ)のためにStripeを維持し、プログラム的なエージェントアクセスのためにAPIエッジにBlockchain0xを追加します。x402アダプタは、価格表に記載されたルートのみをゲートしますので、人間のStripe認証されたルートは影響を受けません。エージェントを価格設定されたルートに向け、人間を残りに向け、両方のオーディエンスが同じAPIコードでサービスを受けます。
早期のトラフィックにはプロ。監査ログが必要になるとビジネス。
APIプロバイダーはほぼ常に初日からProで始まります:Freeは読み取り専用であり、x402アダプタは支払いを確認し、決済するためにAPIアクセスが必要で、ウェブフックでそれらを追跡します。トラフィックの多いAPIは、月間ボリュームが増加するにつれてBusinessの領域に入ります。正確なエージェントごとのコストとティアの位置については、料金ページを参照してください。
- Free: ダッシュボードとメタデータ確認専用です。読み取り専用のため、アダプターは決済を実行できません。
- Pro: 実運用のAPIマネタイズ向けの標準プラン。APIへのフルアクセス、webhooks、エクスポートに対応。
- Business: コンプライアンスのために監査ログが必要な場合、または API レート制限を引き上げたい場合。