walker @walker - 2y
Just posted a bounty for 500,000 sats: ZAP SPLIT LIST: Split Percentage of Received Zaps with Designated npub(s) During #Nostrica, we discussed how it would be great to split a percentage of the zaps you receive (as a creator or just in general) with the developer of the client you are using (e.g. jb55 for Damus users, sirius for iris, Kieran for Snort, etc.). After thinking more, perhaps it would be better to allow users to add *any* npub(s) to their "split list" (this could be used to help fundraise for a specific cause, share value with a co-creator, etc.). Happy to take feedback on what the best implementation for this would be. Pura vida 💜 https://nostrbounties.com/b/naddr1qq9rzd3h8y6nsd3cxueqygxy3c5lqj6g9nqpeg0ea7xgdmurrrq9nc8fx5er2930pq8jdc2vzypsgqqqw4rstklhl9
714f9 - 2y
And then let’s add Nostrica funding/npub to the equation, so we can mitigate jacks donation from it! Nostrica 2024 fully funded by Zaps ⚡️⚡️⚡️
JeffG @JeffG - 2y
I think #[2] has something like this already running on LNbits.
Added bounty: #[3]
1b11e - 2y
The same issue will be faced here as it exists with v4v podcasting through keysend. It costs fees to split payments further. If you split 50 by 10npubs you’d expect 5 sats each. Reality is it costs many sats to send all of these txs and so the last split receivers will NOT receive the correct amount. This renders the ENTIRE premise null here as it’s going to be fully random as to WHO gets sats and who doesn’t because it was taken in fees. You’d need to do some extremely perfectly estimates fee estimation on LN (good luck!) for this to work at scale.
What about a single split? Is that feasible? i.e. I receive a zap, and a percentage automatically goes to #[3] (and only to him) because I am using Damus and want to give him value for facilitating my experience on nostr.
xiangcai @xiangcai - 2y
Looking forward to that nip! Maybe one more step is random % to split to dedicated npubs, which is way more interesting and fun!
50c59 - 2y
I think snort has this in its settings?
Appreciate this insight — seems like multiple splits would not be feasible/desirable, but a single split (which is my base use case) would be doable with minimal fee loss. Just trying to think of ways to make the sharing of creator value with client devs more frictionless so they can keep doing great work and “keep the lights on.” Money was, understandably, one of the big overarching themes of Nostrica in terms of the challenges client devs and relay operators face, so want to do whatever I can to help in this arena. Open to any other suggestions, and can modify the bounty accordingly.
7ca66 - 2y
Have discussed this with #[5] and recently #[6] as I’m very keen on having splits on lightning polls. It’s going to need a separate NIP but a lot of the value block concept in podcasting 2.0 could be lifted and reused in nostr: https://github.com/Podcastindex-org/podcast-namespace/blob/main/docs/1.0.md
I’d advise discussing these splitting ideas w the folks from podcasting 2.0. I’m sure they have some ideas. But they also have explicit minimums on the split. Can’t split less than 10 sats for example. And the fee distribution is very visible for the users. Single splits seem fine without too much overhead / fee costs. 10 splits at best cost 10 sats. At worst could be much much more, rendering it infeasible. Maybe down the line when LN is much larger we can have better fee estimation but atm it can vary WILDLY.
Really appreciate your feedback on this. Feeling very grateful to all the incredible nostr devs and trying to think of ways to support them 🫡
That’s great and all. But as I explained above, the idea of splitting is great, the problem is the ACTUAL executing of it. Fees in LN are variable and that will lead to splitters receiving LESS than they were supposed to. And it’s all base on ORDER OF THE SPLIT. The first splitter will get the total share they were supposed to, but then the following may not, the next one likely won’t, and the last splitter will DEFINITELY not receive the correct amount (because there are fee costs in the mix here). Doing it on LN Address is better than the keysend flow for sure though, which I know is a major active discussion at Podcasting2.0 folks. Given that ZBD powers Fountain (the biggest podcasting 2.0 platform) we have tons of insights like these. Happy to share more.
I’m going to add some of the notes you’ve posted here into the bounty and edit it a bit to make it specific to single splits. Seems like that’s the most practical way to start and better to keep the initial scope small then expand from there (if needed) Appreciate you, Andre 🙏
fe322 - 2y
If fees are a problem with splitting individual zaps, how about the client keeps track of zaps and sends out a zap when a certain beneficiary hits a threshold?
Didn’t know ZBD was behind Fountain, very cool 🤙 Take your point on fees and order. What are talking about in real numbers though? Say I wanted to do a 4-way split on 100 Sats I was being zapped; in my experience the fees on this are going to be 0-2 Sats most of the time, sure that doesn’t flow through perfectly per the Zapper or the Splitter’s desires but losing a couple Sats to fees is acceptable for the utility of passing through payments like this. I can image a 7/21 Sat zap isn’t going to be great though with 4 splits.. Maybe if you can elaborate with some examples we can find a happy medium but otherwise even 1 split like Walker suggested is a good start.
Marius @MariusFebruary - 2y
#[3] has suggested implementing this feature on the lightning protocol level and called it *Lightning Prisms*. Obviously, if this got implemented, we would not much less code in nostr. Either way, I love this feature. Imagine a prism for each presentation with the QR code presented, a #nostrica prism; a #[2] prism, etc.
[Lightning Prisms](https://dergigi.com/2023/03/12/lightning-prisms)
Updated the bounty description to be more limited in scope: Split Percentage of Received Zaps with Designated (single) npub Thank you #[0] for the great insights into the fee-side difficulties of splitting at scale 🙏 #[1]
For the record, we’re not “behind Fountain”. Fountain simply leverages ZBD as their LSP.
Shap @Shap - 2y
Yes, and relay…
The reality of 0-2 sats being the fees is unrealistic at scale given that LN is a “living organism”. Liquidity changes. Channels get depleted. Routes can go from being “cheap” to being quite expensive. I said before, one can split things infinitely, it just doesn’t scale 100% because of the fees. Agree that “some fees” are okay because everyone’s still getting value out of it. But say you have 100 sats divided evenly by 4. You’d expect 25 each. That’s not what’s going to happen. What if on the third split there was a 5-10 sat fee (for whatever reason), that fee is taken from the total 100 sats, not from the 25 sats that’s being sent. LN payments incur the fee AT THE TIME OF THE PAYMENT. So unless you know ahead of time the fee, you can’t say “oh you are supposed to receive 25 but your fee is 10 so we’ll send you 15 instead”. It’d be more like “sent you 25sats but it cost 10 sats to do that so the next splitter can ONLY RECEIVE 15 because 10 of the 100 were spent on fees”. It’s hard to explain in writing like this but maybe I get the point across.
ae668 - 2y
Is a fixed fee indexed to the average total network cost out of the question? I have no idea how to implement such a mechanism, or if it’s even possible, but it seems like the correct way to do it.
No your explanation makes complete sense. I guess my view is simply that I’d prefer to have those Sats eaten in fees for the utility of having automated splits. A 10% tithe is kind of what I was thinking, #[7] mentioned similar in his recent pod too - this is something I think every Nostrich should be willing to participate in to help fund the builders in V4V. Given the order of operations matters to the fees, I could simply set my tithe split as the first route for payment and then any fees would be eaten in my remaining 90%. Since zaps are an unexpected bounty - ie, I’m receiving these because somebody else valued my content, not because I agreed a price and transacted - I’m not so bothered losing Sats to a tx fee as they weren’t my Sats to begin with, I’m still benefiting from the Zap and instead of 90 landing in my wallet I get 85 but my chosen devs get their 10, well end of the day that has served its purpose.