Skip to main content

Dois modos

ModoProvedorTaxaTestnet / SandboxConfiguração
GerenciadoManagedProvider0,3% por sat❌ (use mock em testes)Somente endereço Lightning
SoberanoBlink0%❌ somente mainnetConta custodial gratuita
SoberanoLNbits0%✅ RegTest / signetSelf-host ou instância pública
SoberanoOpenNode0%testMode: trueConta sandbox gratuita
SoberanoAlby Hub0%✅ via carteira testnet do HubNó cloud auto-custodial
SoberanoBTCPay0%✅ Suporte a RegTestNó self-hosted
SoberanoPersonalizado0%✅ o que você configurarQualquer backend Lightning
Modo Gerenciado — l402kit.com hospeda o nó Lightning. Você adiciona seu endereço Lightning. Repassamos 99,7% de cada sat para você automaticamente. Modo Soberano — Você conecta sua própria carteira/nó Lightning. 0% de taxa, custódia total, funciona com qualquer provedor.

ManagedProvider (Recomendado)

Nenhum nó Lightning necessário. Adicione seu endereço Lightning e comece a receber — l402kit.com cuida de toda a criação de faturas e roteamento de pagamentos. Taxa: 0,3% por sat recebido. 99,7% vai diretamente para sua carteira Lightning. Sem mensalidade.
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
Como funciona:
  1. Sua API chama ManagedProvider.fromAddress("you@domain.com")
  2. Quando um cliente acessa seu endpoint, l402kit.com cria uma fatura Lightning
  3. O cliente paga → Lightning liquida → 99,7% repassado para seu endereço Lightning instantaneamente
  4. Sua API verifica a prova criptográfica e retorna 200 OK
A taxa de roteamento de 0,3% é o único custo. Sem mensalidade. Sem cadastro de conta. Qualquer endereço Lightning funciona (Blink, Phoenix, Alby, Strike, Wallet of Satoshi, etc.).

Confiança e disponibilidade

Quem opera o l402kit.com? ShinyDapps (código aberto, MIT). A infraestrutura gerenciada roda no Cloudflare Workers — distribuída globalmente, sem servidor único que possa cair. Uptime: Monitorado 24/7 em stats.uptimerobot.com/57uOzF17jK. Meta de SLA: 99,9%. E se o l402kit.com sair do ar? Sua lógica de verificação é local — SHA256(preimage) == paymentHash roda no seu processo, sem nenhuma chamada de rede. Apenas a criação de faturas acessa o l402kit.com. Se o serviço gerenciado cair, troque para qualquer provedor soberano em uma linha:
// Antes (gerenciado)
const lightning = ManagedProvider.fromAddress("you@yourdomain.com");

// Depois (soberano — 0% de taxa, custódia total)
const lightning = new BlinkProvider(process.env.BLINK_API_KEY!, process.env.BLINK_WALLET_ID!);
Nenhuma outra alteração de código. Tokens já pagos continuam funcionando — a verificação é puramente criptográfica. Posso hospedar a camada gerenciada eu mesmo? Sim. O código-fonte completo está no GitHub sob licença MIT. A pasta cloudflare/ contém o worker da API gerenciada — faça o deploy na sua própria conta Cloudflare em 5 minutos.
Blink é uma carteira Bitcoin Lightning custodial gratuita com API GraphQL. Sem KYC, sem mensalidade, configuração instantânea. Use-o para rodar no modo soberano com 0% de taxa.
Plano de contingência: Blink é um serviço gratuito — sua política de preços pode mudar. Se o Blink adicionar taxas ou limitar a API, troque para outro provedor soberano em uma linha de código (nenhuma outra alteração necessária, tokens já pagos continuam funcionando). Zero lock-in. Boas alternativas: LNbits (self-hosted, 0% para sempre), OpenNode (SLA comercial), Alby Hub (auto-custodial) ou BTCPay (totalmente soberano).
Como começar:
  1. Crie uma conta em dashboard.blink.sv
  2. Vá em API Keys → crie uma nova chave
  3. Copie seu BTC Wallet ID da página da carteira
import { BlinkProvider } from 'l402-kit';

const blink = new BlinkProvider(
  process.env.BLINK_API_KEY!,    // blink_xxx...
  process.env.BLINK_WALLET_ID!,  // UUID
);
Variáveis de ambiente:
BLINK_API_KEY=blink_xxxxxxxxxxxxxxxxxxxxxxxx
BLINK_WALLET_ID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

LNbits (Soberano — 0% de taxa)

LNbits é um servidor de carteira Lightning de código aberto. Faça self-host ou use uma instância pública. Como começar:
  1. Configure o LNbits (self-host ou use legend.lnbits.com)
  2. Crie uma carteira → copie a chave Invoice/read
import { LNbitsProvider } from 'l402-kit';

const lnbits = new LNbitsProvider(
  process.env.LNBITS_KEY!,
  process.env.LNBITS_URL ?? 'https://legend.lnbits.com',
);
Variáveis de ambiente:
LNBITS_KEY=your-invoice-read-key
LNBITS_URL=https://your-lnbits-instance.com

OpenNode (Soberano — 0% de taxa)

OpenNode é um provedor Lightning com sandbox gratuito para testes. Como começar:
  1. Crie uma conta em app.opennode.com
  2. Vá em IntegrationsAPI Keys → crie uma chave
import { OpenNodeProvider } from 'l402-kit';

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

Alby Hub (Soberano — 0% de taxa)

Alby Hub é um nó Lightning auto-custodial na nuvem. Suas chaves, seus sats — sem custodiante. Como começar:
  1. Crie um Hub em hub.getalby.com (ou faça self-host)
  2. Vá em Settings → Access Tokens → crie um token com escopos invoices:create + invoices:read
  3. Copie a URL do seu Hub e o token de acesso
import { AlbyProvider } from 'l402-kit';

const alby = new AlbyProvider(
  process.env.ALBY_ACCESS_TOKEN!,  // Hub → Settings → Access Tokens
  process.env.ALBY_HUB_URL!,       // ex: "https://your-name.getalby.com"
);
Variáveis de ambiente:
ALBY_ACCESS_TOKEN=your-alby-access-token
ALBY_HUB_URL=https://your-name.getalby.com

BTCPay Server (Soberano — 0% de taxa)

BTCPay Server é totalmente soberano em Bitcoin + Lightning. Seu nó, suas chaves, zero custódia. Compatível com: self-hosted (Umbrel, Start9, VPS) ou gerenciado (Voltage, LunaNode). Como começar:
  1. Loja BTCPay → Lightning → Settings
  2. Account → API Keys → gere uma chave com o escopo btcpay.store.cancreatelightninginvoice
  3. Copie seu Store ID da URL da loja
import { BTCPayProvider } from 'l402-kit';

const btcpay = new BTCPayProvider(
  process.env.BTCPAY_URL!,       // ex: "https://btcpay.yourdomain.com"
  process.env.BTCPAY_API_KEY!,   // Account → API Keys
  process.env.BTCPAY_STORE_ID!,  // da URL da loja
);
Variáveis de ambiente:
BTCPAY_URL=https://btcpay.yourdomain.com
BTCPAY_API_KEY=your-api-key
BTCPAY_STORE_ID=your-store-id

Provedor personalizado (Soberano — 0% de taxa)

Implemente a interface LightningProvider para usar qualquer backend 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);
  }
}