Zum Hauptinhalt springen
Manche Agenten öffnen nie eine Checkout-Seite. Sie rufen APIs auf — und immer mehr APIs können mit „Zahlung erforderlich“ in maschinenlesbarer Form antworten. Genau hier kommt das Machine Payments Protocol (MPP) ins Spiel; @ovra/mpp bindet Ovra als Wallet auf Agent-Seite (oder als Verifizierer auf Dienst-Seite) ein.

Was ist MPP?

Das Machine Payments Protocol ist ein offener Standard für Maschine-zu-Maschine-Zahlungen. Wenn ein Dienst vor der Datenrückgabe bezahlt werden will, kann er mit HTTP 402 Payment Required und einer strukturierten Challenge antworten (Betrag, Währung, Empfänger, unterstützte Methoden usw.). Dein Agent muss nicht jeden Header von Hand parsen: Ein MPP-Client (auf Basis von mppx) wiederholt die Anfrage, erfüllt die Challenge mit einem Credential und macht weiter, sobald der Dienst zufrieden ist. Ovra’s charge-Methode ist eine solche Zahlungsmethode — das Protokoll ist aber größer als ein einzelner Anbieter.

Wie Ovra und MPP zusammenarbeiten

Der Happy Path, wenn ein Dienst Ovra akzeptiert und mit 402 antwortet: Der Agent-Code bleibt auf hoher Ebene: URL per fetch abrufen. Der Stack wandelt 402-Antworten im Hintergrund in Intents, Credentials und abgeschlossene Transaktionen um.

Schnellstart (Agent / Client)

Installiere @ovra/mpp und die Peer-Dependency mppx, dann wrappe fetch mit einem MPP-fähigen Client:
import { Mppx } from "@ovra/mpp/client";
import { charge } from "@ovra/mpp/client";

const client = Mppx.init({
  methods: [
    charge({
      apiKey: "sk_test_...",
      agentId: "ag_xxx",
    }),
  ],
});

// Normale API-Aufrufe — MPP behandelt 402 automatisch
const response = await client.fetch("https://api.example.com/data");
Intern erstellt der Client bei einer Ovra-förmigen Challenge einen Intent für den geforderten Betrag, genehmigt ihn, wenn deine Policy es erlaubt, und sendet ein Credential zurück, das der Dienst verifizieren kann.

Für API-Anbieter

Wenn du die API betreibst und Ovra über MPP annehmen willst, nutze den Server-Einstiegspunkt. Du konfigurierst weiter die Ovra-charge-Methode, Verifizierung und Settlement laufen auf deiner Seite, wenn ein Client ein Credential vorlegt:
import { Mppx, Expires } from "@ovra/mpp/server";
import { charge } from "@ovra/mpp/server";

const mpp = Mppx.init({
  methods: [
    charge({
      apiKey: "sk_test_...",
    }),
  ],
});

// In deinem Request-Handler:
// 402 mit MPP-Challenge zurückgeben, dann eingehende Credentials mit `mpp` prüfen
Die genaue Handler-Verdrahtung hängt vom Framework ab; wichtig ist: Challenge bei unbezahltem Zugriff, Credential prüfen, dann echte Antwort liefern.

Offenes Ökosystem

MPP ist anbieterneutral. Ovra ist eine Zahlungsmethode; andere können in derselben Challenge koexistieren. Protokoll, Beispiele und Community: mpp.dev.