Managed → Soberano (0% commissioni, custodia completa)
Hai iniziato con ManagedProvider perché è il modo più veloce per avviarsi. Quando sei pronto per la custodia completa e le commissioni allo 0%, la migrazione è di una sola riga.
Configura il tuo provider Lightning
Scegli un provider soberano. Blink è gratuito, senza KYC, configurazione immediata. # Blink: crea account → API Keys → copia chiave + wallet ID
BLINK_API_KEY = blink_xxxxxxxxxxxxxxxxxxxxxxxx
BLINK_WALLET_ID = xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Sostituisci il provider — una sola riga
// Prima
import { ManagedProvider } from 'l402-kit' ;
const lightning = ManagedProvider . fromAddress ( 'you@yourdomain.com' );
// Dopo
import { BlinkProvider } from 'l402-kit' ;
const lightning = new BlinkProvider (
process . env . BLINK_API_KEY ! ,
process . env . BLINK_WALLET_ID ! ,
);
# Prima
from l402kit import ManagedProvider
lightning = ManagedProvider.from_address( "you@yourdomain.com" )
# Dopo
from l402kit.providers.blink import BlinkProvider
lightning = BlinkProvider(
api_key = os.environ[ "BLINK_API_KEY" ],
wallet_id = os.environ[ "BLINK_WALLET_ID" ],
)
Tutto il resto — configurazione del middleware, verifica dei token, codice degli endpoint — rimane esattamente lo stesso.
Distribuisci
I token emessi dal provider gestito continuano a funzionare dopo la migrazione. La verifica è pura crittografia (SHA256(preimage) == paymentHash) — non dipende da quale provider ha creato la fattura. Non esiste finestra di migrazione, nessuna interruzione del servizio, nessun database da aggiornare.
I token già pagati emessi con ManagedProvider rimangono validi dopo il cambio di provider. Il macaroon contiene solo un hash e una scadenza — nessun dato specifico del provider.
Passa tra provider soberano
Stesso schema — sostituisci l’istanza del provider, nient’altro cambia.
// Blink → LNbits
import { LNbitsProvider } from 'l402-kit' ;
const lightning = new LNbitsProvider (
process . env . LNBITS_KEY ! ,
process . env . LNBITS_URL ?? 'https://legend.lnbits.com' ,
);
// Blink → OpenNode
import { OpenNodeProvider } from 'l402-kit' ;
const lightning = new OpenNodeProvider ( process . env . OPENNODE_KEY ! , false );
v1.x → v1.8 (attuale)
Nessuna modifica incompatibile. L’SDK è additivo — nuovi provider, nuove utility per agenti, nuovi adapter di replay. Aggiorna con:
npm install l402-kit@latest
pip install --upgrade l402kit
cargo update l402kit
go get github.com/shinydapps/l402-kit/go@latest
Se hai fissato una versione specifica, consulta il changelog per le novità.
Migrazione del framework
Express → Fastify
// Express
app . get ( '/api' , l402 ({ priceSats: 10 , lightning }), handler );
// Fastify
import { l402Fastify } from 'l402-kit/fastify' ;
fastify . get ( '/api' , {
preHandler: l402Fastify ({ priceSats: 10 , lightning }),
}, handler );
Express → Hono (Cloudflare Workers)
import { Hono } from 'hono' ;
import { l402Hono } from 'l402-kit/hono' ;
const app = new Hono ();
app . use ( '/api/*' , l402Hono ({ priceSats: 10 , lightning }));
app . get ( '/api/data' , ( c ) => c . json ({ data: 'paid' }));
Flask → FastAPI
# Flask
from l402kit.flask import l402_required
@app.route ( '/api' )
@l402_required ( price_sats = 10 , lightning = provider)
def handler ():
return jsonify({ 'data' : 'paid' })
# FastAPI
from l402kit import l402_required
@app.get ( '/api' )
@l402_required ( price_sats = 10 , lightning = provider)
async def handler ():
return { 'data' : 'paid' }
Migrazione del replay store
In-memory → Supabase
Imposta le variabili d’ambiente — il middleware le rileva automaticamente e si adatta:
SUPABASE_URL = https://xxx.supabase.co
SUPABASE_ANON_KEY = your_anon_key
I token in corso continuano a funzionare. Il store Supabase inizia a registrare dal momento in cui è attivo — non ci sono dati storici da migrare.
In-memory → Redis
import { Redis } from 'ioredis' ;
import { RedisReplayAdapter } from 'l402-kit' ;
const redis = new Redis ( process . env . REDIS_URL ! );
app . get ( '/api' , l402 ({
priceSats: 10 ,
lightning ,
replayAdapter: new RedisReplayAdapter ( redis ),
}), handler );
Providers Tutte le opzioni e la configurazione dei provider
Production Guide Checklist per il deployment