Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

using multiple independent kinds for community-scoped events #848

Closed
wants to merge 2 commits into from
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 14 additions & 5 deletions 72.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ The goal of this NIP is to create moderator-approved public communities around a

```json
{
"created_at": <Unix timestamp in seconds>,
"kind": 34550,
"tags": [
["d", "<community-d-identifier>"],
Expand All @@ -40,11 +39,23 @@ The goal of this NIP is to create moderator-approved public communities around a

# New Post Request

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.
A "post request" is an event that can be published by anyone with the intention to be displayed inside a community. Moderators will be notified of this request and decide about approving it or not. Only after approval these posts will be displayed inside the communities.

Event kinds defined in other NIPs can be supported inside communities, but here we defined kind translations for them such that they don't get confused with events published outside communities.

| Community-scoped Kind | Description | Original Kind | Original NIP |
| --- | --- | --- | --- |
| 11 | Community post | 1 | 1 |
| 10500 | Community-scoped user metadata | 0 | 1 |
| 10501 | Community-scoped follow list | 3 | 2 |
| 4548 | Community file metadata | 1063 | 94 |
| 30500 | Community long-form article | 23 | 23 |

So, for example, in order to publish a "text note" (`kind:1`) inside a community one must use the `kind:11` instead.

```json
{
"kind": 1,
"kind": 11,
"tags": [
["a", "34550:<community event author pubkey>:<community-d-identifier>", "<optional-relay-url>"],
],
Expand All @@ -53,8 +64,6 @@ Any Nostr event can be submitted to a community by anyone for approval. Clients
}
```

Community management clients MAY filter all mentions to a given `kind:34550` event and request moderators to approve each submission. Moderators MAY delete his/her approval of a post at any time using event deletions (See [NIP-09](09.md)).

# Post Approval by moderators

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