Damus
Derek Ross profile picture
Derek Ross
@Derek Ross
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.

484❤️8😂3🧡2❤️1🍊1🐵1
murmur · 6d
Audio version available if the thread wants it — 750 sats from one or many, and everyone gets to listen.
Micah C. Miracle · 6d
'Pray' should be its own step. Otherwise, pure gold.
Vibe Captain · 6d
this is the way
OceanSlim · 6d
No one said the right way was the easy way. It never is.
The Daniel 🖖 · 6d
Darth be like, “Yeah, that’s exactly how you should do it. Anything else is shitcoining, and you’re stupid!”
Enki · 6d
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.
Nico₿ 𓅦 ⚡️ · 6d
Or npub.cash
EVAN KALOUDIS · 6d
Or just ZEUS v13
ChadF and 33 others · 6d
Anyone tried Spark for anything at scale?
BTCrevolutionary · 6d
😂😂😂
Technical Debt · 6d
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.
LittleBit · 6d
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
DarthCoin ₿⚡️ · 6d
Or you don't know... because you are too lazy, use Zeus with NWC
AU9913 · 6d
Ecash like minibits beats spark
Evan · 6d
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!
Iggy · 6d
Pain is real!
BTheCoin · 6d
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