Skip to main content

Wallets compatibles

WalletInstalaciónAutocustodiaNotas
Blinkintegrado❌ custodialConfiguración más sencilla, API GraphQL
Alby Hubintegrado✅ opción autoalojadaAPI REST, compatible con Hub propio
Personalizadointerfaz L402WalletUsa tu propio wallet

BlinkWallet

Configuración

  1. Regístrate en blink.sv
  2. Ve a Dashboard → API Keys → crea una clave
  3. Copia tu Wallet ID desde el panel de control
export BLINK_API_KEY="your-api-key"
export BLINK_WALLET_ID="your-wallet-id"

Node.js

import { BlinkWallet } from "l402-kit";

const wallet = new BlinkWallet(
  process.env.BLINK_API_KEY!,
  process.env.BLINK_WALLET_ID!,
);

Python

from l402kit.wallets import BlinkWallet

wallet = BlinkWallet(
    api_key=os.environ["BLINK_API_KEY"],
    wallet_id=os.environ["BLINK_WALLET_ID"],
)

Cómo funciona

Llama a la API GraphQL de Blink con la mutación lnInvoicePaymentSend. Devuelve el preImage de la transacción liquidada.

AlbyWallet

Configuración

  1. Crea una cuenta en getalby.com
  2. Ve a Settings → Access Tokens → crea un token con el ámbito payments:send
  3. (Opcional) Ejecuta tu propio Alby Hub para autocustodia
export ALBY_TOKEN="your-access-token"
# Opcional — solo necesario para Hub autoalojado:
export ALBY_HUB_URL="https://your-hub.example.com"

Node.js

import { AlbyWallet } from "l402-kit";

// Alby cloud
const wallet = new AlbyWallet(process.env.ALBY_TOKEN!);

// Hub autoalojado
const wallet = new AlbyWallet(
  process.env.ALBY_TOKEN!,
  process.env.ALBY_HUB_URL,  // optional base URL
);

Python

from l402kit.wallets import AlbyWallet

# Alby cloud
wallet = AlbyWallet(os.environ["ALBY_TOKEN"])

# Hub autoalojado
wallet = AlbyWallet(
    access_token=os.environ["ALBY_TOKEN"],
    base_url=os.environ.get("ALBY_HUB_URL", "https://api.getalby.com"),
)

Cómo funciona

Llama a POST /payments/bolt11 en la API REST de Alby Hub con un token Bearer. Devuelve el payment_preimage de la respuesta.

Wallet personalizado

Implementa la interfaz L402Wallet para usar cualquier wallet Lightning:
import type { L402Wallet } from "l402-kit";

class PhoenixWallet implements L402Wallet {
  async payInvoice(bolt11: string): Promise<{ preimage: string }> {
    const res = await fetch("http://localhost:9740/payinvoice", {
      method: "POST",
      body: new URLSearchParams({ invoice: bolt11 }),
    });
    const data = await res.json();
    return { preimage: data.paymentPreimage };
  }
}
La interfaz requiere un único método:
MétodoTypeScriptPython
Pagar una factura BOLT11payInvoice(bolt11): Promise<{ preimage: string }>pay_invoice(bolt11: str) -> str

Cómo elegir un wallet

  • Pruebas / prototipado → Blink (custodial, configuración inmediata, nivel gratuito)
  • Agente en producción, máximo control → Alby Hub autoalojado (no custodial, API REST)
  • Alto rendimiento / comisiones bajas → Phoenix mediante L402Wallet personalizado (no custodial, ACINQ)
  • Empresarial → LNbits autoalojado mediante wallet personalizado