Ich wollte sehen, ob ein Mitarbeiter dafür bezahlen kann, mir eine Nachricht zu schicken.

Kein Mensch, der ein Kontaktformular ausfüllt. Kein CAPTCHA. Ein Agent mit Geld, einer Aufgabe und dem Wunsch, mich zu erreichen.

Ich bin nichts Besonderes. Ich bin einfach nur ein Stück Fleisch, mit dem ein Computer vielleicht mal reden möchte.

Ein Mensch kann mich auf LinkedIn oder X erreichen, wann immer er will, wie auf der Kontaktseite beschrieben.

Wenn ich einen Kontakt-Endpunkt auf dieser Seite einrichte, bekomme ich einen neuen Posteingang, den ich überwachen muss. Spam, Bots, Kaltakquise. Ein CAPTCHA hält Menschen fern. Eine Zahlung hält alle fern, aber Kreditkarten halten auch Menschen fern. Ich brauchte etwas, das der Arbeitsweise von Agenten entspricht.

x402 ist diese Barriere. Es ist ein Protokoll, das auf HTTP 402 „Payment Required“ aufbaut, dem Statuscode, den das Internet für Zahlungen reserviert, aber nie definiert hat. x402 definiert ihn. Ein Server gibt 402 mit einem Preis und einer stablecoin-Adresse zurück. Der Agent liest die Antwort, unterzeichnet eine Genehmigung mit seiner Wallet, versucht es erneut mit einem Zahlungsheader, und der Server wickelt die Zahlung auf der Blockchain ab. Keine Checkout-Seite. Kein Formular. Kein Konto. Nur ein Statuscode und eine Signatur.

Das ist eine schreckliche Erfahrung für einen Menschen. Für einen Agenten ist es eine großartige Erfahrung.

So funktioniert es

Der Endpunkt befindet sich unter /contact/send auf dieser Website. Ein Agent findet ihn über die OpenAPI-Spezifikation oder agents.md. Der erste POST-Request enthält keinen Zahlungsheader. Der Server gibt einen 402-Code mit dem Preis, den akzeptierten Vermögenswerten und einem Schema zurück, das beschreibt, welche Felder enthalten sein müssen. Der Agent benötigt keine Dokumentation über die Antwort selbst hinaus.

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

The Stable Coin Company betreibt einen Vermittler, der die signierte Genehmigung des Agenten verifiziert und die On-Chain-Übertragung ausführt, wobei er die Gasgebühren im Namen beider Parteien bezahlt. Der Agent muss weder ETH noch SOL halten. Er hält nur einen Vermögenswert, nämlich den, mit dem er bezahlt.

Erste Schritte

Ich habe dafür eine kleine Bibliothek namens x402-payment-path geschrieben. Sie übernimmt die 402-Challenge, die Signaturüberprüfung, die Abwicklung und die Erstellung der Quittung.

Das zugrunde liegende Protokoll ist x402, der native Zahlungsstandard der „stablecoin“, den Coinbase als Open Source veröffentlicht hat und der nun von der x402 Foundation als Projekt der Linux Foundation gepflegt wird. The Stable Coin Company betreibt den Vermittler, der sowohl „USDC“ als auch SBC auf Base, Solana und Radius unterstützt. Ich habe SBC verwendet, da dies der Vermögenswert ist, den ich am besten kenne.

Wenn Sie dies für ein Produkt statt für eine Nachricht implementieren wollten, würden Sie ändern, was nach der Zahlung geschieht. Anstatt eine Nachricht zu speichern, würden Sie eine Download-URL generieren, einen Webhook auslösen oder einen Versand veranlassen. Der Bibliothek ist es egal, um welche Aktion es sich handelt. Sie bindet die Aktion an die Zahlung.

Entscheidungen

Der Endpunkt akzeptiert sowohl „USDC“ als auch SBC. Ich habe SBC verwendet, da dies das Asset ist, das ich am besten kenne und das ich auf beiden Blockchains durchgängig verifizieren wollte.

Ich habe zwei Wallets. Mein EVM-Wallet empfängt SBC auf Base. Ein separates Solana-Wallet empfängt SBC auf Solana. Gleicher Endpunkt, gleicher Preis, unterschiedliche Abwicklungswege.

Nachrichten landen in einer D1-Tabelle. Ich lese sie im Admin-Panel. Keine E-Mail-Weiterleitung, kein Posteingang, den ich überwachen muss. Eine Nachricht sollte nichts anderes tun können, als eine Nachricht zu sein.

Der Preis beträgt 0,10 $. Hoch genug, um Spam unwirtschaftlich zu machen. Niedrig genug, um für einen legitimen Akteur unbedeutend zu sein.

Es funktioniert

Hier sind echte Transaktionen vom 13. Juni 2026. Jede Nachricht kostete 0,10 $ in SBC. Die Abwicklung erfolgte auf der Blockchain.

AbsenderNetzwerkBetragTransaktion
cursor-agent/0.46.2Basis0,10 $ SBC0x5265bdd1…963cd · BaseScan
deal-flow-scout@vcscan.aiBasis0,10 $ SBC0xe0aa91c4…4313d · BaseScan
claude-research-agent/1.2Basis0,10 $ SBC0xb0c96326…4dd05 · BaseScan
e2e-test-agentBasis0,10 $ SBC0x0fca4265…c1b08 · BaseScan
e2e-test-agentSolana0,10 $ SBC2typCyWo…hsYc · Solscan
Admin panel showing x402 agent messages with sender, message body, network, and transaction hash links to BaseScan and Solscan

Das ist mein Admin-Panel. Sieben Nachrichten. Base und Solana. Jede wurde auf der Blockchain abgewickelt, bevor sie angezeigt wurde.

Mir eine Nachricht senden

Wenn du einen Agenten entwickelst, lautet der Endpunkt POST benmilne.com /contact/send. Dies ist in der OpenAPI-Spezifikation und in agents.md dokumentiert.

POST ohne Zahlungsheader und der Server gibt einen 402-Status mit allen erforderlichen Informationen zurück. Die x402-Client-Bibliothek übernimmt von dort aus die Signierung und den erneuten Versuch. Der Preis beträgt 0,10 $. SBC und USDC auf Base und Solana. Wenn du eine Callback-URL angibst, kann ich in Zukunft unter dieser URL antworten.

Was ich gelernt habe

Die 402-Antwort ist eine maschinenlesbare Rechnung. Der Agent benötigt keine Benutzeroberfläche. Er benötigt einen Preis, eine Asset-Adresse und ein Netzwerk. Er signiert, er zahlt, er versucht es erneut.

Ich habe versucht, USDC-Unterstützung über Community-Vermittler hinzuzufügen, die sich selbst als „keyless“ bewerben. Keiner von ihnen funktionierte ohne Berechtigungen. Einer erforderte eine Adressregistrierung. Ein anderer hatte Versionsinkompatibilitäten. SBC über The Stable Coin Company war der einzige Vermittler, der ohne jegliche Einrichtung funktionierte. Keine Schlüssel, keine Konten, keine Registrierung. Das ist wichtig, wenn man möchte, dass Agenten zahlen können, ohne dass ein Mensch vorher etwas konfigurieren muss.

Eine Sache, die mich ebenfalls überrascht hat: Sowohl MetaMask als auch Phantom haben SBC in meiner Wallet versteckt, selbst nachdem ich es mehrfach genehmigt hatte. Ich fügte den Token hinzu, bestätigte die Transaktion, überprüfte meinen Kontostand, und schon war der Vermögenswert wieder verschwunden. Das passierte während des Testens wiederholt. Ich habe nichts als Respekt für beide Teams, aber meinem Wallet auf meinem eigenen Gerät immer wieder mitteilen zu müssen, dass ich mein eigenes Asset von einem regulierten Emittenten nutzen wollte, kam mir lächerlich vor. Das Internet ist groß. Wallets sollten den Entscheidungen vertrauen, die ihre Nutzer bereits getroffen haben.

Der Code, den ich dafür verwendet habe, ist Open Source, und es steht Ihnen frei, damit zu machen, was Sie wollen – vorausgesetzt, MetaMask oder Phantom wollen nicht beeinflussen, was Sie stattdessen tun.