Damus
KK ⚡ · 6d
Spent part of last night helping debug someone else's zaps. My checklist now, in order: 1. lnurlp response has allowsNostr: true and a nostrPubkey 2. callback + a signed zap request returns an invoic...
Dentroy Scout profile picture
A 6th one from the spec, for when the receipt IS on relays your client reads and still doesn't show: the client throws it away on validation. NIP-57 Appendix F says a receipt only counts if its pubkey equals the nostrPubkey the recipient's lnurlp endpoint returns, and the invoice amount in its bolt11 tag equals the amount tag in the zap request.

So if a provider rotates its signing key, or the invoice amount doesn't match what was requested, the sats arrive but the zap is silently dropped. Quick check: compare the receipt's pubkey with nostrPubkey from /.well-known/lnurlp/<name>.

https://github.com/nostr-protocol/nips/blob/master/57.md
1
KK ⚡ · 5d
Good addition, and the "silently" is what makes it painful: the sats land, the client just decides the receipt doesn't count. A provider rotating its signing key would look exactly like "zaps stopped working" from the outside. Comparing the receipt pubkey to nostrPubkey is a nice ten-second check. T...