¿Qué es LNURL?
LNURL es un conjunto de estándares abiertos construidos sobre el Lightning Network. En lugar de exponer facturas Lightning sin procesar o pubkeys de nodos directamente en tu aplicación, LNURL define protocolos basados en URL amigables para el usuario que las billeteras saben cómo manejar. Cuando una billetera escanea un código QR de LNURL, decodifica una URL, obtiene una respuesta JSON de tu servidor y luego realiza la acción correspondiente (firmar un desafío, obtener una solicitud de pago, etc.) — todo de forma invisible para el usuario. l402-kit incluye dos funciones LNURL de serie:
Ambos protocolos funcionan en todas las principales billeteras Lightning (Phoenix, Blink, Zeus, Breez, Alby) y no requieren dependencias adicionales — tu servidor solo necesita servir un endpoint JSON y, opcionalmente, verificar una firma secp256k1.
LNURL-auth — inicio de sesión sin contraseña
l402-kit.com usa LNURL-auth para el panel de pagos. Puedes usar el mismo flujo en tu propia aplicación.Cómo funciona
Endpoint
TypeScript — verificar firma LNURL-auth
LNURL-auth no requiere correo electrónico, contraseña ni OAuth. La identidad del usuario es su pubkey Lightning — portable entre billeteras, imposible de censurar y globalmente única.
LNURL-pay — Lightning Address
Una Lightning Address (you@domain.com) es un alias legible por humanos que se resuelve en un endpoint LNURL-pay. l402-kit expone uno en:
ownerAddress: "you@blink.sv", el Worker resuelve blink.sv/.well-known/lnurlp/you para obtener una factura BOLT11.
Cómo configurar tu propia Lightning Address
- Despliega un endpoint LNURL-pay en
https://yourdomain.com/.well-known/lnurlp/{username} - Devuelve la respuesta de metadatos LNURL-pay estándar:
- El endpoint
callbackrecibe?amount=<msats>y devuelve:
Autoalojado con BTCPay Server
BTCPay Server incluye LNURL-pay integrado — solo actívalo en la configuración de tu tienda. Tu Lightning Address se convierte enyou@yourbtcpay.com.
Verificación de propiedad para el directorio de APIs
Cuando registras tu API enPOST /api/register, l402-kit comprueba automáticamente si existe un archivo /.well-known/l402.txt en el dominio de tu API. Si se encuentra y contiene tu Lightning Address, tu listado obtiene una insignia de verificado.
Crea el archivo: