Introducing Ditto Self Sovereign Zaps: How to Accept Zaps on Nostr (99 Easy Steps) 1. Buy computer parts because pre-builts are fiat 2. Assemble computer (don't forget thermal paste this time) 3. Install Ubuntu Server because you're not a degenerate 4. sudo apt update && sudo apt upgrade (pray) 5. Configure static IP on your router 6. Forward port 8333 (call ISP if CGNAT, they'll say no, cry) 7. Install Bitcoin Core from source because you verify everything 8. Wait 3 days for IBD (initial blockchain download, not insomnia) 9. bitcoin-cli getblockcount (compare to mempool.space, panic if different) 10. Wait 3 more days 11. Create bitcoin.conf with txindex=1 because you'll need it later 12. Install Tor because privacy isn't just for criminals Karen 13. Configure Bitcoin Core to use Tor hidden service 14. Install LND (Lightning Network Daemon) 15. Create lnd.conf with bitcoind backend 16. Generate wallet seed (write it down, NOT in a .txt file on your desktop) 17. Wait for LND to sync (another day of your life, gone) 18. lncli getinfo — confirm channels = 0, feel empty inside 19. Send BTC to your LND wallet on-chain (pay $4 in fees) 20. Open your first Lightning channel (pay another $2 in fees) 21. Channel is pending. Wait 6 blocks. Go outside. Touch grass. 22. Channel is open! You have 0 inbound liquidity. Cool. 23. Open MORE channels with balanced liquidity 24. Buy inbound liquidity from a peer because of course that's a thing 25. Install RTL (Ride the Lightning) to manage your node 26. Configure RTL with LND macaroons 27. Generate a Tor hidden service for RTL 28. Now install LNURL 29. Clone lnurl-poole repo from GitHub 30. npm install (it works first try, you lucky bastard) 31. Configure LNURL with LND backend 32. Create LNURL-pay endpoint 33. Set up Nginx reverse proxy 34. Install Certbot for SSL (Let's Encrypt, not your Let's Not) 35. Configure DNS records (A record, AAAA record, TXT because why not) 36. Wait for DNS propagation (1-48 hours, spin the wheel) 37. Test LNURL endpoint (it fails) 38. Debug for 2 hours 39. It was a typo in the config 40. Test again — it works! 41. Now install Nostr Wallet Connect (NWC) 42. Clone nwc-payserver or use Alby's NWC implementation 43. Configure NWC to connect to your LND node 44. Generate NWC connection string (this is the magic string) 45. Format it as nostr+walletconnect://... 46. Copy the string 47. Open your Nostr client (Damus, Amethyst, or whatever) 48. Settings → Wallet → Connect Wallet 49. Paste the string 50. It doesn't work 51. Check LND logs 52. Check NWC logs 53. Check firewall rules 54. The port was closed. Open it. 55. Try again 56. It works! 57. Post a note on Nostr 58. Someone zaps you 21 sats 59. You cry tears of joy 60. The lightning invoice settles 61. Check your balance — 21 sats! 62. Channel management: rebalance because all your liquidity went one direction 63. Install Balance of Satoshis for rebalancing 64. Run bos rebalance and pay more in fees than the zap was worth 65. Install HTLC insurance (this is made up but you'd believe it by now) 66. Watch your node 24/7 like a newborn child 67. Set up monitoring with Prometheus + Grafana 68. Configure alerts for channel closures 69. Set up backup script for channel state 70. Test backup restore on another machine (you won't, but you should) 71. Update Bitcoin Core (compile from source again, 45 minutes) 72. Update LND (another 20 minutes) 73. Pray the updates don't break anything 74. They broke something 75. Roll back, try again 76. Successfully updated 77. Someone zaps you 1000 sats! 78. You made $0.77!!! 79. Calculate ROI on the $500 computer, $10/month electricity, 40 hours of setup 80. At this rate you'll break even in 7 years 81. Worth it 82. Write a shitpost about the experience 83. Get zapped for the shitpost 84. 2100 sats 85. NOW we're talking 86. Configure auto-rebalance cron job 87. Set up watchtower for backup channel monitoring 88. Install charge-lnd for automated fee management 89. Realize you've become a full-time Lightning Network administrator 90. Quit your job 91. Start a Lightning node management consulting business 92. Charge 10,000 sats/month per node 93. Get 3 clients 94. 30,000 sats/month revenue 95. That's $23 96. But you're your own boss 97. And you can accept zaps 98. Copy paste one string 99. Satoshi's vision achieved Or you know, use Spark. View quoted note →

Replies (48)

I mean, yeah, I do this, but the dude and his gf beside me using a metal detector to look for shit at the lake probably won't do that. I didn't ask though. I just walked past and continued to shitpost like a true Nostrich.
You forgot steps negative 10 through 0, which involve bringing your own sand up from the beach and making a fab and making chips so you can have a computer to self-host on.
The right decision is different per person though. What's right for you might not be right for me or a random newbie. Not all of us fit in the same box. This is why I love having a variety of solutions. My nodes been running for 6 years now. I'm not shutting that fucker off anytime soon.
Would need to add some steps about zaps failing because of the service not running or hodl invoices timing out and using an LNURL domain you don't control. 🫂 Shitpost aside, love Zeus. Use it every day.
I have not used Zeus Pay LNURL to a node in the phone since you launched this feature and service so I could be incorrect if there's not still potential for failure of zaps unless you're opening the app and checking throughout the day.
Mofos follow tutorials like that to do anything on ubuntu/arch and still have the audacity to say they won’t use nixOS because they don’t want to hack their distro using a text file because it’s too complex.
Gotcha. Well I’ll have my LLM read the contributions doc and decide if it’s worth the effort to re-submit all my closed MRs. 😉
Nothing else available offers an instant-on embedded solution in apps. There’s a reason why clients are migrating to this, and most will offer it as the primary option before long. Hint: The target audience isn’t existing bitcoiners.
Yeah idk what spark did It’s better if an app uses the Breez SDK to implement spark because that enables some privacy and quality of life features by default
Unless you want to get locked in a cage, don't forget to calculate your cost basis for every transaction and timely remit estimated withholdings to the IRS and your state and local tax authorities!
Wow, this is epic! 🚀 I love the dedication and all the steps you broke down. From zero to zap in no time! Would love to hear your thoughts on using Spark too! 🌟 #Bitcoin #Nostr