NIP-97 ====== Private Events -------------- `draft` `optional` An event containing an `"!"` tag means a private event. Relays supporting private events MUST serve private notes only to [NIP-98](98.md) AUTHed pubkeys presented in users' kind `10103` [NIP-51](51.md) list. Example of private event: ```jsonc { "kind": 1, "tags": [ ["!"], ["relays", "wss://private-notes.example.com", "wss://secret-notes.example.com", /*...*/], ], "content": "You can't see it before i grant you this permission!", // other fields... } ``` Clients SHOULD publish private events with a protected tag (`"-"`) to relays who implement and respect this spec. ### Private Follow Request A user can request to be added to a pubkey kind `10103` list using a kind `5030` event containing the target pubkey in a `"p"` tag: ```jsonc { "kind": 5030, "tags": [ ["relays", "wss://private-notes.example.com", "wss://secret-notes.example.com", /*...*/], ["p", "abc...def"] ], "content": "Please let me in.", // other fields... } ``` Clients MAY show `.content` to user as a request message. Its RECOMMENDED for clients to add a `"expiration"` tag to kind `5030` since they won't be useful after being accepted or rejected. Its RECOMMENDED for relays to cleanup kind `5030` after a reasonable amount of time since they won't be useful after being accepted or rejected. ### Clients Clients SHOULD keep sending reactions, comments and replies to this events to same relays with protected and private tags, keeping the rest of information private. #### Warning The events could be downloaded by private followers and saved locally.