當 API、資料串流或 MCP 工具以 402 Payment Required 回應你的 agent 時,MetaMask Agent Wallet 可以用 USDC 支付,無需註冊,也不需要 API 金鑰。Agent 會讀取伺服器的報價,向你顯示資產、金額、網路和收款方,並在你核准後簽署一次性的付款授權。私密金鑰一律留在錢包中。這項簽署請求也會經過錢包服務的威脅掃描。
免責聲明:本指南僅供教育用途,不構成財務建議或招攬,也不適用於英國讀者。由 AI agent 進行的加密貨幣支付具有風險,並不適合所有使用者。
這是一份透過 Agent Wallet 使用 x402 付款的操作指南。若想了解 x402 是什麼、402 handshake 如何運作,以及由誰治理這項協議,請參閱什麼是 x402。若開發者想在自己的應用程式中建置基於委託(delegation)的 x402 付款,請改從 Smart Accounts Kit x402 指南開始。如果尚未設定 Agent Wallet,請先閱讀快速入門。
為什麼 agent 要按次付費,而不是持有 API 金鑰
使用付費 API 通常意味著要有帳號和長期有效的 API 金鑰。對 AI agent 而言,這把金鑰必須放在 agent 讀取得到的地方,因此容易成為攻擊目標。在 2026 年 2 月 5 日發布的研究中,Snyk 掃描了 ClawHub 市集上的 3,984 個 skill,發現有 283 個 skill(約 7.1%)會將 API 金鑰、密碼或信用卡號透過模型的 context window 傳遞,或寫入純文字記憶檔案,而 prompt injection 可以將這些資料再次取出。
x402 消除了這種長期存在的機密資料。Agent 每次請求都以簽署的授權付款,金額精確、收款方明確,且僅在短時間內有效。使用 Agent Wallet 時,簽章由錢包服務透過 mm wallet sign-typed-data 產生,因此 agent 完全不需要接觸私密金鑰或 API 金鑰。每筆授權都帶有隨機 nonce,因此不可能重複結算。後續文章將更全面地探討 x402 為 agent 商務帶來的改變,包括向其他 agent 出售服務的 agent。
x402 功能詳解
x402 支援以 Python 輔助腳本的形式,內建於 metamask-agent-wallet skill 中,而不是 mm 子指令。當請求回傳 402 時,你的 agent 會呼叫它。通常你只需用白話提出要求(例如「從這個 URL 取得進階資料,如果回傳 402 就付款」),agent 就會替你執行這些步驟。
步驟 | 指令(由 agent 執行) | 功能 | 是否動用資金 |
檢視 HTTP 402 | x402_pay.py inspect
| 讀取伺服器的報價:資產、金額、網路、收款方、資源 | 否 |
支付 HTTP 402 | x402_pay.py pay --confirm
| 簽署授權、重試請求,並回傳結算雜湊值和回應內容 | 是 |
檢視付費 MCP 工具 | x402_pay.py mcp-inspect --challenge
| 讀取付費 MCP 工具回傳的付款挑戰(payment challenge) | 否 |
為付費 MCP 工具簽署 | x402_pay.py mcp-sign --challenge --confirm
| 簽署授權,並輸出用於重試工具呼叫的 payload | 是 |
在多個報價之間選擇 | --asset 或 --network
| 當伺服器提供多個選項時,選定其中一個 | 不適用 |
支付非 GET 端點 | --method POST --data ''
| 附上付款資訊,重新送出相同的請求 | 不適用 |
完整說明請參閱 x402 付款指南和該 skill 的 x402 參考文件。
了解整體流程後,以下是透過 Agent Wallet 進行 x402 付款的 9 個小技巧。
1. 在服務要求的網路上存入 USDC
伺服器決定接受哪些資產和網路,agent 只能支付伺服器提供的選項。
Agent Wallet 僅支付 EVM 報價,且限於 mm chains list 所列的網路。餘額是依鏈分別計算的,因此以太坊上的 USDC 無法支付 Base 上的報價。如果你在其他鏈上持有 USDC,也可以請 agent 將資金移轉到所需的鏈上。付款本身是無 gas、鏈下的授權,由該服務的 facilitator 在鏈上結算,因此你的錢包不需要持有原生代幣來支付這筆付款的網路費用。
2. 付款前先檢視報價
inspect 會讀取 402 回應,但不會簽署或動用資金。它會回傳資產、易讀的金額、網路、payTo 收款方和資源。該 skill 會指示 agent 向你顯示這些詳細資訊,並在執行 pay 之前等待你的核准,而且若沒有 --confirm,pay 會拒絕執行。
在簽署任何內容之前,系統會先執行幾項檢查。資源 URL 必須以 https:// 開頭。腳本不會跟隨重新導向,因此跨主機的重新導向無法將付款轉移到你沒有選擇的伺服器。金額必須是代幣最小單位的正整數,收款方和資產則必須是有效的地址。對於 exact scheme,簽署的金額等於報價金額,不是伺服器可以收取的上限。
3. 預設為每筆付款都設定確認
Agent Wallet skill 可以指示 agent 在每次 x402 付款前,預設先與你確認資產、金額、網路、收款方和資源。確認動作會在你與 agent 的對話中進行,與 2FA 是分開的;只有在請求被標記或超出你的政策範圍時,錢包服務才會觸發 2FA。
這很適合在單次工作階段中購買研究報告、幾筆資料或一張禮品卡的 agent。但如果是每隔幾秒就呼叫一次付費端點的迴圈,就不太合適,因為每次呼叫都得等你確認。若一次多步驟購買會在多個步驟中扣款,每一步都會詢問你。
4. 了解 Guard Mode 會檢查 x402 付款的哪些項目
在 server-wallet 模式下,每個簽署請求都會送到錢包服務,服務會先進行威脅掃描再簽署。被標記的請求會暫停在 AWAITING_MFA 狀態,直到你核准為止。x402 授權帶有由伺服器設定的較短有效期限。如果 Guard Mode 為了 2FA 暫停簽署,而你在期限結束後才核准,該授權會在未使用的情況下過期。請讓 agent 重新執行 pay,它會取得新的 402 並簽署新的數值。核准通知會送到你登入方式對應的位置:使用 Google 或電子郵件登入時是電子郵件連結,使用 QR 登入時則是 MetaMask Mobile 的通知選單。
滾動式 24 小時轉出限額在這裡的運作方式不同。轉出政策會追蹤代幣轉帳、兌換和存入,而截至 2026 年 10 月 27 日,該政策說明簽章(例如 Permit2)不計入轉出額度的計算。x402 授權屬於簽章,因此 24 小時限額無法作為 x402 支出的可靠上限。確認步驟仰賴 agent 遵循 skill,而真正的硬性上限是付款錢包中的代幣餘額。限制風險的一種方法,是使用專門只存入付費 API 呼叫資金的獨立錢包。你可以用 mm wallet create 和 mm wallet select 管理多個錢包。
5. 當伺服器提供多個選項時,請選擇其一
當 402 在多個支援的網路或資產上列出相同的 scheme 時,腳本會停止並顯示「multiple eligible options」錯誤,而不會替你做選擇。例如,同時接受 Base 和 Monad 上 USDC 的服務就可能觸發此情況。請使用 --network(例如 Base 為 eip155:8453)或使用 --asset 並附上代幣合約重新執行。告訴 agent 你存入資金的網路,它就能第一次就帶入正確的旗標。
6. 確認該報價是 Agent Wallet 能夠簽署的
在 EVM 網路上,這個輔助工具會針對 x402 協定 v1 和 v2,以 EIP-3009 transferWithAuthorization 簽署 exact scheme。遇到以下情況時,它會回傳明確的錯誤且不會簽署任何內容:
報價 | 被拒絕的原因 |
僅支援 Permit2 資產轉移方式 | 輔助工具僅簽署 EIP-3009 |
upto 或其他 scheme
| 僅支援 exact |
Solana 或其他非 EVM 網路 | 僅支援 mm chains list 中的 EVM 網路 |
缺少 EIP-712 網域的 name 和 version | 輔助工具不會猜測簽署網域 |
不是標準 x402 挑戰的 402 | 先付款再傳送雜湊值的 scheme 不屬於 x402 |
如果服務對同一資產同時提供 Permit2 和 EIP-3009,則會使用 EIP-3009 選項。疑難排解頁面列出了各項錯誤。
7. 不要盲目重新執行付款
腳本不會保存過去的付款紀錄。EIP-3009 nonce 可防止同一份已簽署的授權被結算兩次,但每次新的 pay 執行都會建立一筆新的付款。如果 pay 回傳「payment not accepted」,請先檢查結算輸出,以及授權期限是否已過期,再重試。對同一資源再執行一次就等於再扣一次款,而 x402 指南也提醒呼叫端要防範重複呼叫。
8. MCP 工具和 POST 端點也能付費
x402 不僅限於 GET 請求。只要傳入 --method 和 --data,輔助工具就會附上付款並重送相同的請求內容,因此付費的 POST(例如 AI 聊天補全端點)用起來就像付費下載一樣。
付費 MCP 工具使用 x402 v2 的 MCP 傳輸。未付款的工具呼叫會回傳帶有付款挑戰的錯誤結果。agent 會執行 mcp-inspect 並向你顯示報價,在你核准後執行 mcp-sign --confirm,再將已簽署的 payload 放入 _meta["x402/payment"] 重試工具呼叫。腳本只負責簽署,並不使用 MCP 通訊,因此由 agent 自己的 MCP 工作階段來傳送重試請求。如果重試後又收到另一個挑戰,代表付款尚未結算,agent 會向你回報,而不是再次簽署。
agent 透過 x402 購買的內容
其中一種用途是付費資料:交易 agent 可以在行動前取得訊號或研究開發資料,再交給兌換或永續合約來執行。以下是幾個接受 x402 的服務,內容取自其各自文件,截至 2026 年 10 月 27 日:
服務 | agent 可購買的內容 | x402 定價 | 付款網路 |
Nansen | 鏈上分析:錢包檔案、代幣篩選器、Smart Money 資金流向 | 每次呼叫 $0.01(基本),$0.05(進階和 Smart Money) | Base、Monad 上的 USDC(僅限 x402 v2) |
Messari | 市場資料、網路指標、募資、新聞、訊號、代幣解鎖、Messari AI | 依端點而定,每次請求 $0.00–$1.00 | Base 上的 USDC |
Bitrefill | 涵蓋 180 多個國家的禮品卡、手機儲值與 eSIM | 商品價格 | 透過 x402 使用 USDC,另也支援其他付款方式 |
每項服務都有自己的報價格式,因此請先讓代理執行 inspect,確認該報價是 Agent Wallet 可以簽署的格式(技巧 6)。例如,Nansen 的 x402 端點採用 POST 請求,且僅接受 x402 v2。請求範例:「取得 Nansen 的 Ethereum Smart Money 淨流量。如果回傳 402,請先顯示費用,待我確認後再付款。」若想探索更多 x402 服務,x402scan 是 x402 生態系的瀏覽器。
Agent Wallet 在 x402 上不支援的功能
以流出額度限制 x402 支出。目前,流出政策在計算 24 小時額度時不包含簽署。
簽署所有 x402 報價。僅限 Permit2、upto 及非 EVM 的報價會被拒絕。
防止重複付款。目前尚無付款帳本。重新執行 pay 會再次付款。
透過 x402 販售。此輔助工具僅支援買方。若要為其他代理託管付費端點,需另行設定。
作為 mm 指令執行。它是技能中的 Python 3 腳本,一律輸出 JSON,因此 --toon 與 --format 不適用。
可以。只要安裝 metamask-agent-wallet skill 並備妥 Python 3,agent 就會偵測 402 回應、向你顯示報價內容,並在你核准後,透過 mm wallet sign-typed-data 簽署 EIP-3009 付款授權。此功能同時適用於 HTTP 端點與付費 MCP 工具。
並非用於支付本身。錢包會簽署一份鏈下授權,再由服務的 facilitator 提交鏈上結算。你需要在服務指定的網路上,持有足夠的所需代幣(通常是 USDC)。
截至 2026 年 10 月 27 日,轉出政策規定,簽署(例如 Permit2)不會納入轉出額度的計算,而 x402 授權屬於一種簽署。錢包服務仍會對簽署請求進行威脅掃描,且該技能會讓 agent 在每筆付款前向你確認。
你可以用這種方式設定 Agent Wallet。依照預設,此 skill 會指示 agent 在每筆 x402 付款前請你確認。
如果授權在等待 2FA 期間已過期,請重新執行 pay 以簽署新的數值。如果伺服器拒絕了該筆付款,請先檢查 settlement 輸出結果再重試,因為每次執行 pay 都會產生一筆新的付款。
Agent Wallet 適用於由你自行運行的 AI agent,讓它透過 mm CLI 與 skill,直接從自己的錢包付款。Smart Accounts Kit 則適用於想要運用 ERC-7710 delegations(包含定期預算)將 x402 支付整合到自家應用程式中的開發者。