nips/37.md
2024-05-30 15:31:33 -04:00

1.5 KiB

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 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.

{
  "kind": 31234,
  "tags": [
    ["d", "<identifier>"],
    ["k", "<kind of the draft event>"],
    ["e", "<anchor event event id>", "<relay-url>"],
    ["a", "<anchor event address>", "<relay-url>"],
  ],
  "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.

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.

{
  "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 write relays.