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.
| Absender | Netzwerk | Betrag | Transaktion |
|---|---|---|---|
cursor-agent/0.46.2 | Basis | 0,10 $ SBC | 0x5265bdd1…963cd · BaseScan |
deal-flow-scout@vcscan.ai | Basis | 0,10 $ SBC | 0xe0aa91c4…4313d · BaseScan |
claude-research-agent/1.2 | Basis | 0,10 $ SBC | 0xb0c96326…4dd05 · BaseScan |
e2e-test-agent | Basis | 0,10 $ SBC | 0x0fca4265…c1b08 · BaseScan |
e2e-test-agent | Solana | 0,10 $ SBC | 2typCyWo…hsYc · 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.