跳到内容

使用 MetaMask Agent Wallet 通过 x402 支付 API 费用的 8 个技巧

您的代理可通过 x402 协议以 USDC 支付付费 API、数据及 MCP 工具。以下是 MetaMask Agent Wallet 检查、审批和签署每笔交易的方式。

10 分钟
使用 MetaMask Agent Wallet 通过 x402 支付 API 费用的 8 个技巧

当 API、数据源或 MCP 工具向你的智能体返回 402 Payment Required 时,MetaMask Agent Wallet 可以使用 USDC 完成支付,无需注册,也不涉及 API 密钥。智能体会读取服务器的报价,向你展示资产、金额、网络和收款方,并在你批准后签署一次性支付授权。私钥始终保留在钱包中。签名请求也会经过钱包服务的威胁扫描。

免责声明:本指南仅供教育用途,不构成财务建议或招揽,也不面向英国受众。由 AI 智能体发起的加密货币支付存在风险,并不适合所有用户。

这是一份通过 Agent Wallet 使用 x402 支付的操作指南。如需了解 x402 是什么、402 握手如何运作以及由谁负责协议治理,请参阅什么是 x402。若开发者想在自己的应用中构建基于委托的 x402 支付,请先查看 Smart Accounts Kit x402 指南。如果尚未设置 Agent Wallet,请先阅读快速入门。

为什么智能体按调用付费,而不是持有 API 密钥

付费 API 通常意味着需要一个账户和一个长期有效的 API 密钥。对于 AI 智能体来说,这个密钥必须存放在智能体能够读取的地方,因此很容易成为攻击目标。在 2026 年 2 月 5 日发布的研究中,Snyk 扫描了 ClawHub 市场上的 3,984 个技能,发现其中 283 个(约 7.1%)会将 API 密钥、密码或银行卡号传入模型的上下文窗口,或写入明文记忆文件,而提示词注入可以将这些信息再次提取出来。

x402 消除了这种长期存在的密钥。智能体按每次请求付费,使用的是针对特定收款方、金额精确且仅在短时间内有效的签名授权。借助 Agent Wallet,该签名由钱包服务通过 mm wallet sign-typed-data 生成,因此智能体无需接触私钥或 API 密钥。每个授权都带有随机 nonce,因此不可能被重复结算。关于 x402 为智能体商业带来哪些变化(包括向其他智能体出售服务的智能体),我们将在后续文章中进行更全面的探讨。

x402 功能详解

x402 支持以 Python 辅助脚本的形式内置于 metamask-agent-wallet 技能中,而不是 mm 子命令。当请求返回 402 时,你的智能体会调用它。通常你只需用日常语言提出要求(例如“从这个 URL 获取高级数据,如果返回 402 就付款”),智能体就会为你执行这些步骤。

步骤

命令(由智能体运行)

作用

是否花费资金

检查 HTTP 402

x402_pay.py inspect

读取服务器的报价:资产、金额、网络、收款方、资源

否

支付 HTTP 402

x402_pay.py pay --confirm

签署授权,重试请求,返回结算哈希和响应内容

是

检查付费 MCP 工具

x402_pay.py mcp-inspect --challenge

读取付费 MCP 工具返回的支付质询

否

为付费 MCP 工具签名

x402_pay.py mcp-sign --challenge --confirm

签署授权,并输出用于重试工具调用的 payload

是

在多个报价之间选择

--asset 或 --network

当服务器提供多个选项时,选择其中一个

不适用

支付非 GET 端点

--method POST --data ''

附带支付信息重放同一请求

不适用

完整参考请见 x402 支付指南和该技能的 x402 参考文档。

了解了这一流程后,以下是通过 Agent Wallet 进行 x402 支付的 9 个小贴士。

1. 在服务要求的网络上充入 USDC

服务器决定接受哪些资产和网络。智能体只能支付服务器提供的选项。

Agent Wallet 仅支持支付 EVM 报价,且网络需包含在 mm chains list 的列表中。余额按链分别计算,因此以太坊上的 USDC 无法支付 Base 上的报价。如果你在其他链上持有 USDC,也可以让智能体将资金转移到所需的链上。支付本身是无 Gas 的链下授权,由服务的 facilitator 在链上完成结算,因此你的钱包无需持有原生代币来支付这笔交易的网络费用。

2. 付款前先检查报价

inspect 只读取 402 响应,不会签名或花费资金。它会返回资产、便于阅读的金额、网络、payTo 收款方以及资源。该技能会指示智能体向你展示这些详情,并在运行 pay 之前等待你的批准,而且如果没有 --confirm,pay 会拒绝运行。

在签名之前,会先执行若干检查。资源 URL 必须以 https:// 开头。脚本不会跟随重定向,因此跨主机重定向无法将付款转移到你未选择的服务器。金额必须是以代币最小单位表示的正整数,收款方和资产必须是有效地址。对于 exact 方案,签名金额等于报价金额,而不是服务器可以收取的上限。

3. 将每笔支付都需确认设为默认设置

Agent Wallet skill 可以指示 agent 在每次 x402 支付前,默认先与你确认资产、金额、网络、收款方和资源。确认过程发生在你与 agent 的对话中,与 2FA 相互独立;只有当请求被标记或超出你的策略范围时,钱包服务才会触发 2FA。

这适合在一次会话中购买研究报告、少量数据拉取或礼品卡的 agent。但如果是每隔几秒就调用一次付费端点的循环,则不太适合,因为每次调用都要等你确认。在多个步骤中收费的多步购买,则会在每一步都向你确认。

4. 了解 Guard Mode 对 x402 支付会检查什么

在服务器钱包模式下,每个签名请求都会发送到钱包服务,由其在签名前进行威胁扫描。被标记的请求会暂停在 AWAITING_MFA 状态,直到你批准。x402 授权带有由服务器设定的较短有效期。如果 Guard Mode 因 2FA 而暂停签名,而你在有效期结束后才批准,该授权会在未使用的情况下过期。请让 agent 重新运行 pay,它会获取新的 402 并对新的值签名。批准请求会发送到你登录方式对应的位置:使用 Google 或邮箱登录时为邮件链接,使用二维码登录时为 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 网络上使用 EIP-3009 transferWithAuthorization 对 exact scheme 签名,支持 x402 协议 v1 和 v2。当遇到以下情况时,它会返回明确的错误,并且不会签名:

报价

被拒绝的原因

仅支持 Permit2 资产转移方式

该辅助脚本只签署 EIP-3009

upto 或其他 scheme

仅支持 exact

Solana 或其他非 EVM 网络

仅支持 mm chains list 中的 EVM 网络

缺少 EIP-712 domain 的 name 和 version

该辅助脚本不会猜测签名 domain

不属于标准 x402 challenge 的 402

先付款再发送哈希的方案不属于 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 传输方式。未付费的工具调用会返回一个携带支付 challenge 的错误结果。agent 会运行 mcp-inspect 向你展示报价,在你批准后运行 mcp-sign --confirm,然后将已签名的 payload 放在 _meta["x402/payment"] 中重试工具调用。该脚本只负责签名,不会处理 MCP 通信,因此由 agent 自己的 MCP 会话来发送重试。如果重试时又返回了新的 challenge,说明支付没有结算,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 上以太坊的 Smart Money 净流量。如果返回 402,请告诉我费用,并在我确认后再支付。”如需发现更多 x402 服务,x402scan 是 x402 生态系统的浏览器。

Agent Wallet 在 x402 方面不支持的功能

  • 通过转出限额来限制 x402 支出。目前,转出策略在计算 24 小时额度时不包含签名。

  • 为每个 x402 报价签名。仅支持 Permit2 的报价、upto 报价以及非 EVM 报价都会被拒绝。

  • 防止重复支付。目前还没有支付记录账本。重新运行 pay 会再次支付。

  • 通过 x402 进行销售。该辅助工具仅支持买方。若要为其他智能体托管付费端点,需要另行设置。

  • 作为 mm 命令运行。它是技能中的一个 Python 3 脚本,始终输出 JSON,因此 --toon 和 --format 不适用。

关于 x402 和 MetaMask Agent Wallet 的常见问题

AI 翻译。可能包含错误。请务必核实信息。

评价此翻译

本文作者:

  • MetaMask

    MetaMask(前身为 Consensys Software Inc)是全球最大的自托管金融平台,为用户提供一站式服务,涵盖加密资产与传统资产的持有、消费、储蓄与增值。公司正在打造实现上述功能的消费级平台,将支付、储蓄、投资与数字资产整合于一体,带来无缝一体化的使用体验。MetaMask 脱胎于全球使用最广泛的自托管钱包,让用户直接掌控自己的资金与资产,覆盖约 190 个国家和地区。自 2016 年起,MetaMask 在以太坊的发展历程中扮演了举足轻重的奠基角色。如今,MetaMask 处于区块链经济的核心位置,致力于构建「开放货币」的操作系统,让每个人都能全面掌控自己的财务生活。

    阅读所有文章