Skip to main content

Instalación

Requisitos: Python 3.11+, FastAPI o Flask (opcional)

Modo Soberano (conservas el 100%)

Usa tu propio proveedor Lightning — los pagos van directamente a tu billetera, 0% de comisiones.
Python también admite el modo Administrado — usa ManagedProvider.from_address("you@blink.sv") (0.3% de comisión, no se necesita nodo). Consulta la sección Proveedores a continuación.

Flask

Flask + Gunicorn con workers gevent/eventlet: l402_required llama al proveedor Lightning asíncrono desde un manejador Flask síncrono. Si tu worker de Gunicorn usa monkey-patching con gevent o eventlet (lo que crea un bucle de eventos en ejecución), el decorador lo detecta automáticamente y ejecuta la llamada asíncrona en un hilo dedicado — no se requiere ninguna acción. Los workers síncronos estándar de Gunicorn y uvicorn (FastAPI) no se ven afectados.

@l402_required — decorador

Parámetros

Comportamiento

Respuesta 402


Proveedores

BlinkProvider

Blink — billetera Lightning custodiada gratuita, sin KYC para montos pequeños.

LNbitsProvider

OpenNodeProvider

ManagedProvider — modo nube (0.3% de comisión)

l402kit.com aloja el nodo Lightning. Recibes el 99.7% de cada pago — no se requiere configuración de nodo.

Protección contra repetición

Predeterminada — en memoria (desarrollo)

Integrada, no requiere configuración. Se reinicia al reiniciar el proceso.

Redis (producción — múltiples instancias)

Para despliegues con múltiples workers de Gunicorn/uvicorn, comparte el estado de repetición mediante Redis:
RedisReplayAdapter usa SET key 1 NX EX ttl — atómico y libre de condiciones de carrera.

Utilidades independientes


Proveedor personalizado


Pruebas


Ejecución


L402Client — pago automático

L402Client envuelve httpx y gestiona automáticamente el ciclo completo 402 → pagar → reintentar.

Billeteras


AsyncL402Client — async/await

AsyncL402Client usa httpx.AsyncClient internamente — ideal para FastAPI, asyncio y frameworks de agentes de IA que se ejecutan en un bucle de eventos asíncrono.

Diferencia con L402Client


DevProvider + DevWallet — desarrollo local

Desarrollo local sin configuración — sin nodo Lightning, sin pagos reales. Criptográficamente idéntico a producción: SHA256(preimage) === paymentHash.