Skip to content

Conversation

@callebtc
Copy link

@callebtc callebtc commented Oct 31, 2025

The Cashu tokens in NIP-61 nutzaps contain the receiver's pubkey which allows observes to verify that the payment was indeed sent to the user that's being zapped. However, since the tokens only contain the pubkey, the payment could been replayed to the same user.

Here, we introduce a new e field in the Cashu token's tags field so that the payment commits to the event that's being zapped. We also add a P tag with the sender's nostr pubkey. That way, a zap to one event can't be replayed to zap a different event or by different user.

This PR also improves some wording and clarifies that the proof tags in the nutzap nostr event should repeat for multiple Cashu proofs.

@callebtc callebtc changed the title NIP-61 replay protection: add e tag in Cashu proof NIP-61 replay protection: commit to e tag in Cashu proof Oct 31, 2025
@callebtc callebtc changed the title NIP-61 replay protection: commit to e tag in Cashu proof NIP-61 replay protection: commit to P and e in Cashu proof Oct 31, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant