x402: Wie KI-Agenten APIs ohne Konto bezahlen

Jede API im Internet wird über ein Formular verkauft.

Man landet auf einer Preisseite, tippt eine E-Mail-Adresse ein, bestätigt sie im Posteingang, hinterlegt eine Karte, kopiert einen Schlüssel und legt ihn in eine Umgebungsvariable. Das dauert vier Minuten und funktioniert bestens — weil man ein Mensch ist, und Menschen haben Postfächer, Karten und Geduld.

Und jetzt stellen Sie sich einen KI-Agenten mitten in einer Rechercheschleife vor. Er braucht genau jetzt eine Webseite als Markdown, um die Aufgabe zu Ende zu bringen, die man ihm gegeben hat. Er kann keine Bestätigungsmail empfangen. Er hat keine Karte. Er kann nicht warten, bis ein Mensch aufwacht und ihm einen Schlüssel einfügt.

Also tut er das Einzige, was ihm bleibt: Er gibt auf und nimmt etwas anderes.

Genau diese Lücke schließt x402 — und seit heute beantwortet die Minibase API sie in Produktion.

HTTP hatte 1997 schon einen Plan dafür

Der Statuscode 402 Payment Required steht seit Anbeginn in der HTTP-Spezifikation, versehen mit dem Vermerk „reserved for future use”. Fast dreißig Jahre lang blieb er der Witz der RFC: der Code, den niemand implementieren konnte, weil das Web keine Möglichkeit hatte, kleine Beträge innerhalb einer Anfrage zu bewegen.

x402 ist das Protokoll, das ihn endlich nutzt. Die Form passt in drei Schritte:

  1. Ein Client ruft Ihren Endpunkt ganz ohne Zugangsdaten auf.
  2. Statt eines 401 Unauthorized antwortet der Server mit 402 Payment Required und hängt maschinenlesbare Zahlungsbedingungen an: wie viel, in welchem Asset, auf welchem Netzwerk, an welche Adresse.
  3. Der Client zahlt und wiederholt die Anfrage mit dem Zahlungsnachweis. Der Server prüft, verrechnet und liefert die Antwort.

Kein Konto. Kein Schlüssel. Kein Dashboard. Die gesamte Verhandlung passiert in zwei HTTP-Durchläufen, in einem Format, das ein anderes Programm lesen kann.

Wie das an einem echten Endpunkt aussieht

Rufen Sie unseren Konvertierungs-Endpunkt ohne alles auf:

curl -i -X POST https://api.minibase.md/v1/convert \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com/article"}'

Sie bekommen ein 402, und die Bedingungen kommen base64-kodiert in einem payment-required-Header zurück:

{
  "x402Version": 2,
  "accepts": [{
    "scheme": "exact",
    "network": "eip155:8453",
    "amount": "10000",
    "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "payTo": "0xfb8157a583e3050440301f418f5e890190222a5c",
    "maxTimeoutSeconds": 300
  }]
}

Alles, was ein autonomer Client braucht, steht darin. network ist eine CAIP-2-Kennung — eip155:8453 ist Base Mainnet. asset ist der USDC-Vertrag. amount sind atomare Einheiten: USDC hat sechs Nachkommastellen, 10000 ist also ein Cent. payTo ist das Ziel des Geldes.

Der Client signiert eine USDC-Überweisung, wiederholt die Anfrage mit angehängter Zahlung und erhält sein Markdown. Menschliche Beteiligung: null.

Der Teil, den niemand erwähnt: Sie müssen keine Kryptowerte halten

Der naheliegende Einwand gegen jedes „Akzeptiere Stablecoins” lautet: Jetzt betreiben Sie eine Wallet. Private Schlüssel. Verwahrung. Ein Saldo in etwas, das Ihre Buchhaltung noch nie gesehen hat, bewertet zu einem Kurs, der sich über Nacht bewegt hat.

Wir tun nichts davon, und Sie müssen es auch nicht. Die Einzahlungsadresse im obigen Payload wurde von Stripe ausgestellt. Zahlungen werden on-chain an diese Adresse verrechnet, Stripe erfasst jede einzelne als gewöhnlichen PaymentIntent und zahlt im normalen Rhythmus in Euro aus.

Praktisch heißt das: Das Geld erscheint im selben Dashboard wie jede Kartenzahlung, in derselben Auszahlung, in denselben Büchern. Keine Wallet, die abgesichert werden muss, keine Fremdwährungsbewertung pro Beleg, kein zweites Kassenbuch zum Jahresabschluss. Der Stablecoin-Teil ist real — und aus Sicht der Buchhaltung vollkommen unsichtbar.

Zwei Dinge, die uns Zeit gekostet haben

Falls Sie das selbst umsetzen: Das sind die beiden Fallen, die wir bezahlt haben.

Der Handshake mit dem Facilitator ist nicht optional. Ein Resource Server muss den Facilitator fragen, welche Schema-/Netzwerk-Paare er tatsächlich verrechnet, bevor er überhaupt einen Preis nennen kann. Lässt man das weg, stirbt schlicht jeder Aufruf mit Facilitator does not support exact on eip155:8453 — eine Meldung, die wie ein Konfigurationsfehler aussieht und in Wahrheit ein fehlender Netzwerkaufruf ist. Im Mainnet ist dieser Facilitator der von Coinbase; der öffentliche Testnet-Facilitator verrechnet kein echtes Geld.

Preise unterhalb eines Cents zerstören Ihre Buchhaltung lautlos. Unsere Kosten liegen bei rund 0,002 $ pro Seite, also sah 0,002 $ für die x402-Tür naheliegend aus. Ist es nicht: PaymentIntents lauten auf ganze Cent, alles darunter wird on-chain verrechnet und lässt sich anschließend überhaupt nicht mehr erfassen. Das Geld kommt an und landet in keinem Buch. Deshalb kostet die schlüssellose Tür bei uns 0,01 $ pro Aufruf — das Fünffache unseres Mengenpreises, was eine Zahlung pro Aufruf ohne Konto und ohne Bindung problemlos trägt.

Sollten Sie es einbauen?

Bleiben wir ehrlich bei der Größenordnung: x402 wird Ihre Abo-Umsätze in diesem Quartal nicht ersetzen. Von Agenten ausgelöste Zahlungen sind früh dran, das Client-Tooling ist jung, und die meisten Ihrer Kunden sind weiterhin Menschen mit Karte.

Aber die Asymmetrie ist ungewöhnlich. Die Tür einzubauen kostete uns ein paar hundert Zeilen, und sie greift ausschließlich bei Aufrufern ganz ohne Zugangsdaten — jeder bestehende Schlüsselinhaber fällt direkt in den Pfad, den er ohnehin hatte, mit demselben Kontingent und demselben Tarif. Nichts, was Sie bereits verkaufen, steht dabei auf dem Spiel.

Und der Fehlerfall, es nicht zu haben, ist unsichtbar. Ein Aufrufer ohne Schlüssel, der auf ein 401 trifft, hinterlässt keine Spur: keine Anmeldung, kein Supportticket, keine Zeile in Ihren Auswertungen. Sie erfahren nie, dass er da war. Genau das messen wir jetzt — jeder Aufruf ohne Zugangsdaten wird protokolliert, samt der Information, ob der Aufrufer das Protokoll bereits spricht — denn „klopft überhaupt jemand?” ist die einzige Frage, die entscheidet, ob sich das alles gelohnt hat.

Wenn Agenten im offenen Web einkaufen sollen, brauchen sie einen Weg zu bezahlen, der nicht durch ein Anmeldeformular führt. Diesen Weg gibt es bereits, er schlummert seit 1997 in der HTTP-Spezifikation, und er ist an einem Nachmittag angeschlossen.


Ausprobieren: Rufen Sie POST https://api.minibase.md/v1/convert ohne Zugangsdaten auf und lesen Sie den payment-required-Header. Lieber ein Schlüssel? Der kostenlose Tarif umfasst 1.000 Seiten pro Monat, ohne Karte. Vollständige Spezifikation für Agenten: minibase.md/api.md.

Continue reading