Skip to main content

Instalação

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

Modo Soberano (você fica com 100%)

Traga seu próprio provedor Lightning — os pagamentos vão diretamente para sua carteira, 0% de taxas.
O Python também suporta o modo Gerenciado — use ManagedProvider.from_address("voce@blink.sv") (taxa de 0,3%, sem necessidade de nó). Veja a seção Provedores abaixo.

Flask

Flask + Gunicorn com workers gevent/eventlet: l402_required chama o provedor Lightning assíncrono a partir de um handler Flask síncrono. Se seu worker do Gunicorn usar monkey-patching com gevent ou eventlet (que cria um event loop em execução), o decorator detecta isso automaticamente e executa a chamada assíncrona em uma thread dedicada — nenhuma ação é necessária. Workers síncronos padrão do Gunicorn e uvicorn (FastAPI) não são afetados.

@l402_required — decorator

Parâmetros

Comportamento

Resposta 402


Provedores

BlinkProvider

Blink — carteira Lightning custodial gratuita, sem KYC para pequenos valores.

LNbitsProvider

OpenNodeProvider

ManagedProvider — modo cloud (taxa de 0,3%)

l402kit.com hospeda o nó Lightning. Você recebe 99,7% de cada pagamento — sem necessidade de configurar um nó.

Proteção contra replay

Padrão — em memória (desenvolvimento)

Integrado, sem necessidade de configuração. Reinicia ao reiniciar o processo.

Redis (produção — múltiplas instâncias)

Para implantações com múltiplos workers Gunicorn/uvicorn, compartilhe o estado de replay via Redis:
RedisReplayAdapter usa SET key 1 NX EX ttl — atômico e livre de condições de corrida.

Utilitários avulsos


Provedor personalizado


Testes


Execução


L402Client — pagamento automático

L402Client encapsula o httpx e gerencia automaticamente o fluxo completo de 402 → pagamento → nova tentativa.

Carteiras


AsyncL402Client — async/await

AsyncL402Client usa httpx.AsyncClient internamente — ideal para FastAPI, asyncio e frameworks de agentes de IA que rodam em um event loop assíncrono.

Diferença em relação ao L402Client


DevProvider + DevWallet — desenvolvimento local

Desenvolvimento local sem configuração — sem nó Lightning, sem pagamentos reais. Criptograficamente idêntico à produção: SHA256(preimage) === paymentHash.