upleb.uk

Public git repos — served from a NIP-34 GRASP relay at git.upleb.uk

summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPablo Fernandez <pfer@me.com>2024-12-19 15:17:55 +0000
committerGitHub <noreply@github.com>2024-12-19 15:17:55 +0000
commit8d144906923132a245e50951464e1841478c923b (patch)
treefb54da10e9eccd2ee36dc9e2a40ca9b8f2ceac8a
parent561059ff85c171b87a12b8381b724b4afc569a97 (diff)
parent306be43fabf7a95b3eef9d5363e1c3411055337f (diff)
Merge pull request #1124 from vitorpamplona/draft-event
Generic Draft Event
-rw-r--r--37.md50
-rw-r--r--README.md2
2 files changed, 52 insertions, 0 deletions
diff --git a/37.md b/37.md
new file mode 100644
index 0000000..1ade59d
--- /dev/null
+++ b/37.md
@@ -0,0 +1,50 @@
1NIP-37
2======
3
4Draft Events
5------------
6
7`draft` `optional`
8
9This NIP defines kind `31234` as a private wrap for drafts of any other event kind.
10
11The draft event is JSON-stringified, [NIP44-encrypted](44.md) to the signer's public key and placed inside the `.content` of the event.
12
13An additional `k` tag identifies the kind of the draft event.
14
15```js
16{
17 "kind": 31234,
18 "tags": [
19 ["d", "<identifier>"],
20 ["k", "<kind of the draft event>"],
21 ["e", "<anchor event event id>", "<relay-url>"],
22 ["a", "<anchor event address>", "<relay-url>"],
23 ],
24 "content": nip44Encrypt(JSON.stringify(draft_event)),
25 // other fields
26}
27```
28
29A blanked `.content` means this draft has been deleted by a client but relays still have the event.
30
31Tags `e` and `a` identify one or more anchor events, such as parent events on replies.
32
33## Relay List for Private Content
34
35Kind `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.
36
37```js
38{
39 "kind": 10013,
40 "tags": [],
41 "content": nip44Encrypt(JSON.stringify([
42 ["relay", "wss://myrelay.mydomain.com"]
43 ]))
44 //...other fields
45}
46```
47
48Relays listed in this event SHOULD be authed and only allow downloads to events signed by the authed user.
49
50Clients SHOULD publish kind `10013` events to the author's [NIP-65](65.md) `write` relays.
diff --git a/README.md b/README.md
index eb6fd94..55de842 100644
--- a/README.md
+++ b/README.md
@@ -54,6 +54,7 @@ They exist to document what may be implemented by [Nostr](https://github.com/nos
54- [NIP-34: `git` stuff](34.md) 54- [NIP-34: `git` stuff](34.md)
55- [NIP-35: Torrents](35.md) 55- [NIP-35: Torrents](35.md)
56- [NIP-36: Sensitive Content](36.md) 56- [NIP-36: Sensitive Content](36.md)
57- [NIP-37: Draft Events](37.md)
57- [NIP-38: User Statuses](38.md) 58- [NIP-38: User Statuses](38.md)
58- [NIP-39: External Identities in Profiles](39.md) 59- [NIP-39: External Identities in Profiles](39.md)
59- [NIP-40: Expiration Timestamp](40.md) 60- [NIP-40: Expiration Timestamp](40.md)
@@ -213,6 +214,7 @@ They exist to document what may be implemented by [Nostr](https://github.com/nos
213| `30618` | Repository state announcements | [34](34.md) | 214| `30618` | Repository state announcements | [34](34.md) |
214| `30818` | Wiki article | [54](54.md) | 215| `30818` | Wiki article | [54](54.md) |
215| `30819` | Redirects | [54](54.md) | 216| `30819` | Redirects | [54](54.md) |
217| `31234` | Draft Event | [37](37.md) |
216| `31388` | Link Set | [Corny Chat][cornychat-linkset] | 218| `31388` | Link Set | [Corny Chat][cornychat-linkset] |
217| `31890` | Feed | [NUD: Custom Feeds][NUD: Custom Feeds] | 219| `31890` | Feed | [NUD: Custom Feeds][NUD: Custom Feeds] |
218| `31922` | Date-Based Calendar Event | [52](52.md) | 220| `31922` | Date-Based Calendar Event | [52](52.md) |