Couche de Paiement
l402-kit est un middleware souverain qui ajoute un paywall Bitcoin Lightning à n’importe quel endpoint HTTP en 3 lignes de code. Vous apportez votre propre fournisseur Lightning — les fonds vont directement dans votre portefeuille, sans intermédiaire requis.Protocole : L402
L402 est un standard ouvert qui étend HTTP/1.1 avec une négociation de paiement native :paymentHash de la facture. Le preimage est le secret cryptographique libéré par le nœud Lightning lorsque le paiement est réglé. Le serveur vérifie :
Flux de Création de Facture
Flux de Vérification de Paiement
payment_hash dans Supabase) s’exécute de manière asynchrone et ne bloque pas la requête.
Format du macaroon
l402-kit utilise un macaroon personnalisé léger — pas libmacaroon. Le jeton est un objet JSON encodé enbase64url :
Authorization est :
Modèle de Frais
| Mode | Frais | Configuration |
|---|---|---|
| Souverain (tout fournisseur) | 0% — vous conservez 100% | Apportez vos propres identifiants de fournisseur |
Géré (ManagedProvider) | 0,3% vers l402kit.com | Pas de nœud Lightning — fonctionne immédiatement |
Stockage des Données (optionnel — Supabase)
DéfinissezSUPABASE_URL + SUPABASE_ANON_KEY pour journaliser les paiements automatiquement :
payment_hash plutôt que preimage ? Le payment_hash est déjà intégré dans chaque facture BOLT11 — il est public par conception. Seul le preimage est secret. Stocker le hash offre une protection contre les rejeux sans exposition supplémentaire.
Fournisseurs Lightning
l402-kit est agnostique quant au fournisseur. Tout backend qui implémenteLightningProvider fonctionne :
| Fournisseur | Notes |
|---|---|
| Alby Hub | Auto-custodial, 0% de frais |
| Blink | Custodial gratuit, pas de KYC pour les petits montants |
| BTCPay Server | Auto-hébergé, souveraineté totale |
| OpenNode | Custodial, sans configuration |
| LNbits | Auto-hébergé ou cloud |
Garanties de Sécurité
| Menace | Atténuation |
|---|---|
| Attaque par rejeu | Le preimage est marqué comme utilisé après la première vérification — adaptateur en mémoire ou Redis |
| Faux preimage | SHA256(preimage) === paymentHash est cryptographiquement infalsifiable |
| Expiration du jeton | Le macaroon intègre un horodatage exp — vérifié à chaque requête |
| Falsification de webhook | HMAC-SHA256(secret, body) vérifié avant traitement |