Bolt12 is the new common interface to Bitcoin payments
Vincenzo Palazzo · @PalazzoVincenzo · Tue 13 Oct 2026 · 3:45–4:15 PM ET · Main stage · TABConf 8
1
We spent years hiding that.
6
Users never see the plumbing.
7
Which protocol does your bank speak?
10
The interface is shared.
11
spark is great, until it's not.
13
A shared mistake. A shared fix.
14
Bolt12 is the account number.
15
Publish once.
Check the blinded path before the tattoo.
17
Between the layers.
Lightning · Spark · Ark · LSPs · ecash → one offer, one name
21
₿you@domain → ark1…
ark1qzpq904am6clw3pgqwyh4p02708fy4xs0hcpwt7rwfdttuxsjamecfjuejh7a4eauna0vf2eegcw95w3dyjzl8gykpye50e9qneuwezqkp4yac
22
₿you@domain → spark1…
spark1pgss8d9lf3p23g5a3ykayn5wseuqnjd2wkzfn3t7apck9nwnfkf0gvpn3h7y0t
23
You just published your history.
docs.arkadeos.com/wallets/getting-started/arkade-addresses · docs.spark.money/wallets/privacy
24
Same name. New wallet.
tabcon8@sonarprivacy.xyz · Breez Liquid → Cashu → Lexe
26
Contacts. Names. Receipts.
27
One offer.
tabcon8@sonarprivacy.xyz

29
Old wallet. New wallet.

30
Ark already pays offers.
Second · bark: Wallet::pay_lightning_offer (Ark → Lightning gateway)
33
Spark: you're one step away.
34
1. Pay offers.
CLN: xpay / fetchinvoice · LDK Node: bolt12_payment().send() · LND: LNDK
37
2. Receive offers.
CLN: offer · LDK Node: bolt12_payment().receive() · LND: LNDK v0.3
38
3. ₿you@yourdomain
BIP-353 · TXT at <user>.user._bitcoin-payment.<domain> → bitcoin:?lno=… (an offer, not a layer address)
39
Links.
github.com/lightning/bolts/blob/master/12-offer-encoding.md
github.com/bitcoin/bips/blob/master/bip-0353.mediawiki
github.com/lightning/blips/blob/master/blip-0042.md
lightningdevkit.org
github.com/lightningdevkit/ldk-node
docs.corelightning.org
github.com/lndk-org/lndk
bolt12.org
40
Make payments just work.
41
Pretty straightforward, right?
42