Skip to main content

Два режима

РежимProviderКомиссияTestnet / SandboxНастройка
ManagedManagedProvider0.3% за sat❌ (используйте mock в тестах)Только Lightning адрес
SoberanoBlink0%❌ только mainnetБесплатный кастодиальный аккаунт
SoberanoLNbits0%✅ RegTest / signetSelf-host или публичный инстанс
SoberanoOpenNode0%testMode: trueБесплатный sandbox аккаунт
SoberanoAlby Hub0%✅ через Hub testnet кошелёкSelf-custodial облачная нода
SoberanoBTCPay0%✅ поддержка RegTestSelf-hosted нода
SoberanoCustom0%✅ любой бэкенд на ваш выборЛюбой Lightning бэкенд
Managed режим — l402kit.com размещает Lightning ноду. Вы добавляете свой Lightning адрес. Мы автоматически переводим вам 99.7% от каждого sat. Soberano режим — Вы подключаете собственный Lightning кошелёк/ноду. Комиссия 0%, полное владение, работает с любым провайдером.

ManagedProvider (Рекомендуется)

Lightning нода не нужна. Добавьте свой Lightning адрес и начните зарабатывать — l402kit.com берёт на себя создание инвойсов и маршрутизацию платежей. Комиссия: 0.3% за полученный sat. 99.7% поступают напрямую в ваш Lightning кошелёк. Без ежемесячной платы.
import { l402, ManagedProvider } from 'l402-kit';
import express from 'express';

const app = express();
const lightning = ManagedProvider.fromAddress('you@yourdomain.com');

app.get('/premium', l402({ priceSats: 10, lightning }), (req, res) => {
  res.json({ data: 'Payment confirmed ⚡' });
});

app.listen(3000);
// 0.3% fee · no node setup · works immediately
Как это работает:
  1. Ваш API вызывает ManagedProvider.fromAddress("you@domain.com")
  2. Когда клиент обращается к вашему эндпоинту, l402kit.com создаёт Lightning инвойс
  3. Клиент оплачивает → Lightning проводит расчёт → 99.7% мгновенно переводятся на ваш Lightning адрес
  4. Ваш API проверяет криптографическое доказательство и возвращает 200 OK
Комиссия за маршрутизацию 0.3% — единственная стоимость. Без ежемесячной платы. Без регистрации аккаунта. Работает с любым Lightning адресом (Blink, Phoenix, Alby, Strike, Wallet of Satoshi и др.).

Надёжность и доступность

Кто управляет l402kit.com? ShinyDapps (open source, MIT). Управляемая инфраструктура работает на Cloudflare Workers — глобально распределённая, без единой точки отказа. Uptime: Мониторинг 24/7 на stats.uptimerobot.com/57uOzF17jK. Целевой SLA: 99.9%. Что если l402kit.com исчезнет? Ваша логика верификации локальная — SHA256(preimage) == paymentHash выполняется в вашем процессе, без сетевых вызовов. Только создание инвойса обращается к l402kit.com. Если управляемый сервис недоступен, переключитесь на любой soberano провайдер одной строкой:
// До (managed)
const lightning = ManagedProvider.fromAddress("you@yourdomain.com");

// После (soberano — 0% комиссия, полное владение)
const lightning = new BlinkProvider(process.env.BLINK_API_KEY!, process.env.BLINK_WALLET_ID!);
Никаких других изменений в коде. Уже оплаченные токены продолжают работать — верификация полностью криптографическая. Можно ли самостоятельно развернуть managed слой? Да. Полный исходный код доступен на GitHub под лицензией MIT. Папка cloudflare/ содержит воркер managed API — разверните его в своём аккаунте Cloudflare за 5 минут.
Blink — бесплатный кастодиальный Bitcoin Lightning кошелёк с GraphQL API. Без KYC, без ежемесячной платы, мгновенная настройка. Используйте его для работы в soberano режиме с комиссией 0%.
Запасной план: Blink — бесплатный сервис, и их тарифная политика может измениться. Если Blink введёт комиссии или ограничит API, переключитесь на другой soberano провайдер одной строкой кода (другие изменения не требуются, уже оплаченные токены продолжают работать). Никакой привязки к вендору. Хорошие альтернативы: LNbits (self-hosted, 0% навсегда), OpenNode (коммерческий SLA), Alby Hub (self-custodial), или BTCPay (полный суверенитет).
Начало работы:
  1. Создайте аккаунт на dashboard.blink.sv
  2. Перейдите в API Keys → создайте новый ключ
  3. Скопируйте ваш BTC Wallet ID со страницы кошелька
import { BlinkProvider } from 'l402-kit';

const blink = new BlinkProvider(
  process.env.BLINK_API_KEY!,    // blink_xxx...
  process.env.BLINK_WALLET_ID!,  // UUID
);
Переменные окружения:
BLINK_API_KEY=blink_xxxxxxxxxxxxxxxxxxxxxxxx
BLINK_WALLET_ID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

LNbits (Soberano — 0% комиссия)

LNbits — open-source сервер Lightning кошельков. Разверните самостоятельно или используйте публичный инстанс. Начало работы:
  1. Настройте LNbits (self-host или используйте legend.lnbits.com)
  2. Создайте кошелёк → скопируйте Invoice/read key
import { LNbitsProvider } from 'l402-kit';

const lnbits = new LNbitsProvider(
  process.env.LNBITS_KEY!,
  process.env.LNBITS_URL ?? 'https://legend.lnbits.com',
);
Переменные окружения:
LNBITS_KEY=your-invoice-read-key
LNBITS_URL=https://your-lnbits-instance.com

OpenNode (Soberano — 0% комиссия)

OpenNode — Lightning провайдер с бесплатным sandbox для тестирования. Начало работы:
  1. Создайте аккаунт на app.opennode.com
  2. Перейдите в IntegrationsAPI Keys → создайте ключ
import { OpenNodeProvider } from 'l402-kit';

const opennode = new OpenNodeProvider(
  process.env.OPENNODE_KEY!,
  process.env.NODE_ENV !== 'production', // testMode
);

Alby Hub (Soberano — 0% комиссия)

Alby Hub — self-custodial Lightning нода в облаке. Ваши ключи, ваши sats — без кастодиана. Начало работы:
  1. Создайте Hub на hub.getalby.com (или разверните самостоятельно)
  2. Перейдите в Settings → Access Tokens → создайте токен с правами invoices:create + invoices:read
  3. Скопируйте URL вашего Hub и токен доступа
import { AlbyProvider } from 'l402-kit';

const alby = new AlbyProvider(
  process.env.ALBY_ACCESS_TOKEN!,  // Hub → Settings → Access Tokens
  process.env.ALBY_HUB_URL!,       // например "https://your-name.getalby.com"
);
Переменные окружения:
ALBY_ACCESS_TOKEN=your-alby-access-token
ALBY_HUB_URL=https://your-name.getalby.com

BTCPay Server (Soberano — 0% комиссия)

BTCPay Server — полностью суверенный Bitcoin + Lightning. Ваша нода, ваши ключи, без кастодиана. Совместимость: self-hosted (Umbrel, Start9, VPS) или managed (Voltage, LunaNode). Начало работы:
  1. BTCPay store → Lightning → Settings
  2. Account → API Keys → сгенерируйте ключ с правом btcpay.store.cancreatelightninginvoice
  3. Скопируйте ваш Store ID из URL магазина
import { BTCPayProvider } from 'l402-kit';

const btcpay = new BTCPayProvider(
  process.env.BTCPAY_URL!,       // например "https://btcpay.yourdomain.com"
  process.env.BTCPAY_API_KEY!,   // Account → API Keys
  process.env.BTCPAY_STORE_ID!,  // из URL магазина
);
Переменные окружения:
BTCPAY_URL=https://btcpay.yourdomain.com
BTCPAY_API_KEY=your-api-key
BTCPAY_STORE_ID=your-store-id

Custom провайдер (Soberano — 0% комиссия)

Реализуйте интерфейс LightningProvider для использования любого Lightning бэкенда:
import type { LightningProvider, Invoice } from 'l402-kit';

class MyProvider implements LightningProvider {
  async createInvoice(amountSats: number): Promise<Invoice> {
    // Call your Lightning node API
    const result = await myNode.createInvoice(amountSats);
    const macaroon = Buffer.from(
      JSON.stringify({ hash: result.hash, exp: Date.now() + 3_600_000 })
    ).toString('base64');
    return {
      paymentRequest: result.bolt11,
      paymentHash: result.hash,
      macaroon,
      amountSats,
      expiresAt: Date.now() + 3_600_000,
    };
  }

  async checkPayment(paymentHash: string): Promise<boolean> {
    return myNode.isPaid(paymentHash);
  }
}