How would you redesign zaps from the ground up if all of nostr switches to the new zap standard tomorrow?

Reply to this note

Please Login to reply.

Discussion

The idea that it was rushed is so bs. I was thinking about how to do it for like a year and gathered feedback and iterated on it with other client devs at the time. If you have a better design please share it. It’s a really hard problem that took a long time to even provide a somewhat workable solution that wasn’t horribly insecure. lnurl was a pragmatic solution and the most common way to fetch invoices from the web at the time, and still is.

Can I ask why you elected to not have Damus also be a native lightning wallet?

I imagine it was because people would prefer to use their own, existing wallet. NWC can remain a feature for the group that prefers it, but it’s still not entirely as seamless as if lightning were native to the app and I could zap directly from my Damus balance.

It adds more development overhead to the app, but that’s what LSPs and APIs are for :)

You say so yourself that lnurl was the pragmatic solution. The PR discussion itself showed a lot of contention and appeals towards a nostr native solution that did not build on lnurl.

I don't want to criticizing you for being a pragmatic builder, that's great.

It's easy for me to just bitch about it without making a contribution.

NWC didn’t exist at the time

Not with that name but the idea of requesting invoices over relays was already floating around at the time. That's why I feel it was rushed.

I still don’t think I would have done that, lnurl was a much more established way of fetching invoices and it made onboarding to services like WoS much easier. There is some fantasy scenario where not using lnurl would have improved non-custodial adoption, but I think it would have only hindered adoption and made it more difficult to onboard wallets who could care less about running a nostr relay.

I don't think it's fantasy at all. Node package managers could easily have offered receiving capable NWC software (when they cannot do it for lnurl).

Wallets could have implemented the ability to pay to nprofiles directly.

Even mobile wallets (such as mutiny) can ran builtin NWC for sending (so why not for receiving).

Would it take more time? Yes. But doing things in the name of fast adoption is my definition of rushing it.

It’s only because of Zaps being demonstrated in practice that there was enough excitement and momentum for building other better tooling and for people to spend the extra time to try more complex setup.

Hindsight forgets the state of mind of people back then.

I recognize there was a demand for social micro tipping. Just disagree on the approach.

This is not just hindsight, check the initial discussions and contemporary proposals.

Even with hindsight, it's still important to reflect back on what could have been better.

https://github.com/nostr-protocol/nips/pull/685

No lnurl, no public webserver required. Can be run by any user, even in their phone.

Is this a nwc upgrade with a function of fetch invoice without need for lnurl?

That pr is not an lnurl replacement, its for fetching invoices from your own node

How is that different from lnurlp? It's also service that fetches invoices on demand from your own node.