इंस्टॉलेशन
आवश्यकताएं: Node.js 18+, Express 4+
त्वरित शुरुआत
l402(options) — middleware
एक Express RequestHandler लौटाता है जो route पर L402 भुगतान लागू करता है।
विकल्प
व्यवहार
402 प्रतिक्रिया body
Providers
AlbyProvider — soberano mode के लिए अनुशंसित
Alby — self-custodial wallet। आप keys नियंत्रित करते हैं।
BTCPayProvider — self-hosted, शून्य विश्वास
अपना खुद का BTCPay Server चलाएं। पूर्ण स्वायत्तता।
BlinkProvider — custodial, सबसे आसान शुरुआत
Blink — छोटी राशि के लिए मुफ़्त, बिना KYC।
LNbitsProvider
Self-hosted या legend.lnbits.com।
OpenNodeProvider
ManagedProvider — cloud mode (0.3% शुल्क)
l402kit.com Lightning node होस्ट करता है। आपको प्रत्येक भुगतान का 99.7% प्राप्त होता है। स्पष्ट opt-in।
Registration startup पर एक बार होती है (fire-and-forget, त्रुटियाँ silent रहती हैं)। API l402kit.com/apis.json पर दिखाई देती है ताकि agents इसे स्वतः खोज सकें।
Replay protection
डिफ़ॉल्ट — in-memory (विकास)
Built-in। restart पर reset होता है। single-process deployments के लिए उपयुक्त।
Redis (production — multi-instance)
RedisReplayAdapter SET key 1 NX EX ttl उपयोग करता है — atomic, race-condition मुक्त।
Payment webhooks
प्रत्येक भुगतान के बाद एक हस्ताक्षरित event प्राप्त करें।
Webhook payload:
onPayment callback
प्रत्येक सत्यापित भुगतान के बाद, next() से पहले synchronous hook:
Supabase payment logging
भुगतान स्वचालित रूप से लॉग करने के लिए अपने environment में SUPABASE_URL + SUPABASE_ANON_KEY सेट करें।
Payments table schema (payments):
payment_hash में SHA256(preimage) संग्रहीत होता है, raw preimage नहीं। preimage 32-byte Lightning payment secret है — इसका hash BOLT11 invoice में पहले से सार्वजनिक है।
स्वतंत्र उपयोगिताएं
प्रकार
सत्यापन समय
Token सत्यापन memory में SHA256(preimage) == paymentHash चलाता है — sub-millisecond, hot path पर कोई network call नहीं।
in-memory ReplayAdapter (डिफ़ॉल्ट) भी synchronously चलता है। यदि आप RedisReplayAdapter उपयोग करते हैं, तो प्रति अनुरोध 5–50 ms Redis round-trip जोड़ें। उच्च-आवृत्ति endpoints के लिए क्षमता की योजना तदनुसार बनाएं।
middleware चुपचाप X-Payment header स्वीकार करता है (Coinbase के x402 protocol द्वारा उपयोग किया जाता है) मानक Authorization: L402 … header के अतिरिक्त। दोनों को समान रूप से संभाला जाता है — उपयोगी यदि आप उन clients को serve करना चाहते हैं जो किसी भी protocol में बात करते हैं।
कोई configuration आवश्यक नहीं; यह हमेशा सक्षम है।
Migration guide
v1.1 → v1.2
अपनी payments table में column का नाम बदलें: