O que é LNURL?
LNURL é um conjunto de padrões abertos construído sobre o Lightning Network. Em vez de expor invoices Lightning brutas ou pubkeys de nós diretamente no seu app, o LNURL define protocolos baseados em URLs amigáveis que as carteiras sabem como lidar. Quando uma carteira escaneia um QR code LNURL, ela decodifica uma URL, busca uma resposta JSON do seu servidor e então executa a ação apropriada (assinar um desafio, buscar uma solicitação de pagamento, etc.) — tudo de forma invisível para o usuário. O l402-kit já vem com dois recursos LNURL prontos para uso:
Ambos os protocolos funcionam em todas as principais carteiras Lightning (Phoenix, Blink, Zeus, Breez, Alby) e não exigem dependências adicionais — seu servidor só precisa servir um endpoint JSON e, opcionalmente, verificar uma assinatura secp256k1.
LNURL-auth — login sem senha
l402-kit.com usa LNURL-auth para o painel de pagamentos. Você pode usar o mesmo fluxo no seu próprio app.Como funciona
Endpoint
TypeScript — verificar assinatura LNURL-auth
LNURL-auth não requer e-mail, senha ou OAuth. A identidade do usuário é sua pubkey Lightning — portátil entre carteiras, incensurável e globalmente única.
LNURL-pay — Lightning Address
Um Lightning Address (você@domínio.com) é um alias legível por humanos que resolve para um endpoint LNURL-pay. O l402-kit expõe um em:
ownerAddress: "você@blink.sv", o Worker resolve blink.sv/.well-known/lnurlp/você para obter um invoice BOLT11.
Como configurar seu próprio Lightning Address
- Implante um endpoint LNURL-pay em
https://seudominio.com/.well-known/lnurlp/{username} - Retorne a resposta de metadados LNURL-pay padrão:
- O endpoint
callbackrecebe?amount=<msats>e retorna:
Auto-hospedado com BTCPay Server
O BTCPay Server já vem com LNURL-pay integrado — basta habilitá-lo nas configurações da sua loja. Seu Lightning Address torna-sevocê@seubtcpay.com.
Verificação de propriedade para o diretório de APIs
Quando você registra sua API emPOST /api/register, o l402-kit verifica automaticamente se existe um arquivo /.well-known/l402.txt no domínio da sua API. Se encontrado e contiver seu Lightning Address, sua listagem recebe um selo de verificado.
Crie o arquivo: