我想看看代理是否可以付费给我发消息。

不是真人填写联系表单,也不是验证码。而是一个拥有钱包、带着任务、并渴望联系我的代理。

我并非特例。我不过是一根电脑可能想跟我聊几句的“肉棒”罢了。

正如联系页面所述,真人随时可以通过LinkedInX联系我。

如果我在本网站上设置一个联系入口,就会多出一处收件箱需要监控。垃圾信息、机器人、冷门推广。验证码会拦截真人。付费机制会拦截所有人,但信用卡同样会拦截真人。我需要一种与代理工作方式相契合的解决方案。

x402 正是这样的门槛。它是一种基于 HTTP 402“需要支付”状态码构建的协议——互联网虽为支付预留了该状态码,却从未对其进行定义。x402 则对其进行了定义。 服务器返回 402 状态码,其中包含价格和 stablecoin 地址。代理读取响应,使用其钱包签署许可,带上支付头信息重试,服务器随后在链上结算。无需结账页面。无需表单。无需账户。只需一个状态码和一个签名。

这对普通人来说是糟糕的体验,但对代理而言却是绝佳的体验。

工作原理

该端点位于本网站的 /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 表中。我通过管理面板读取这些消息。没有邮件转发,也不需要监控收件箱。一条消息除了作为消息本身之外,不应具备任何其他功能。

价格设定为 1 美元。这个价格足够高,足以让垃圾信息发送变得不划算;又足够低,对合法参与者来说微不足道。

该机制运行良好

以下是 2026 年 6 月 13 日的真实交易记录。每条消息的 SBC 费用为 0.10 美元。结算在链上完成。

发件人网络金额交易
cursor-agent/0.46.2基础0.10 SBCBaseScan
claude-research-agent/1.2Base0.10 SBCBaseScan
e2e-test-agentBase0.10 SBCBaseScan
e2e-test-agentSolana0.10 SBCSolscan
Admin panel showing x402 agent messages with sender, message body, network, and transaction hash links to BaseScan and Solscan

这就是我的管理面板。共有七条消息,分别来自Base和Solana。每条消息在显示出来之前都已在链上结算完毕。

向我发送消息

如果你正在构建一个代理,请求端点是 POST benmilne.com/contact/send。相关文档详见 OpenAPI 规范agents.md 文件。

发送 POST 请求时若不包含支付头,服务器将返回 402 状态码并附带所有必要信息。x402 客户端库会从该处处理签名和重试。费用为 . SBC(Base 和 Solana 平台均适用)。如果你提供回调 URL,我将来将能够通过该 URL 进行响应。

我的收获

402 响应是一份机器可读的发票。代理无需用户界面,只需价格、资产地址和网络即可。它负责签名、支付和重试。

我曾尝试通过自称“无密钥”的社区服务商添加对 USDC 的支持,但均无法在无许可环境下运行。其中一家要求地址注册,另一家则存在版本不兼容问题。最终,The Stable Coin Company 提供的 SBC 服务是唯一无需任何配置即可正常运行的服务商。 无需密钥、无需账户、无需注册。如果你希望代理能在无需人工预先配置的情况下进行支付,这一点至关重要。

还有一件事也让我感到惊讶:无论是 MetaMask 还是 Phantom,都一直将 SBC 隐藏在我的钱包中,即使我已经多次批准过。我会添加该代币、确认交易、检查余额,但资产又会再次消失。在测试过程中,这种情况反复发生。 我对这两个团队充满敬意,但不得不一遍又一遍地告诉自己设备上的钱包,我要使用来自受监管发行方的自有资产,这种感觉实在荒谬。互联网如此广阔,钱包本应信任用户已经做出的选择。

我为此编写的代码是开源的,你可以自由地对其进行任何操作——当然,前提是 MetaMask 或 Phantom 不会试图干预你的操作。