我想看看代理程序是否能付费给我发消息。
不是真人填写联系表单,也不是验证码。而是一个拥有钱包、带着任务、并渴望联系我的代理。
我并非特例。我不过是电脑可能想与之交流的一根“肉棒”罢了。
正如联系页面所述,人类随时可以通过 LinkedIn 或 X 联系我。
如果我在本网站上设置联系入口,就意味着又多了一个需要监控的收件箱。垃圾邮件、机器人、陌生推销。验证码会拦截真人。付费机制会拦截所有人,但信用卡同样会拦截真人。我需要一种与代理工作方式原生契合的解决方案。
x402 正是那道门。它基于 HTTP 402 状态码(支付所需)构建,这是互联网为支付预留却从未定义的状态码。x402 对其进行了定义。 服务器返回包含价格和 stablecoin 地址的 402 状态码。代理读取响应,使用钱包签署许可,带上支付头部信息重试,服务器在链上完成结算。无需结账页面。无需表单。无需账户。仅需一个状态码和一个签名。
这对普通人来说是糟糕的体验。但对智能合约代理而言却是绝佳的体验。
工作原理
该接口位于本网站的 /contact/send 路径下。代理可通过 OpenAPI 规范或 agents.md 文件发现该接口。首次 POST 请求不包含支付头。服务器返回 402 状态码,其中包含价格、接受的资产以及描述应包含哪些字段的模式。代理无需参考响应本身以外的任何文档。
sequenceDiagram
participant Human as Human
participant Agent as Agent
participant Site as benmilne.com
participant Facilitator as x402 Facilitator
participant Chain as Blockchain
participant Admin as Admin Panel
Human-->>Agent: "Contact Ben Milne about X"
Agent-->>Site: POST /contact/send (no payment)
Site-->>Agent: 402 + price + assets + field schema
Agent-->>Agent: Sign stablecoin permit
Agent-->>Site: POST + PAYMENT-SIGNATURE + message body
Site-->>Facilitator: Verify signature
Facilitator-->>Site: Valid
Site-->>Facilitator: Settle
Facilitator->>Chain: On-chain transfer (SBC)
Chain-->>Facilitator: Tx hash
Facilitator-->>Site: Settlement confirmed
Site-->>Site: Store message in D1
Site-->>Agent: 200 + receipt with tx hash
Admin-->>Admin: Message appears with block explorer link
rect rgba(200, 120, 50, 0.08)
Note over Human,Admin: Future: callback URL enables two-way communication
end
Stable Coin Company 运营着一个协调平台,该平台负责验证代理的签名许可,并执行链上转账,同时代表双方支付 gas 费用。代理无需持有 ETH 或 SOL,只需持有一种资产——即其用于支付的资产。
入门指南
为此我编写了一个名为 x402-payment-path 的小型库。它负责处理 402 挑战、签名验证、结算以及收据生成。
底层协议是 x402,即 Coinbase 开源的、现由 x402 基金会作为 Linux 基金会项目维护的“stablecoin”原生支付标准。Stable Coin Company 运营的协调器同时支持 USDC 以及 Base、Solana 和 Radius 上的 SBC。我使用 SBC 是因为这是我最熟悉的资产。
若您希望将其应用于产品而非消息处理,只需调整支付后的处理流程。您将不再存储消息,而是生成下载链接、触发 webhook 或启动发货流程。该库并不关心具体操作内容,它仅将操作与支付行为进行绑定。
决策
该接口同时支持USDC和SBC。我选择SBC是因为这是我最熟悉的资产,也是我希望在两条链上进行端到端验证的资产。
我拥有两个钱包。我的 EVM 钱包在 Base 上接收 SBC,另一个 Solana 钱包则在 Solana 上接收 SBC。端点相同,价格相同,结算通道不同。
消息会存入 D1 表中。我通过管理面板读取它们。没有邮件转发,无需监控收件箱。一条消息除了作为消息存在外,不应具备其他功能。
价格设定为0.10美元。高到足以让垃圾信息发送者无利可图,低到对合法用户而言微不足道。
它确实有效
以下是 2026 年 6 月 13 日的真实交易记录。每条消息花费 0.10 美元的 SBC。结算在链上完成。
| 发件人 | 网络 | 金额 | 交易 |
|---|---|---|---|
cursor-agent/0.46.2 | 基础 | 0.10 美元 SBC | 0x5265bdd1…963cd · BaseScan |
deal-flow-scout@vcscan.ai | Base | 0.10 SBC | 0xe0aa91c4…4313d · BaseScan |
claude-research-agent/1.2 | Base | /bin/sh.10 SBC | 0xb0c96326…4dd05 · BaseScan |
e2e-test-agent | Base | /bin/sh.10 SBC | 0x0fca4265…c1b08 · BaseScan |
e2e-test-agent | Solana | /bin/sh.10 SBC | 2typCyWo…hsYc · Solscan |

这就是我的管理面板。七条消息。Base 和 Solana。每条消息在显示出来之前都已在链上结算。
向我发送消息
如果你正在构建一个代理,请求端点是 POST benmilne.com/contact/send。相关文档详见 OpenAPI 规范和 agents.md 文件。
发送 POST 请求时不带支付头部,服务器将返回 402 状态码并包含你所需的所有信息。 x402 客户端库将负责后续的签名和重试处理。费用为 0.10 美元。支持 Base 和 Solana 上的 SBC 及 USDC。若您提供回调 URL,我将来将能够通过该 URL 进行响应。
我的收获
402响应是一份机器可读的账单。代理无需用户界面,只需价格、资产地址和网络。它负责签名、支付和重试。
我曾尝试通过自称“无密钥”的社区服务商添加对USDC的支持,但均无法实现无许可运行。其中一个要求地址注册,另一个存在版本不兼容问题。最终,通过The Stable Coin Company提供的SBC是唯一无需任何配置即可正常运行的服务商。 无需密钥、无需账户、无需注册。若希望代理能在无需人工预先配置的情况下完成支付,这一点至关重要。
还有一件事也让我感到惊讶:即使我多次批准过,MetaMask和Phantom仍会不断将SBC从我的钱包中隐藏。我添加代币、确认交易、检查余额,资产却又消失了。在测试过程中,这种情况反复发生。 我对这两个团队充满敬意,但不得不反复向自己设备上的钱包“声明”我想使用来自受监管发行方的自有资产,这种体验实在荒谬。互联网世界如此广阔,钱包本应信任用户既有的选择。
我为此编写的代码是开源的,您可以自由地对其进行任何操作——当然,前提是MetaMask或Phantom不会试图干预您的操作。