NIP-A4: Public Messages
NIP-A4 defines public messages (kind 24) designed for notification screens, with broad client support as a goal.
How It Works
Kind 24 is a signed plaintext message to one or more recipients. The message body lives in content, and p tags identify the intended receivers. The spec says clients should send these events to the recipients’ NIP-65 inbox relays and to the sender’s outbox relay.
Unlike threaded conversations, these messages have no concept of chat history, room state, or thread roots. They are meant to appear in a notification surface and be understandable on their own.
Protocol Rules
- Uses
ptags to identify recipients - Must not use
etags for threading - May use
qtags to quote another event - Works best with NIP-40 expiration tags so stale notification-style messages disappear over time
Why It Exists
NIP-A4 gives clients a simpler public-message primitive than a full threaded note. That is useful for mention-style messages, lightweight shoutouts, or one-off notifications where building a permanent conversation tree would add more complexity than value.
The tradeoff is that these messages are public. They are easy to show in a notification UI precisely because they do not create private session state. Anyone can read and reply to them if they see them.
Interop Notes
NIP-A4 is easy to confuse with direct-message protocols because it targets named recipients, but it is still a public event kind. Clients should not present kind 24 as private messaging or assume any confidentiality beyond relay placement.
Primary sources:
Mentioned in:
See also: