On-Behalf AltZap Request (Kind 9523)
A kind 9523 request is an AltZap Request signed by a proxy agent — for example Zapf's Discord or Telegram bot — on behalf of a user who has no Nostr key.
In NIP-57 the signer of a zap request is the sender. A bot zapping for a Discord user would then look like the bot paid. Kind 9523 fixes that: the sender is the P tag, and clients MUST read P, not the event pubkey.
The full definition is in NIP-AZ.
Example
{
"kind": 9523,
"content": "Sent via Zapf on Discord",
"tags": [
["p", "<recipient_ConnectionKey>", "discord"],
["P", "<sender_ConnectionKey>", "discord"],
["amount", "100000"],
["chain", "flokicoin"],
["lnurl", "lnurl1..."],
["relays", "wss://relay.zapf.app"]
],
"pubkey": "<bot_pubkey>",
"created_at": 1709424000,
"id": "...",
"sig": "..."
}
A 9523 carries exactly one P tag.
How Zapf handles it
Zapf's LNURL server validates a 9523 exactly like a 9520, and its receipt copies the sender from P. Clients that see a 9523 in a receipt's description can look up the ConnectionKeys' Identity Connections to show real Nostr profiles, and fall back to the platform profile otherwise.