alex,
@alex@gleasonator.com avatar

It seems like a mistake that you can't pass an LNURL (or LUD-16 identifier) straight into WebLN to pay an invoice. The client should not have to connect to remote servers and do the whole back-and-forth just to zap someone. This makes it impossible to implement Lightning donations in Soapbox as a purely client-side feature without completely removing the CSP.

errhead,

@alex There is some discussion with wallet developers and podcast developers about clients just passing the lightning address to the wallet and skipping the well.known lookup here
https://github.com/Podcastindex-org/podcast-namespace/discussions/576#discussioncomment-8174543

ChadF,

@alex

This is why PC 2.0 uses keysend payments but you can't say anything bad about LNURL or the LNURL Mafia will come for you.

cc @dave

alex,
@alex@gleasonator.com avatar

@ChadF @dave Looking into keysend... I don't think LNURL is precious at all. It's a wacky idea to bech32 encode URLs that will just need to be decoded back into URLs anyway. And then what do they do, they put a lightning: prefix in front of it!

alex,
@alex@gleasonator.com avatar

@ChadF @dave I argued with ChatGPT about keysend for a while. It seems they added special support for Podcasting 2.0, but there is no generic use-case unlike LNURL. So it wouldn't be a suitable replacement unless every person runs their own Lightning node, which defeats the purpose of Lightning. Or if the TLV registry standardizes generic user accounts and Lightning nodes actually implement it.

https://chat.openai.com/share/4814c76c-1624-421f-9609-0e75786d8a7e

alex,
@alex@gleasonator.com avatar

@ChadF @dave If keysend is the simpler solution, why hasn't anyone invented a bech32 for it yet? lnid1, and then simply encode the parameters to WebLN.keysend in the data portion. Seems like an obvious solution?

alex,
@alex@gleasonator.com avatar

@ChadF @dave I forgot to add, I figured out the LNPay TLV can be used as a generic one. Alby does it.

dave,
@dave@podcastindex.social avatar

@alex @ChadF The simple answer is that Lightning Labs never liked keysend because it was a sender generated nonce instead of receiver. They did it sort of begrudgingly. The initial Lightning spec worked purely on invoices and there has been a weird hesitancy towards keysend ever since. It baffles me.

dave,
@dave@podcastindex.social avatar

@alex @ChadF The true solution is BOLT12, which obviates the need of all of this by allowing for open invoices to live forever and accept any amount. LND is just now starting to build this with v0.18.

errhead,

@alex @ChadF @dave for supporting wallets like Alby, fountian.fm, v4vapp, etc.

to send a keysend cross app comment zap to errhead@podcastindex.com I first use an API call to get the user account info from podcastindex and find the lud16/⚡ of errhead@getalby.com

Lookup keysend node and user info at https://getalby.com/.well-known/keysend/errhead
{"status":"OK","tag":"keysend","pubkey":"030a58b8653d32b99200a2334cfe913e51dc7d155aa0116c176657a4f1722677a3","customData":[{"customKey":"696969","customValue":"LiPQ3WVvdeEFnuhcWNLy"}]}

the pubkey is the lightning node address, the custom key is different for each wallet provider so far, and the custom value specifies which users wallet to send the payment to.

send the payment using a keysend supporting webln implementation, which is currently only Alby's extension as far as i know, or an API call which has more options.

await webln.enable();
const result = await webln.keysend({
destination: "03006fcf3312dae8d068ea297f58e2bd00ec1ffe214b793eda46966b6294a53ce6",
amount: "1",
customRecords: {
"696969": "LiPQ3WVvdeEFnuhcWNLy"
}
});

Metadata is passed using the TLV custom record. for user to user cross app comment zaps I use a subset of the full boostagram TLV https:/github.com/Podcastindex-org/podcast-namespace/blob/main/value/blip-0010.md

For payment confirmation I use the getalby webhook to the PeerTube server. https://guides.getalby.com/developer-guide/v/alby-wallet-api/reference/api-reference/webhook-endpoints

alex,
@alex@gleasonator.com avatar

@errhead @ChadF @dave Fantastic! The .well-known/keysend URL is what I was missing

feld,
@feld@bikeshed.party avatar

deleted_by_author

  • Loading...
  • alex,
    @alex@gleasonator.com avatar

    @feld Yes but unlike media proxy the API isn't serving that URL. You would need an API that let's you proxy any URL, losing the security features of the proxy.

    feld,
    @feld@bikeshed.party avatar

    deleted_by_author

  • Loading...
  • alex,
    @alex@gleasonator.com avatar

    @feld It would match a pattern. https://<host>/.well-known/lnurlp/<name>. It could be implemented securely in Pleroma

  • All
  • Subscribed
  • Moderated
  • Favorites
  • random
  • DreamBathrooms
  • ngwrru68w68
  • tester
  • magazineikmin
  • thenastyranch
  • rosin
  • khanakhh
  • InstantRegret
  • Youngstown
  • slotface
  • Durango
  • kavyap
  • mdbf
  • tacticalgear
  • JUstTest
  • osvaldo12
  • normalnudes
  • cubers
  • cisconetworking
  • everett
  • GTA5RPClips
  • ethstaker
  • Leos
  • anitta
  • modclub
  • megavids
  • provamag3
  • lostlight
  • All magazines