You will need a BOLT 12 enabled wallet/node in order to zap on this site, but you can still see the zaps without a wallet.
Inspiration
Zapping has become the killer app of Lightning, but utilizes Lightning Address or LNURL. These are often custodial solutions. Their reliance on web servers makes them prone to IP-based or geographic censorship. Even when people self-host their own LNURL servers, they still end up doxing their node's pubkey and spoiling their privacy.
How could we maintain zapping as the killer app of Lightning, while providing users a way to protect their privacy while opting out of custodial solutions and censorship?
Lightning had a protocol upgrade last year called BOLT 12 which may help us to fix many of these problems!
What it does
My project allows for social media tipping over Lightning. In technical terms, I built an implementation of Nostr Zaps that use BOLT 12 offers and take advantage of the latest-greatest protocol upgrades to Lightning. ZipZaps allow nostr users to tip each other's posts while maintaining self-custody and privacy.
How we built it
- A lot of time spent thinking on the protocol design
- I setup a NextJS website
- I used nostr-tools to make a basic nostr client on the website
- I used nostr1.com to create my own relay for dev purposes
- I used phoenixd (one on a server and one on my local dev) for BOLT 12 payments
Challenges we ran into
- Not a lot of wallets yet support BOLT 12, so limited on tooling to work with
- Minimal amount of data fits inside of an invoice_request onion message, meaning we have to send the zipzap request to a relay and only put the note ID inside o the invoice_request
Accomplishments that we're proud of
This proof of concept shows that BOLT 12 zaps can be done! Now that we have the proof, let's go make it better and ship better privacy and self-custody to everybody who uses nostr zaps!
What we learned
- Protocol design is hard
- Only a little bit of data can fit into a BOLT 12 invoice_request
What's next for ZipZap
- Add BIP353 support instead of just raw offers
- Create a Nostr NIP and get feedback
- Get feedback from Lightning devs
- Determine if there is a better way to do this
- Build tooling to help nostr clients integrate BOLT 12 a little easier


Log in or sign up for Devpost to join the conversation.