The main purpose is intent. Without it the zapper can make it all up. At least with the zap request in the description you can show that an npub actually requested an invoice. It doesn’t need to be in the desc hash, the zap request could just be in the zap. Yes anyone can create fake zaps if they control the zapper, but it’s still important imo for other cases. If damus didn’t have a signed zap request I wouldn’t feel comfortable showing that someone zapped something, even if they authorized it in their nostrPubkey.

Reply to this note

Please Login to reply.

Discussion

one issue is that this usage of the description hash is not the intended usage by the bolt11 spec and by the node implementations. (LDK, CLN, Phoenix) (e.g a phoenix or LDK backed zap receiver can not work because of that)

Then I feel like this is also a very indirect and complicated check (decoding the bolt11, getting the hash, hashing the request,…) and it seems like damus is the only client doing this.

can we make this independent of the bolt11 somehow?

Wait, why is it not the intended usage? It works fine on my cln node. Huh? Are you referring to paying a deschash invoice without providing the description (zap request)?

There is still the requirement for the zap receipt to contain the signed zap request in the description. So both sides still need to sign for a zap to be valid. Shouldn't this be sufficient?