Installation
Voraussetzungen: Node.js 18+, Express 4+
Schnellstart
l402(options) — Middleware
Gibt einen Express RequestHandler zurück, der L402-Zahlung auf der Route erzwingt.
Optionen
Verhalten
402-Antwort-Body
Provider
AlbyProvider — empfohlen für den souveränen Modus
Alby — selbstverwaltete Wallet. Du kontrollierst die Schlüssel.
BTCPayProvider — selbst gehostet, ohne Vertrauen
Betreibe deinen eigenen BTCPay Server. Vollständige Souveränität.
BlinkProvider — verwahrt, einfachster Einstieg
Blink — kostenlos, kein KYC für kleine Beträge.
LNbitsProvider
Selbst gehostet oder legend.lnbits.com.
OpenNodeProvider
ManagedProvider — Cloud-Modus (0,3% Gebühr)
l402kit.com betreibt den Lightning-Node. Du erhältst 99,7% jeder Zahlung. Explizite Einwilligung erforderlich.
Die Registrierung erfolgt einmalig beim Start (fire-and-forget, Fehler werden ignoriert). Die API erscheint unter l402kit.com/apis.json, damit Agenten sie automatisch entdecken können.
Replay-Schutz
Standard — im Speicher (Entwicklung)
Eingebaut. Wird beim Neustart zurückgesetzt. Geeignet für Einzelprozess-Deployments.
Redis (Produktion — mehrere Instanzen)
RedisReplayAdapter verwendet SET key 1 NX EX ttl — atomar, frei von Race Conditions.
Zahlungs-Webhooks
Empfange ein signiertes Ereignis nach jeder Zahlung.
Webhook-Payload:
onPayment-Callback
Synchroner Hook, der nach jeder verifizierten Zahlung vor next() aufgerufen wird:
Supabase-Zahlungsprotokollierung
Setze SUPABASE_URL + SUPABASE_ANON_KEY in deiner Umgebung, um Zahlungen automatisch zu protokollieren.
Tabellenschema für Zahlungen (payments):
payment_hash speichert SHA256(preimage), nicht das rohe preimage. Das preimage ist das 32-Byte-Lightning-Zahlungsgeheimnis — sein Hash ist bereits öffentlich in der BOLT11-Rechnung enthalten.
Eigenständige Hilfsfunktionen
Typen
Verifizierungszeitpunkt
Die Token-Verifizierung führt SHA256(preimage) == paymentHash im Speicher aus — unter einer Millisekunde, kein Netzwerkaufruf auf dem Hot Path.
Der im Speicher befindliche ReplayAdapter (Standard) läuft ebenfalls synchron. Wenn du RedisReplayAdapter verwendest, addiere 5–50 ms Redis-Round-Trip pro Anfrage. Plane die Kapazität für hochfrequente Endpunkte entsprechend ein.
Die Middleware akzeptiert stillschweigend den X-Payment-Header (verwendet vom Coinbase-x402-Protokoll) zusätzlich zum Standard-Authorization: L402 …-Header. Beide werden identisch behandelt — nützlich, wenn du Clients bedienen möchtest, die eines der beiden Protokolle sprechen.
Keine Konfiguration erforderlich; es ist immer aktiviert.
Migrationsleitfaden
v1.1 → v1.2
Spalte in deiner payments-Tabelle umbenennen: