lightning-lsp

v2026.09.24

LSP (Lightning Service Provider) specifications: BLIPs, JIT channels, on-pay channel open, MPP-trampoline, BOLT12 hosted invoice. Major LSPs: ACINQ (Phoenix backend), Olympus by ZEUS, Megalith, Flashsats, Magma. USE WHEN: integrating with an LSP, designing LSP services, evaluating LSP options for a wallet.

GitHub
Install command
npx skhub add claude-dev-suite/lightning-lsp
Markdown
SKILL.md

LSPs (Lightning Service Providers)

LSPs solve the inbound liquidity problem: a new Lightning user has no inbound capacity — they can't receive without first opening a channel. LSPs offer hosted, JIT, or "channel-on-pay" services.

Service types

Static channel-open (paid)

  • Customer pays LSP a fee (sats) for a fixed inbound capacity.
  • Typically dual-funded or zero-conf.

JIT (Just-in-Time) channels

  • Customer requests an invoice.
  • LSP intercepts the payment and opens a channel during the payment flow, paying out via the new channel.
  • Customer needs no pre-existing channel.

Typical fee: 1-2% of channel amount, deducted from payment.

Liquidity ads (BOLT 9 features)

  • LSP advertises liquidity for sale on Lightning gossip.
  • Customers buy via dual-funded channel open.

MPP-trampoline routing

  • LSP runs trampoline node.
  • Mobile clients route through LSP without full graph knowledge.

BLIP-50+ specifications

BLIPs (Bitcoin Lightning Improvement Proposals) at github.com/lightning/blips. As of September 2026 the blips master tree carries exactly four LSPS specs, all Status: Active:

  • BLIP-50 / LSPS0: LSP Spec Transport Layer. Not an API — the transport. JSON-RPC 2.0 objects carried in BOLT 8 custom peer messages with message ID 37913. Defines one method, lsps0.list_protocols (params {}), whose spec example result is {"protocols":[1,3]} — illustrative only, as there is no LSPS3 (see below). LSPs may advertise with feature bit 729 (option_supports_lsps).
  • BLIP-51 / LSPS1: Channel Requests — buy a channel outright. lsps1.get_info, lsps1.create_order, lsps1.get_order.
  • BLIP-52 / LSPS2: JIT Channel Negotiation. lsps2.get_info, lsps2.buy.
  • BLIP-55 / LSPS5: Webhook Registration (merged July 2025). lsps5.set_webhook, lsps5.list_webhooks, lsps5.remove_webhook. Lets a suspended mobile wallet be woken by push when the LSP has something for it (lsps5.payment_incoming, lsps5.expiry_soon, lsps5.onion_message_incoming, ...).

There is no BLIP-53 or BLIP-54.

The LSPS API is not HTTPS and has no API key: it rides the client's existing BOLT 8 connection to the LSP, and the client is authenticated by the node id of that tunnel. A request looks like:

{ "jsonrpc": "2.0",
  "id": "example#3cad6a54d302edba4c9ade2f7ffac098",
  "method": "lsps0.list_protocols",
  "params": {} }

_sat/_msat fields are JSON strings of decimal integers (LSPS0 amount encoding), not JSON numbers.

Major LSPs (status checked September 2026)

LSPSpecialtySept 2026 status
ACINQPhoenix's hosted backend, splice-on-demandActive
Olympus by ZEUSZEUS wallet backend, JIT + LSPS1 salesActive
Megalith NodePublic liquidity provider, LSPS1 + LSPS2Active
FlashsatsLSPS1 channel sales, 1M sat minimumActive
Magma (Amboss)Channel-lease marketplace ("Magma V2")Active
VoltageCloud LN nodes; its Flow 2.0 LSP is retiredNot an LSP

"Active" means the provider's public LSPS1 get_info answered in September 2026 — Olympus lsps1.lnolymp.us/api/v1/, Megalith megalithic.me/api/lsps1/v1/, Flashsats lsp.flashsats.xyz/api/v1/ — or, for ACINQ, that the product still ships: Phoenix 2.8.2 (8 September 2026), Eclair v0.14.3 (14 September 2026).

Two corrections to older versions of this list:

  • Olympus is run by the ZEUS wallet team, not ZBD. Its JIT endpoint 0conf.lnolymp.us now redirects to flow.zeuslsp.com. ZEUS infrastructure was breached on 5 August 2026; Olympus was back online 8 August and LSP channel services were restored 10 August 2026, with no customer funds lost per ZEUS.
  • Voltage no longer sells liquidity. Flow 2.0 is gone from voltage.cloud and from docs.voltage.cloud, which as of September 2026 document managed LND hosting and developer APIs only, plus a notice that as of September 2026 still reads "On August 31, 2026, we will begin sunsetting Voltage's self-serve infrastructure product".

Many LSPs operate via custom HTTP APIs in addition to BLIP-50+: Megalith's own docs note its LSPS1 currently runs over HTTP rather than BOLT 8. Megalith's LSPS2 (JIT) service is on mainnet but its docs still call it not yet production-ready (September 2026).

Mobile wallet / LSP patterns

Phoenix + ACINQ

  • Phoenix mobile is the wallet, ACINQ hosts an Eclair node as the customer's "LSP".
  • ACINQ auto-splices to maintain liquidity.
  • Fees: small per-transaction percentage.

Mutiny + multiple LSPs (historical)

  • Mutiny Wallet used LDK and could rotate between LSPs, letting the customer choose an LSP per channel.
  • Defunct: the wallet shut down at the end of 2024 and MutinyWallet/mutiny-web is archived on GitHub (last commit September 2024). Only self-hosting the open-source code remains.

Breez SDK

  • Spec-driven LSP integration via BLIPs.
  • Self-custodial; LSP provides liquidity only.

Channel-open during payment (JIT) flow

1. Customer opens app, requests invoice for 50,000 sats.
2. App talks to LSP: "I need an invoice; here's my static node info."
3. LSP returns:
   - BOLT11 invoice with route_hint pointing through LSP.
   - Promise to open channel on first payment.
4. Customer shares invoice with payer.
5. Payer pays. LSP receives the payment. LSP opens a channel to
   customer with `value = payment - fee`. Forwards remainder via
   the new channel as final HTLC. Channel funded with the inbound
   payment.

Risk: between LSP receiving payment and channel funding tx confirming (zero-conf), customer trusts LSP not to keep funds.

Self-custodial verification

When using an LSP, customer should:

  • Verify channel open tx confirms (or has min_depth).
  • Monitor channel state (no surprises in commitment).
  • Have a watchtower in case LSP cheats.

Common bugs

  • LSP fee not communicated to user → user surprised by reduced amount received.
  • Race: invoice expiry too short for LSP's channel-open path.
  • LSP rejects payment → customer's payer is confused (sees error "incorrect_or_unknown_payment_details" but the invoice was valid).
  • Channel close due to LSP cycling: customer needs new channel on next payment, more fees.

See also

Discovery
Tags

No tags published for this skill.

Version
Latest version metadata

Version

v2026.09.24

Published

Sep 24, 2026

Category

Uncategorized

License

MIT

Source path

skills/bitcoin/lightning/lsp

Default branch

main

Latest commit

9496306

Tree SHA

fe4e2f1