NIP-37 ====== Draft Events ------------ `draft` `optional` This NIP defines kind `31234` as a private wrap for drafts of any other event kind. The draft event is JSON-stringified, [NIP44-encrypted](44.md) to the signer's public key and placed inside the `.content` of the event. An additional `k` tag identifies the kind of the draft event. ```js { "kind": 31234, "tags": [ ["d", ""], ["k", ""], ["e", "", ""], ["a", "", ""], ], "content": nip44Encrypt(JSON.stringify(draft_event)), // other fields } ``` A blanked `.content` means this draft has been deleted by a client but relays still have the event. Tags `e` and `a` identify one or more anchor events, such as parent events on replies. ## Checkpoints `kind:1234` defines checkpoints that belong to a parent `kind:31234` event. These can serve to provide a revision history of a parent event. ```js { "kind": 1234, "tags": [ ["a", "31234::"] ], "content": nip44Encrypt(JSON.stringify(draft_event)), } ``` ## Relay List for Private Content Kind `10013` indicates the user's preferred relays to store private events like Drafts. The event MUST include a list of `relay` URLs in private tags. Private tags are JSON Stringified, NIP-44-encrypted to the signer's keys and placed inside the .content of the event. ```js { "kind": 10013, "tags": [], "content": nip44Encrypt(JSON.stringify([ ["relay", "wss://myrelay.mydomain.com"] ])) //...other fields } ``` Relays listed in this event SHOULD be authed and only allow downloads to events signed by the authed user. Clients SHOULD publish kind `10013` events to the author's [NIP-65](65.md) `write` relays.