Spec 5521: Zap Receipts

Kind 5521 is a specialized Nostr event kind used by Zapf to represent a “Zap Receipt” or proof of payment. It provides a standardized way to signal that a payment has been successfully completed, especially for custodial or escrowed transactions.

Event Structure

{
  "kind": 5521,
  "content": "Payment received for 100 sats",
  "tags": [
    ["e", "<original_zap_request_id>"],
    ["p", "<recipient_pubkey>"],
    ["amount", "100000"], // msats
    ["bolt11", "<invoice_string>"],
    ["description", "<zap_request_json>"],
    ["preimage", "<payment_preimage>"]
  ],
  "pubkey": "<zapf_service_pubkey>",
  ...
}

Significance

  • Confirmation: Unlike a standard Kind 9735, which is generated by the Lightning Service Provider (LSP), Kind 5521 can be generated by other entities (like the Zapf escrow service) to confirm internal ledger updates or custodial transfers.
  • Traceability: It explicitly links the payment preimage to the original request, providing cryptographic proof of settlement.

Usage

Clients should listen for Kind 5521 events to update UI state (e.g., confirming a zap was sent) when interacting with Zapf-managed identities.