Skip to main content

Installazione

Requisiti: Python 3.11+, FastAPI o Flask (opzionale)

Modalità Soberano (tieni il 100%)

Usa il tuo provider Lightning — i pagamenti vanno direttamente al tuo wallet, 0% di commissioni.
Python supporta anche la modalità Managed — usa ManagedProvider.from_address("you@blink.sv") (commissione dello 0,3%, nessun nodo necessario). Consulta la sezione Providers qui sotto.

Flask

Flask + Gunicorn con worker gevent/eventlet: l402_required richiama il provider Lightning asincrono da un handler Flask sincrono. Se il tuo worker Gunicorn utilizza il monkey-patching di gevent o eventlet (che crea un event loop attivo), il decoratore lo rileva automaticamente ed esegue la chiamata asincrona in un thread dedicato — nessuna azione necessaria. I worker sincroni standard di Gunicorn e uvicorn (FastAPI) non sono interessati.

@l402_required — decoratore

Parametri

Comportamento

Risposta 402


Providers

BlinkProvider

Blink — wallet Lightning custodial gratuito, nessun KYC per piccoli importi.

LNbitsProvider

OpenNodeProvider

ManagedProvider — modalità cloud (commissione dello 0,3%)

l402kit.com ospita il nodo Lightning. Ricevi il 99,7% di ogni pagamento — nessuna configurazione del nodo richiesta.

Protezione replay

Predefinita — in-memory (sviluppo)

Integrata, nessuna configurazione necessaria. Si azzera al riavvio del processo.

Redis (produzione — multi-istanza)

Per deployment multi-worker con Gunicorn/uvicorn, condividi lo stato replay tramite Redis:
RedisReplayAdapter utilizza SET key 1 NX EX ttl — atomico e privo di race condition.

Utility standalone


Provider personalizzato


Test


Avvio


L402Client — pagamento automatico

L402Client avvolge httpx e gestisce automaticamente l’intero ciclo 402 → pagamento → nuovo tentativo.

Wallet


AsyncL402Client — async/await

AsyncL402Client utilizza internamente httpx.AsyncClient — ideale per FastAPI, asyncio e framework per agenti AI che operano in un event loop asincrono.

Differenze rispetto a L402Client


DevProvider + DevWallet — sviluppo locale

Sviluppo locale senza configurazione — nessun nodo Lightning, nessun pagamento reale. Crittograficamente identico alla produzione: SHA256(preimage) === paymentHash.