AI 에이전트에 API를 판매하세요.
AI 에이전트는 신용 카드 양식을 작성할 수 없습니다. 그들은 USDC로 결제할 수 있습니다. Blockchain0x는 그 하나의 API 호출을 수행합니다.
귀하의 API는 사람을 위해 설계되었습니다. 이제 귀하의 호출자는 에이전트입니다.
다음 10년간의 API 수익은 인간 가입에서 오지 않을 것입니다. 이는 AI 에이전트가 사용자 대신 API를 호출하는 데서 올 것이며, 종종 프로그래밍 방식으로 이루어지고 인간이 개입하지 않습니다. 이러한 에이전트는 기존 체크아웃을 사용할 수 없습니다. 신용 카드 양식을 작성할 수 없고, 계정을 생성할 수 없으며, 확인 이메일을 클릭할 수 없고, 비밀번호를 기억할 수 없습니다.
그들이 할 수 있는 것은 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에 두 가지 요구 사항을 나열하여 두 네트워크를 인용할 수 있습니다.
- 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 클라이언트가 구축한 헤더를 수용합니다.
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 헤더는 @blockchain0x/x402의 와이어 헬퍼가 생성하고 파싱하는 일반 HTTP입니다 - 스택의 관용구에 맞게 수동으로 검사를 작성하세요. Ruby 및 JVM x402 패키지는 클라이언트 측에 게시됩니다.
각 도구를 사용할 시점.
Stripe는 인간 체크아웃에 적합한 도구입니다. Blockchain0x는 에이전트 체크아웃에 적합한 도구입니다. 그들은 서로 다른 문제를 해결하며 자주 동일한 API에서 나란히 위치합니다.
| 차원 | Blockchain0x | Stripe 체크아웃 |
|---|---|---|
| 구매자 | 모든 HTTP 클라이언트(인간 또는 AI 에이전트) | 브라우저 앞의 인간 |
| 결제 전에 인증 필요 | 아니요 - 첫 호출은 결제 요구 사항과 함께 402를 반환합니다. | 예 - 이메일 + 카드 양식 |
| 정산 속도 | 5초 (Base의 USDC) | 2-7일 (카드 네트워크) |
| 차지백 위험 | 없음 (USDC는 최종적입니다) | 최대 120일의 차지백 기간 |
| 거래당 비용 경제학 | $0.01-$0.10의 호출당 요금 (Base 가스 + 당사 수수료) | 카드 수수료로 인해 $1 미만의 거래가 비경제적입니다. |
| 환불 | 수동 - 귀하의 코드는 USDC를 지불자 주소로 다시 보냅니다. | Stripe 대시보드를 통해 자동화됨 |
| 국제 지원 | 같은 지갑, 모든 국가, 추가 설정 없음 | 국가별 라이센스, 통화 변환, 지역 규칙 |
| 최고의 | 프로그래밍 방식의 에이전트 주도 API 소비 | 인간 주도의 체크아웃 (SaaS 가입, 전자상거래) |
대부분의 API 제공업체가 선택하는 패턴: 인간 가입 흐름(귀하의 대시보드, 귀하의 구독 제품 페이지)을 위해 Stripe를 유지하고, 프로그래밍 방식의 에이전트 액세스를 위해 API 엣지에 Blockchain0x를 추가합니다. x402 어댑터는 가격표에 넣은 경로만 차단하므로, 귀하의 인간 Stripe 인증 경로는 영향을 받지 않습니다. 에이전트를 가격이 매겨진 경로에 가리키고 인간을 나머지에 가리키면 두 청중 모두 동일한 API 코드로 제공됩니다.
초기 트래픽을 위한 프로. 감사 로그가 요구될 때 비즈니스.
API 제공자는 거의 항상 첫날부터 Pro로 시작합니다: 무료는 읽기 전용이며, x402 어댑터는 결제를 확인하고 정산하기 위해 API 접근이 필요하며, 웹후크를 통해 이를 추적합니다. 트래픽이 많은 API는 월별 볼륨이 증가함에 따라 비즈니스 영역으로 넘어갑니다. 정확한 에이전트당 비용과 계층 위치는 가격 페이지를 참조하십시오.
- Free: 대시보드와 메타데이터 탐색용으로만 유용합니다. 읽기 전용이므로 adapter가 결제를 정산할 수 없습니다.
- Pro: 실시간 API 수익화의 기본 선택. 전체 API 접근, webhooks, 내보내기 제공.
- Business: compliance를 위한 감사 로그가 필요하거나 더 높은 API rate limit이 필요할 때.