Платёжный уровень
l402-kit — это суверенное промежуточное ПО, которое добавляет Bitcoin Lightning пэйвол к любому HTTP-эндпоинту в 3 строки кода. Вы используете собственного Lightning-провайдера — средства поступают напрямую на ваш кошелёк, без посредников.Протокол: L402
L402 — открытый стандарт, расширяющий HTTP/1.1 встроенным платёжным рукопожатием:paymentHash инвойса. Preimage — криптографический секрет, который Lightning-нода раскрывает после проведения платежа. Сервер проверяет:
Процесс создания инвойса
Процесс проверки платежа
payment_hash в Supabase) выполняется асинхронно и не блокирует запрос.
Формат macaroon
l402-kit использует лёгкий собственный macaroon — не libmacaroon. Токен представляет собой JSON-объект, закодированный вbase64url:
Authorization:
Модель комиссий
| Режим | Комиссия | Настройка |
|---|---|---|
| Суверенный (любой провайдер) | 0% — вы получаете 100% | Используйте собственные учётные данные провайдера |
Управляемый (ManagedProvider) | 0,3% в пользу l402kit.com | Lightning-нода не нужна — работает сразу |
Хранение данных (опционально — Supabase)
УкажитеSUPABASE_URL + SUPABASE_ANON_KEY для автоматического логирования платежей:
payment_hash, а не preimage? payment_hash уже содержится в каждом BOLT11-инвойсе — он публичен по своей природе. Секретным является только preimage. Хранение хэша обеспечивает защиту от повторных атак без какого-либо дополнительного раскрытия данных.
Lightning-провайдеры
l402-kit не привязан к конкретному провайдеру. Подходит любой бэкенд, реализующийLightningProvider:
| Провайдер | Примечания |
|---|---|
| Alby Hub | Самостоятельное хранение, 0% комиссия |
| Blink | Бесплатный кастодиальный, без KYC для небольших сумм |
| BTCPay Server | Самостоятельный хостинг, полный суверенитет |
| OpenNode | Кастодиальный, без настройки |
| LNbits | Самостоятельный хостинг или облако |
Гарантии безопасности
| Угроза | Защита |
|---|---|
| Атака повтора | Preimage помечается как использованный после первой проверки — адаптер в памяти или Redis |
| Поддельный preimage | SHA256(preimage) === paymentHash криптографически неподделываем |
| Истечение срока токена | Macaroon содержит временную метку exp — проверяется при каждом запросе |
| Подмена вебхука | HMAC-SHA256(secret, body) проверяется перед обработкой |