x402:AI 代理如何在沒有帳號的情況下付費呼叫 API

網路上的每一個 API,都是透過表單賣出去的。

你打開定價頁,輸入一個 email,到信箱點確認,貼上信用卡,複製一組金鑰,再把它放進環境變數。四分鐘搞定,運作良好——因為你是人類,而人類有信箱、有卡片、有耐心。

現在想像一個正在研究迴圈中途的 AI 代理。它需要把一個網頁轉成 Markdown,就是現在,才能完成交付給它的任務。它收不到確認信。它沒有卡片。它也不能等一個人類醒來幫它貼上金鑰。

於是它做了唯一還能做的事:放棄,換別家。

x402 補的正是這個缺口——而從今天起,Minibase API 已在正式環境中回應它。

HTTP 早在 1997 年就想過這件事

狀態碼 402 Payment Required 從一開始就寫在 HTTP 規格裡,標註著「保留供未來使用」。將近三十年,它一直是 RFC 裡的一則笑話:沒有人能實作的狀態碼,因為網路沒有辦法在一次請求之內移動小額金錢。

x402 是終於用上它的協定。整個流程只有三步:

  1. 用戶端不帶任何憑證呼叫你的端點。
  2. 伺服器不回 401 Unauthorized,而是回 402 Payment Required,並附上機器可讀的付款條件:多少錢、用什麼資產、在哪條網路、付到哪個位址。
  3. 用戶端付款,帶著付款證明重送請求。伺服器驗證、結算,然後回傳內容。

不用帳號、不用金鑰、不用後台。整場協商在兩次 HTTP 來回中完成,格式是另一支程式讀得懂的。

在真實端點上長什麼樣

什麼都不帶,直接呼叫我們的轉換端點:

curl -i -X POST https://api.minibase.md/v1/convert \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com/article"}'

你會拿到 402,條件以 base64 編碼放在 payment-required 標頭裡:

{
  "x402Version": 2,
  "accepts": [{
    "scheme": "exact",
    "network": "eip155:8453",
    "amount": "10000",
    "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "payTo": "0xfb8157a583e3050440301f418f5e890190222a5c",
    "maxTimeoutSeconds": 300
  }]
}

一個自主用戶端需要的資訊全在裡面。networkCAIP-2 識別碼,eip155:8453 就是 Base 主網。asset 是 USDC 合約。amount 是最小單位:USDC 有六位小數,所以 10000 等於一美分。payTo 是收款位址。

用戶端簽署一筆 USDC 轉帳,帶著付款重送請求,然後拿回它的 Markdown。人類介入程度:零。

沒人提的部分:你不需要持有加密貨幣

面對任何「接受穩定幣」的說法,最直接的反駁是:那你現在得經營一個錢包了。私鑰。保管。一筆用你的會計從沒看過的單位計價的餘額,而匯率在你睡覺時已經動過。

這些我們一樣都沒做,你也不需要做。上面 payload 裡的入金位址是 Stripe 發出的。款項在鏈上結算到該位址,Stripe 把每一筆記錄成一般的 PaymentIntent,並依照平常的排程以歐元撥款。

實際的結果是:這筆錢會出現在跟刷卡付款完全相同的後台、同一筆撥款、同一本帳上。沒有錢包要保護,不必逐張收據做外幣評價,年底也沒有第二套帳要對。穩定幣的部分是真的,同時從會計那一側看完全隱形。

兩件花掉我們時間的事

如果你要自己實作,以下是我們付過學費的兩個陷阱。

與 facilitator 的握手不是選配。 資源伺服器必須先問 facilitator 它實際結算哪些 scheme 與網路的組合,才有辦法報價。跳過這一步,每一次呼叫都會死在 Facilitator does not support exact on eip155:8453——這則訊息看起來像設定錯誤,實際上是少了一次網路往返。在主網上,這個 facilitator 是 Coinbase 的;公開測試網那一個不會結算真錢。

低於一美分的定價會安靜地毀掉你的帳。 我們的成本大約是每頁 0.002 美元,所以把 x402 這道門定在 0.002 美元看起來理所當然。並不是:PaymentIntent 以整數美分計價,任何低於一美分的金額會在鏈上結算完成,然後根本無法被記錄。錢進來了,卻沒有進任何一本帳。因此我們把這道免金鑰的門定在每次呼叫 0.01 美元——是量販費率的五倍,而不需帳號、不需承諾的單次付費完全撐得住這個價格。

該不該加?

先誠實面對量級:x402 不會在這一季取代你的訂閱收入。由代理發起的付款還很早期,用戶端工具還年輕,你的客戶絕大多數仍是拿著信用卡的人類。

但這裡的不對稱很少見。把門做出來只花了我們幾百行程式,而且它只對完全沒有憑證的呼叫生效——任何持有金鑰的人都會直接落回原本那條路徑,同樣的額度、同樣的方案。你已經在賣的東西,沒有任何一項被置於風險之中。

沒有這道門的失敗方式,是看不見的。一個沒有金鑰的呼叫撞上 401,不會留下痕跡:沒有註冊、沒有客服工單、分析報表上也不會多出一行。你永遠不會知道它來過。所以我們現在特地量測這件事——每一次無憑證呼叫都會被記錄,同時記下對方是否已經會說這個協定——因為「到底有沒有人在敲門?」才是決定這一切值不值得做的唯一問題。

如果代理要在開放的網路上買東西,它們需要一種不必經過註冊表單的付款方式。那種方式已經存在,自 1997 年起就躺在 HTTP 規格裡,接起來只需要一個下午。


試試看: 不帶任何憑證呼叫 POST https://api.minibase.md/v1/convert,然後讀 payment-required 標頭。比較想要金鑰?免費方案每月 1,000 頁,不需信用卡。給代理看的完整規格:minibase.md/api.md

Continue reading

準備好更智慧地儲存了嗎?

一鍵將任意網頁轉換為 Markdown。

新增到 Chrome