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.

Reply to this note

Please Login to reply.

Discussion

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.

You can split infinitely actually. The issue is that fees are variable in LN. The fewer splits, the less is paid in fees, know what I mean?

50 sats, split 2 ways is NOT 25 and 25. At BEST it’s 25 for you and 24 for the splitter since 1sat tx fee. Most likely it’s 25 for you 20-22 for them. If you do 10 splits, you can see how splitters 7, 8, 9, and 10 may not even get a single sat.

Also some routes are very liquid and cheap where you can realistically get somewhat good estimates for fees. Other routes (especially those who self host nodes and don’t have a TON of liquidity and channels) could be much larger fee.

Not to mention this is WIDE open for fee-siphoning attacks. Is the algorithm for splitting zaps going to be THAT smart? Wouldn’t every single service provider / wallet have to face this same problem?

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.

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 🫡

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

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 🙏

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.

For the record, we’re not “behind Fountain”. Fountain simply leverages ZBD as their LSP.

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.

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.

Not how Lightning works unfortunately.

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.