diff options
| -rw-r--r-- | 01.md | 11 | ||||
| -rw-r--r-- | 52.md | 4 | ||||
| -rw-r--r-- | 72.md | 10 |
3 files changed, 12 insertions, 13 deletions
| @@ -14,7 +14,7 @@ Each user has a keypair. Signatures, public key, and encodings are done accordin | |||
| 14 | 14 | ||
| 15 | The only object type that exists is the `event`, which has the following format on the wire: | 15 | The only object type that exists is the `event`, which has the following format on the wire: |
| 16 | 16 | ||
| 17 | ```json | 17 | ```jsonc |
| 18 | { | 18 | { |
| 19 | "id": <32-bytes lowercase hex-encoded sha256 of the serialized event data>, | 19 | "id": <32-bytes lowercase hex-encoded sha256 of the serialized event data>, |
| 20 | "pubkey": <32-bytes lowercase hex-encoded public key of the event creator>, | 20 | "pubkey": <32-bytes lowercase hex-encoded public key of the event creator>, |
| @@ -22,7 +22,7 @@ The only object type that exists is the `event`, which has the following format | |||
| 22 | "kind": <integer between 0 and 65535>, | 22 | "kind": <integer between 0 and 65535>, |
| 23 | "tags": [ | 23 | "tags": [ |
| 24 | [<arbitrary string>...], | 24 | [<arbitrary string>...], |
| 25 | ... | 25 | // ... |
| 26 | ], | 26 | ], |
| 27 | "content": <arbitrary string>, | 27 | "content": <arbitrary string>, |
| 28 | "sig": <64-bytes lowercase hex of the signature of the sha256 hash of the serialized event data, which is the same as the "id" field> | 28 | "sig": <64-bytes lowercase hex of the signature of the sha256 hash of the serialized event data, which is the same as the "id" field> |
| @@ -58,17 +58,16 @@ To prevent implementation differences from creating a different event ID for the | |||
| 58 | 58 | ||
| 59 | Each tag is an array of strings of arbitrary size, with some conventions around them. Take a look at the example below: | 59 | Each tag is an array of strings of arbitrary size, with some conventions around them. Take a look at the example below: |
| 60 | 60 | ||
| 61 | ```json | 61 | ```jsonc |
| 62 | { | 62 | { |
| 63 | ..., | ||
| 64 | "tags": [ | 63 | "tags": [ |
| 65 | ["e", "5c83da77af1dec6d7289834998ad7aafbd9e2191396d75ec3cc27f5a77226f36", "wss://nostr.example.com"], | 64 | ["e", "5c83da77af1dec6d7289834998ad7aafbd9e2191396d75ec3cc27f5a77226f36", "wss://nostr.example.com"], |
| 66 | ["p", "f7234bd4c1394dda46d09f35bd384dd30cc552ad5541990f98844fb06676e9ca"], | 65 | ["p", "f7234bd4c1394dda46d09f35bd384dd30cc552ad5541990f98844fb06676e9ca"], |
| 67 | ["a", "30023:f7234bd4c1394dda46d09f35bd384dd30cc552ad5541990f98844fb06676e9ca:abcd", "wss://nostr.example.com"], | 66 | ["a", "30023:f7234bd4c1394dda46d09f35bd384dd30cc552ad5541990f98844fb06676e9ca:abcd", "wss://nostr.example.com"], |
| 68 | ["alt", "reply"], | 67 | ["alt", "reply"], |
| 69 | ... | 68 | // ... |
| 70 | ], | 69 | ], |
| 71 | ... | 70 | // ... |
| 72 | } | 71 | } |
| 73 | ``` | 72 | ``` |
| 74 | 73 | ||
| @@ -38,7 +38,7 @@ The list of tags are as follows: | |||
| 38 | The following tags are deprecated: | 38 | The following tags are deprecated: |
| 39 | * `name` name of the calendar event. Use only if `title` is not available. | 39 | * `name` name of the calendar event. Use only if `title` is not available. |
| 40 | 40 | ||
| 41 | ```json | 41 | ```jsonc |
| 42 | { | 42 | { |
| 43 | "id": <32-bytes lowercase hex-encoded SHA-256 of the the serialized event data>, | 43 | "id": <32-bytes lowercase hex-encoded SHA-256 of the the serialized event data>, |
| 44 | "pubkey": <32-bytes lowercase hex-encoded public key of the event creator>, | 44 | "pubkey": <32-bytes lowercase hex-encoded public key of the event creator>, |
| @@ -99,7 +99,7 @@ The list of tags are as follows: | |||
| 99 | The following tags are deprecated: | 99 | The following tags are deprecated: |
| 100 | * `name` name of the calendar event. Use only if `title` is not available. | 100 | * `name` name of the calendar event. Use only if `title` is not available. |
| 101 | 101 | ||
| 102 | ```json | 102 | ```jsonc |
| 103 | { | 103 | { |
| 104 | "id": <32-bytes lowercase hex-encoded SHA-256 of the the serialized event data>, | 104 | "id": <32-bytes lowercase hex-encoded SHA-256 of the the serialized event data>, |
| 105 | "pubkey": <32-bytes lowercase hex-encoded public key of the event creator>, | 105 | "pubkey": <32-bytes lowercase hex-encoded public key of the event creator>, |
| @@ -12,7 +12,7 @@ The goal of this NIP is to create moderator-approved public communities around a | |||
| 12 | 12 | ||
| 13 | `kind:34550` SHOULD include any field that helps define the community and the set of moderators. `relay` tags MAY be used to describe the preferred relay to download requests and approvals. | 13 | `kind:34550` SHOULD include any field that helps define the community and the set of moderators. `relay` tags MAY be used to describe the preferred relay to download requests and approvals. |
| 14 | 14 | ||
| 15 | ```json | 15 | ```jsonc |
| 16 | { | 16 | { |
| 17 | "created_at": <Unix timestamp in seconds>, | 17 | "created_at": <Unix timestamp in seconds>, |
| 18 | "kind": 34550, | 18 | "kind": 34550, |
| @@ -42,14 +42,14 @@ The goal of this NIP is to create moderator-approved public communities around a | |||
| 42 | 42 | ||
| 43 | Any Nostr event can be submitted to a community by anyone for approval. Clients MUST add the community's `a` tag to the new post event in order to be presented for the moderator's approval. | 43 | Any Nostr event can be submitted to a community by anyone for approval. Clients MUST add the community's `a` tag to the new post event in order to be presented for the moderator's approval. |
| 44 | 44 | ||
| 45 | ```json | 45 | ```jsonc |
| 46 | { | 46 | { |
| 47 | "kind": 1, | 47 | "kind": 1, |
| 48 | "tags": [ | 48 | "tags": [ |
| 49 | ["a", "34550:<community event author pubkey>:<community-d-identifier>", "<optional-relay-url>"], | 49 | ["a", "34550:<community event author pubkey>:<community-d-identifier>", "<optional-relay-url>"], |
| 50 | ], | 50 | ], |
| 51 | "content": "hello world", | 51 | "content": "hello world", |
| 52 | ... | 52 | // ... |
| 53 | } | 53 | } |
| 54 | ``` | 54 | ``` |
| 55 | 55 | ||
| @@ -59,7 +59,7 @@ Community management clients MAY filter all mentions to a given `kind:34550` eve | |||
| 59 | 59 | ||
| 60 | The post-approval event MUST include `a` tags of the communities the moderator is posting into (one or more), the `e` tag of the post and `p` tag of the author of the post (for approval notifications). The event SHOULD also include the stringified `post request` event inside the `.content` ([NIP-18-style](18.md)) and a `k` tag with the original post's event kind to allow filtering of approved posts by kind. | 60 | The post-approval event MUST include `a` tags of the communities the moderator is posting into (one or more), the `e` tag of the post and `p` tag of the author of the post (for approval notifications). The event SHOULD also include the stringified `post request` event inside the `.content` ([NIP-18-style](18.md)) and a `k` tag with the original post's event kind to allow filtering of approved posts by kind. |
| 61 | 61 | ||
| 62 | ```json | 62 | ```jsonc |
| 63 | { | 63 | { |
| 64 | "pubkey": "<32-bytes lowercase hex-encoded public key of the event creator>", | 64 | "pubkey": "<32-bytes lowercase hex-encoded public key of the event creator>", |
| 65 | "kind": 4550, | 65 | "kind": 4550, |
| @@ -70,7 +70,7 @@ The post-approval event MUST include `a` tags of the communities the moderator i | |||
| 70 | ["k", "<post-request-kind>"] | 70 | ["k", "<post-request-kind>"] |
| 71 | ], | 71 | ], |
| 72 | "content": "<the full approved event, JSON-encoded>", | 72 | "content": "<the full approved event, JSON-encoded>", |
| 73 | ... | 73 | // ... |
| 74 | } | 74 | } |
| 75 | ``` | 75 | ``` |
| 76 | 76 | ||