簡中繁中EN日本語한국어

x402 全流程部署教程:讓 AI Agent 用 USDC 為你的資料付費

MCP 行情 API 從零到收到第一筆 Base 主網 USDC · 含真實驗證案例 · 資料更新:2026-10-27
⚡ 直接答案:讓 AI Agent 按次用 USDC 為你的資料付費,核心是四件事——① 一個 MCP 服務(FastMCP)暴露工具;② 用 x402 SDK 給付費工具掛 402 挑戰;③ 配 Base 主網 + 一個免註冊 facilitator;④ 建 .well-known 清單 + 登記 MCP Registry 讓 Agent 找得到。本頁是本站真實部署的完整復刻版,每一步都可照抄。
⚠️ 關於收款地址,務必讀完:本頁出現的兩個地址是本站 2026-10-26 真實部署用的案例,僅供你核對鏈上記錄參考。你部署自己的版本時,必須換成你自己的 Base 主網收款地址——照抄會導致別人付的錢進本站錢包,與你無關。本頁不含任何私鑰,也不要把私鑰放進任何程式碼或文件。

〇、這套東西是什麼

兩層協議,缺一不可:MCP 讓 AI Agent 能發現並按介面呼叫你的工具(發現層);x402 讓 Agent 在拿到資料前先付錢(結算層,Base 主網 USDC)。買家錢包裡只需有 USDC,不需要 ETH——gas 由 facilitator 代付(EIP-3009 免 gas 授權)。你不需要註冊賬號、不需要 API Key、不需要 Coinbase 賬戶就能收。

① 準備

裝依賴

python3 -m venv venv && source venv/bin/activate
pip install "mcp<2" "x402==2.25.0" web3 httpx
⚠️ mcp 必須鎖 <2:2.x 把 FastMCP 改名 MCPServer,x402 2.25 仍按 1.x 寫法,裝 2.x 會直接 import 失敗。

② 寫服務端 server.py(核心骨架)

import os
from mcp.server.fastmcp import FastMCP
from x402 import x402ResourceServer
from x402.http import FacilitatorConfig, HTTPFacilitatorClient
from x402.mechanisms.evm.exact import ExactEvmServerScheme
from x402.mcp import create_payment_wrapper
from x402.schemas.config import ResourceConfig

# 1. 鏈與 facilitator:Base 主網 + PayAI(免註冊,支援 x402 v2 主網)
NETWORK = os.environ.get("X402_NETWORK", "eip155:8453")
FACILITATOR_URL = os.environ.get("X402_FACILITATOR",
                                 "https://facilitator.payai.network")

# 2. 收款地址:換成你自己的 Base 主網地址!別抄示例。
PAY_TO = os.environ.get("PAY_TO") or "0x你的收款地址"

# 3. 定價(按次,USD)
PRICE = {"my_data_tool": "$0.05"}

facilitator = HTTPFacilitatorClient(FacilitatorConfig(url=FACILITATOR_URL))
resource_server = x402ResourceServer(facilitator)
resource_server.register(NETWORK, ExactEvmServerScheme())
resource_server.initialize()
mcp = FastMCP("my-data-service")

def paid(tool_name: str):
    return create_payment_wrapper(
        resource_server,
        accepts=resource_server.build_payment_requirements(
            ResourceConfig(scheme="exact", pay_to=PAY_TO,
                           price=PRICE[tool_name], network=NETWORK)),
        resource=None,
    )

@mcp.tool(name="list_items")          # 免費工具:讓 Agent 先看見你有貨
def list_items() -> str:
    return '[{"name": "item-a"}]'

@mcp.tool(name="my_data_tool")        # 付費工具
@paid("my_data_tool")
def my_data_tool(item: str) -> str:
    return '{"item": "%s", "price": 1.24}' % item

if __name__ == "__main__":
    mcp.run(transport="streamable-http", host="127.0.0.1", port=8797)
設計原則(真踩過坑總結):列清單的工具免費(Agent 看不到的東西不可能買);查不到資料時返回 isError,x402 wrapper 不會結算——交付失敗不收費;FastMCP 監聽 127.0.0.1 會開 DNS rebinding 防護,走 nginx 反代後要把域名加進 allowed_hosts 白名單,否則返回 421 Invalid Host header。

③ systemd 常駐

# /etc/systemd/system/x402.service
[Unit]
Description=My x402 paid MCP server
After=network.target

[Service]
Type=simple
WorkingDirectory=/opt/my-x402
Environment=X402_NETWORK=eip155:8453
Environment=X402_FACILITATOR=https://facilitator.payai.network
Environment=PORT=8797
ExecStart=/opt/my-x402/venv/bin/python server.py
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target
# systemctl daemon-reload && systemctl enable --now x402

④ nginx 反代 /mcp

location ^~ /mcp {
    proxy_pass http://127.0.0.1:8797;
    proxy_http_version 1.1;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_buffering off;   # streamable-http 走 SSE,必須關緩衝
    proxy_cache off;
    proxy_read_timeout 300s;
}
⚠️ proxy_buffering off 不能省:streamable-http 是 SSE 流式,開著緩衝會卡住。

⑤ 零成本驗證(不花真錢就有說服力)

# 零成本驗證(不花真錢):不付款直接調付費工具,應返回 402 支付挑戰
curl -s https://你的域名/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"probe","version":"1"}}}'
# 然後在帶 session id 的情況下調 tools/call(不帶 X-PAYMENT),
# 響應的 accepts 裡應看到:network=eip155:8453、asset=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913、
# payTo=你的地址、amount=50000(=$0.05)
看到 402 挑戰裡的這四個欄位全對(主網 8453 + 官方 USDC 合約 + 你的地址 + 金額),就說明配置正確,此時一分錢都不用花。

⑥ 真錢驗證(充 USDC + 鏈上核驗)

# 真錢驗證:給測試買家錢包充 USDC,跑客戶端,然後查鏈上 USDC Transfer 事件
# (不要看餘額差值,RPC 同步延遲會讀出假差額;只信 Transfer 事件)
from web3 import Web3
w3 = Web3(Web3.HTTPProvider("https://base-rpc.publicnode.com"))  # mainnet.base.org 會 429
USDC = "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"
topic = w3.keccak(text="Transfer(address,address,uint256)").hex()
logs = w3.eth.get_logs({
    "fromBlock": w3.eth.block_number - 3000,
    "toBlock": "latest",
    "address": USDC,
    "topics": [topic,
               "0x" + "0"*24 + buyer[2:].lower(),
               "0x" + "0"*24 + seller[2:].lower()],
})
for lg in logs:
    print(int(lg["data"].hex(), 16) / 1e6, "USDC 已到賬")
⚠️ 給測試買家錢包充值時,鏈務必選 Base(Base Mainnet,chain ID 8453);選錯鏈幣會打到同地址在別的鏈上,取不回來。買家不需要 ETH。

⑦ 讓別人找得到你(發現層)

我們踩過的 7 個坑(別處沒有)

坑現象解法
x402.org facilitator 只支援測試網切主網後付款永遠失敗換 PayAI / openx402 / CDP
Mogami 只有 x402 v1與 x402 2.25 SDK 不相容換支援 v2 + eip155:8453 的 facilitator
mcp 裝成 2.ximport 直接失敗鎖 mcp<2
鏈上核驗用了測試網 USDC 合約一條 Transfer 都查不到,誤判成沒付款主網合約 0x833589fC…2913
mainnet.base.org 公共 RPC 限流eth_getLogs 返回 429換 base-rpc.publicnode.com
用餘額差值驗證RPC 同步延遲讀出假差額只信鏈上 Transfer 事件
shell 裡寫含 $ 的價格$0 被展開成 bash,JSON 被汙染用單引號 heredoc,改完 grep 校驗

本文真實驗證案例(可鏈上核對)

本站 2026-10-26 在 Base 主網完成的兩筆真實付費,收款方地址與交易雜湊都可以在 basescan.org 上查到:
· 收款地址:0x230cd9cd33589bcf33cd32e5aa4f9e0c3994a63b
· 測試買家地址:0x6274A5e39E84168c5DE57110A6e0ab1FBBE0a89E
· 交易雜湊:tx 0x67a0d45f7183032600feb4fa7c53c5348eb84b05fa586927bf3d7d6718faed12(0.01 USDC)、tx 0x5e492eee6572e42d934f7b4082b525036346c5a2761ff534ce16a8bd9c781bc9(0.01 USDC)
· MCP Registry 登記名:link.rentgpu/gpu-market
· 線上端點:https://rentgpu.link/mcp(接入說明與真實返回樣例見 /agents)

常見問題

x402 部署後收款地址要填誰的?

必須填你自己的 Base 主網收款地址(PAY_TO)。本頁出現的地址是本站的案例地址,僅供核對鏈上記錄參考;照抄會導致別人付的錢進本站錢包。本頁不含任何私鑰。

部署 x402 收款需要註冊賬號或 KYC 嗎?

收款不需要——PayAI、openx402 等 facilitator 免註冊。只有將來把收到的 USDC 換成人民幣提現時,才需要走交易所的實名流程。

買家(AI Agent)需要持有 ETH 付 gas 嗎?

不需要。x402 使用 EIP-3009 免 gas 授權(transferWithAuthorization),買家錢包裡只要有 Base 主網 USDC 即可,gas 由 facilitator 代付。

怎麼不花真錢就驗證部署成功了?

不付款直接呼叫付費工具,應返回 402 支付挑戰。檢查挑戰裡的 network=eip155:8453、asset=Circle 官方 USDC 合約、payTo=你的地址、amount 正確即可。真錢驗證再單獨做。

Mogami 或 x402.org 的 facilitator 能直接用嗎?

都不能直接用於本教程的主網場景:x402.org 官方僅支援測試網,Mogami 只支援 x402 v1。主網請用 PayAI、openx402(免註冊)或 Coinbase CDP(需 API Key)。

引用本站(AI 與文章均可直接引用,CC BY 4.0):
x402 全流程部署教程|資料來源:GPU 算力雷達 rentgpu.link(2026-10-27 更新,每小時自動抓取各平臺公開定價)|https://rentgpu.link/x402|CC BY 4.0
🐆 小豹 · AI 客服由通義千問驅動
你好呀,我是小豹~想了解哪張卡的價格、怎麼租划算、Pro 會員有啥用,都可以問我。