LNURL é uma família de fluxos opcionais de aplicações Lightning descritos nos LUDs. Transmite parâmetros e pedidos entre carteira e serviço; não é regra de consenso Bitcoin nem autorização universal.
LNURL inclui payRequest para pagamentos, withdrawRequest para saques e login para autenticação, além de outras extensões. Carteiras implementam subconjuntos diferentes de LUDs. “Suporta LNURL” não significa que todas as operações funcionem ou que aprová-las tenha o mesmo efeito. [LNURL — LUD index] [Lightning Labs — LNURL glossary]
LNURL básico, segundo LUD-01, codifica uma URL HTTPS ou onion em Bech32. Não é encriptação nem fatura BOLT 11. O tag na URL ou no JSON recebido após GET determina o tipo. A carteira deve identificar domínio e operação; a aparência do QR não comprova o destinatário. [LNURL — LUD-01 encoding]
payRequest retorna callback, minSendable, maxSendable e metadata. Limites e amount escolhido usam msat; 1000 msat são um satoshi. Após aprovar as condições, a carteira pede uma fatura em pr e verifica seu valor antes de pagar. O link estático não comprova pagamento. [LNURL — LUD-06 payRequest]
Metadata é uma string contendo um array JSON com entrada text/plain obrigatória; outros tipos são opcionais. Leia a descrição com domínio e valor. LNURL básico interpreta o corpo JSON, não apenas o código HTTP; ERROR ou receber uma fatura pr não equivalem a pagamento concluído. [LNURL — LUD-01 encoding] [LNURL — LUD-06 payRequest]
withdrawRequest retorna k1, callback e limites minWithdrawable/maxWithdrawable em msat. Sua carteira cria uma fatura de recebimento e a entrega como pr ao serviço que deve pagar. Status OK reconhece o pedido; a carteira ainda espera o recebimento real. O link de saque pode conter autorização, portanto não é contato público para pagamento. [LNURL — LUD-03 withdrawRequest]
LNURL-auth com tag login usa k1 e linkingKey específico do domínio. Após consentimento, a carteira assina com ECDSA sobre secp256k1 sem enviar a seed ao serviço. Action pode significar registro, login, vinculação ou outra autorização. Assinar o desafio não é pagar bitcoin nem provar automaticamente a identidade de alguém. [LNURL — LUD-04 authentication]
HTTPS protege o transporte, mas o serviço pode conhecer pedidos e horários. Usos repetidos podem ser vinculados. Auth deriva a chave do domínio completo; mudar o subdomínio muda linkingKey e pode levar a outra conta. A portabilidade entre carteiras não é garantida porque a derivação varia. LNURL não determina a custódia de bitcoin. [LNURL — LUD-01 encoding] [LNURL — LUD-04 authentication]
LUD-21 opcional acrescenta uma URL verify; a resposta distingue settled true/false e pode retornar preimage. Status OK sozinho não significa settled true. Confira a associação com a fatura e o estado da carteira. Ao perder a resposta, não pague de novo às cegas; disponibilidade, liquidez de recebimento e alcance do consentimento continuam separados. [LNURL — LUD index] [LNURL — LUD-21 verification]
Para ter uma visão mais completa, leia este verbete junto com BOLT 11, BOLT 12, Lightning Network, Lightning Address, Privacidade no Bitcoin, Satoshi. Também há referências a este verbete em BOLT 12, Lightning Address, Confirmo.