A plugin for wallets: one QR for the receiver, every route for the payer.
The problem
Bitcoin lives on many layers. Payments don't.
RECEIVER
One code, one layer
An invoice is Lightning, an address is on-chain. A merchant can't say "stablecoins first, then Lightning".
PAYER
Holds a different layer
The receiver wants Arkade, I hold Bark. Two Ark wallets on different servers can't pay each other.
SWAPS
Siloed
Each wallet wires one swap service. No way to compare providers or pay any address out there.
The idea
A wallet plugin for both sides of a payment
RECEIVER
One QR, your priorities
Choose every way you accept money and rank them. Share a single reusable code.
PAYER
Pay with what you have
Scan any code. Pay directly if you share a layer, otherwise through the best swap provider.
OPEN STANDARD
SSPS
Swap providers speak one open protocol, found on Nostr. Any address is payable if one provider supports it.
Receiver
One QR. Several ways to be paid. Your priorities.
MERCHANT
Stablecoins first
USDT on Liquid or RGB as first choice, Lightning as fallback.
ADVANCED USER
Ark first
Arkade or Bark before Liquid or on-chain.
ANYONE
Always payable
Lightning is always in the list, so every BOLT12 wallet can pay.
How the receiver side works
BOLT12, with the receiver's priorities inside
The receiver's Rate connects to their own LDK node over Nostr Wallet Connect and passes the ranked layers and addresses. The node issues one reusable BOLT12 offer with that list in an extra record.
WHAT WE CHANGED
A patched LDK
LDK authenticates every record of its offers, so the list must go in at creation. We patched rust-lightning, ldk-node and ldk-server.
COMPATIBLE
Still a BOLT12 offer
Wallets that ignore the record pay it over Lightning as usual.
TRADE-OFF
Address reuse
Ark addresses in the offer are static. Next: an Ark protocol for universal QR codes without reuse.
Payer
Scan anything. Direct if possible, swapped if needed.
DIRECT
Same layer
Two wallets on the same Ark server pay each other. Bark to Bark: no swap, no fee.
THROUGH LIGHTNING
Different layers
Receiver on Arkade, payer on Bark: route through Lightning.
THROUGH PROVIDERS
Compare and pick
Several swap providers quote at once. The wallet shows each total and the payer picks the best.
The standard
SSPS: Swap Service Provider Specification
An open standard, live today, announced next week. Built on the BOLTs and on Electrum's Lightning ↔ on-chain swap providers on Nostr.
ONE PROTOCOL
Many providers
Providers announce on Nostr which layers they serve. Wallets ask several at once.
EXAMPLE
On-chain wallet pays Lightning
Pick the cheapest of several providers, swap inside the payment.
THE PROMISE
Pay any address
As long as at least one provider implements a route, the wallet can pay it.
Built at bitcoin++ Berlin
What we added this weekend
MOBILE APP
Bark in Rate
Bark wallet in our existing app, paying Lightning, BOLT12 offers and Bark addresses.
RECEIVER
BOLT12 generation
Patched LDK over NWC issues the universal offer with ranked layers.
PAYER
Electrum providers on Nostr
Scanning, quoting and swapping with Electrum's swap providers. Likely the first wallet outside Electrum to do it.
Status, honestly
What works and what doesn't yet
WORKS
Payer, on mainnet
Scan, see priorities, live quotes from Bark routes and four Electrum providers.
WORKS
Receiver, on signet
A real LDK node issues the QR over NWC with the ranked layers inside.
WORKS
Swaps, on Mutinynet
Electrum swaps over Nostr paid and claimed in under 25 s.
NOT YET
One full Bark payment
End to end through the QR: receiver and payer ran on different networks.
NOT YET
Arkade direct
Needs a fee estimate from the wallet library.
NOT YET
Per-payment locks
The QR still carries static addresses.
Demo
See it in Rate
VIDEO 1 · 40 S
Pay with what you have
Scan, see their priorities, compare every route, pick one.
VIDEO 2 · 35 S
The receiver decides
On-chain first: their choice next to the best price.
LIVE
kaleidoswap.github.io/kaleido-pay
Videos, screens, slides, offer inspector.
What's next
From hackathon to standard
STABLECOINS
RGB and Liquid
Receive USDT on Liquid or RGB; the payer just pays sats.
PROVIDERS
More swap providers
KaleidoSwap makers and others alongside Electrum's, all on SSPS.
ARK
Universal Ark QR
A protocol for Ark codes without address reuse.
LOCKS
Per-payment locks
Pay on-chain or on Ark without a Lightning hop.
UPSTREAM
bLIP and LDK
Standardise the offer record; upstream the LDK changes.
MAINNET
Real payments
Mainnet receiver nodes and full payments end to end.