diff options
| -rw-r--r-- | 72.md | 26 |
1 files changed, 4 insertions, 22 deletions
| @@ -6,7 +6,7 @@ Moderated Communities (Reddit Style) | |||
| 6 | 6 | ||
| 7 | `draft` `optional` | 7 | `draft` `optional` |
| 8 | 8 | ||
| 9 | The goal of this NIP is to create moderator-approved public communities around a topic. It defines the replaceable event `kind:34550` to define the community and the current list of moderators/administrators. Users that want to post into the community, simply tag any Nostr event with the community's `a` tag. Moderators issue an approval event `kind:4550` that links the community with the new post. | 9 | The goal of this NIP is to enable public communities. It defines the replaceable event `kind:34550` to define the community and the current list of moderators/administrators. Users that want to post into the community, simply tag any Nostr event with the community's `a` tag. Moderators may issue an approval event `kind:4550`. |
| 10 | 10 | ||
| 11 | # Community Definition | 11 | # Community Definition |
| 12 | 12 | ||
| @@ -39,7 +39,7 @@ The goal of this NIP is to create moderator-approved public communities around a | |||
| 39 | } | 39 | } |
| 40 | ``` | 40 | ``` |
| 41 | 41 | ||
| 42 | # Community Posts | 42 | # Posting to a community |
| 43 | 43 | ||
| 44 | Any Nostr event can be posted to a community. Clients MUST add one or more community `a` tags, each with a recommended relay. | 44 | Any Nostr event can be posted to a community. Clients MUST add one or more community `a` tags, each with a recommended relay. |
| 45 | 45 | ||
| @@ -56,6 +56,8 @@ Any Nostr event can be posted to a community. Clients MUST add one or more commu | |||
| 56 | 56 | ||
| 57 | # Moderation | 57 | # Moderation |
| 58 | 58 | ||
| 59 | Anyone may issue an approval event to express their opinion that a post is appropriate for a community. Clients MAY choose which approval events to honor, but SHOULD at least use ones published by the group's defined moderators. | ||
| 60 | |||
| 59 | An approval event MUST include one or more community `a` tags, an `e` or `a` tag pointing to the post, and the `p` tag of the author of the post (for approval notifications). `a` tag prefixes can be used to disambiguate between community and replaceable event pointers (community `a` tags always begin with `34550`). | 61 | An approval event MUST include one or more community `a` tags, an `e` or `a` tag pointing to the post, and the `p` tag of the author of the post (for approval notifications). `a` tag prefixes can be used to disambiguate between community and replaceable event pointers (community `a` tags always begin with `34550`). |
| 60 | 62 | ||
| 61 | The event SHOULD also include the JSON-stringified `post request` event inside the `.content`, and a `k` tag with the original post's event kind to allow filtering of approved posts by kind. | 63 | The event SHOULD also include the JSON-stringified `post request` event inside the `.content`, and a `k` tag with the original post's event kind to allow filtering of approved posts by kind. |
| @@ -90,23 +92,3 @@ Since relays are instructed to delete old versions of a replaceable event, the ` | |||
| 90 | # Cross-posting | 92 | # Cross-posting |
| 91 | 93 | ||
| 92 | Clients MAY support cross-posting between communities by posting a NIP 18 `kind 6` or `kind 16` repost to one or more communities using `a` tags as described above. The `content` of the repost MUST be the original event, not the approval event. | 94 | Clients MAY support cross-posting between communities by posting a NIP 18 `kind 6` or `kind 16` repost to one or more communities using `a` tags as described above. The `content` of the repost MUST be the original event, not the approval event. |
| 93 | |||
| 94 | # Displaying | ||
| 95 | |||
| 96 | Clients SHOULD display posts that have been approved by at least 1 moderator or by the community owner. Clients MAY disregard moderation and fetch community posts directly. | ||
| 97 | |||
| 98 | The following filter displays the approved posts. | ||
| 99 | |||
| 100 | ```json | ||
| 101 | [ | ||
| 102 | "REQ", | ||
| 103 | "_", | ||
| 104 | { | ||
| 105 | "authors": ["<owner-pubkey>", "<moderator1-pubkey>", "<moderator2-pubkey>", "<moderator3-pubkey>", ...], | ||
| 106 | "kinds": [4550], | ||
| 107 | "#a": ["34550:<Community event author pubkey>:<d-identifier of the community>"], | ||
| 108 | } | ||
| 109 | ] | ||
| 110 | ``` | ||
| 111 | |||
| 112 | Clients MAY hide approvals by blocked moderators at the user's request. | ||