{"type":"rich","version":"1.0","title":"charliesurf wrote","author_name":"charliesurf (npub15w…tpy0d)","author_url":"https://yabu.me/npub15wtwxm5k92v3mtppwvwaghdzaclajfjavhuc88q4s3effmyeruwqmtpy0d","provider_name":"njump","provider_url":"https://yabu.me","html":"how does nostr track who zaps who? #asknostr \n\nNostr doesn’t track zaps at the protocol level.\nZaps are inferred by clients by correlating Lightning payments with Nostr events.\n\nHere’s the exact flow,\n\n1. Zap request (Nostr side)\n\nUser A clicks “zap” on User B’s note or profile.\n\nUser A’s client creates a zap request event:\n\nkind 9734\n\nContains:\n\npubkey of zapper\n\npubkey of recipient\n\nnote ID (optional)\n\namount (msats)\n\ncomment (optional)\n\nThis event is signed and sent to relays.\n\n\n2. Invoice generation (LNURL)\n\nUser B’s profile has an LNURL / Lightning address in metadata.\n\nUser A’s client calls that LNURL endpoint.\n\nThe endpoint returns a Lightning invoice that includes:\n\nThe zap request event encoded in the invoice description or metadata.\n\n\n3. Payment (Lightning side)\n\nUser A pays the invoice.\n\nLightning itself is blind — it doesn’t know about Nostr.\n\nNo identity is revealed on Lightning.\n\n\n4. Zap receipt (bridge back to Nostr)\n\nAfter payment:\n\nThe LNURL server verifies payment.\n\nIt publishes a zap receipt event:\n\nkind 9735\n\nReferences:\n\nthe original zap request (9734)\n\nthe invoice / preimage\n\nrecipient pubkey\n\nThis receipt is sent to Nostr relays.\n\n\n5. Client-side reconstruction (this is the key)\n\nClients infer “who zapped who” by:\n\nMatching 9735 (receipt) → 9734 (request)\n\nVerifying signatures\n\nChecking pubkeys and note IDs\n\nSumming amounts per pubkey\n\nThere is no global ledger.\n\nEach client independently reconstructs zap history from events it sees.\n\n\nImportant implications:\n\nZaps are soft-consensus, not canonical.\n\nRelays don’t enforce zap validity.\n\nDifferent clients may show different zap counts.\n\nFake zap receipts are possible, but good clients verify:\n\n-invoice hash\n\n-preimage\n\n-LNURL domain\n\n-signature chain\n\n\n\nNostr = intent + attribution\nLightning = payment\nClients = accountants\n\nyou can create custom zap analytics, trust scores, weighted zaps, or verified-only modes without touching the protocol."}
