That's

And it's good enough (if not totally awesome) for public communities in my mind.
quoting
naddr1qv…zfhtThe Key Pair
What a Nostr key pair has by default:
- A unique ID
- A name
- A description
- An ability to sign stuff
The Relay
What a Nostr relay has (or should have) by default:
- Permissions, Moderation, AUTH, …
- Pricing & other costs to make the above work (cost per content type, subscriptions, xx publications per xx timeframe, …)
- List of accepted content types
- (to add) Guidelines
The Community
Since I need Communities to have all the above mentioned properties too, the simplest solution seems to be to just combine them. And when you already have a key pair and a relay, you just need the third basic Nostr building block to bring them together…
The Event
To create a #communikey, a key pair (The Profile) needs to sign a (kind 30XXX) event that lays out the Community’s :
- Main relay + backup relays
- Main blossom server + backup servers
- (optional) Roles for specific npubs (admin, CEO, dictator, customer service, design lead, …)
- (optional) Community mint
- (optional) “Welcome” Publication that serves as an introduction to the community
This way:
- any existing npub can become a Community
- Communities are not tied to one relay and have a truly unique ID
- Things are waaaaaay easier for relay operators/services to be compatible (relative to existing community proposals)
- Running one relay per community works an order of magnitude better, but isn’t a requirement
The Publishers
What the Community enjoyers need to chat in one specific #communikey :
- Tag the npub in the (kind 9) chat message
What they needs to publish anything else in one or multiple #communikeys :
- Publish a (kind 32222 - Targeted publication) event that lists the npubs of the targeted Communities
- If the event is found on the main relay = The event is accepted
This way:
- any existing publication can be targeted at a Community
- Communities can #interop on content and bring their members together in reply sections, etc…
- Your publication isn’t tied forever to a specific relay
Ncommunity
If nprofile = npub + relay hints, for profiles
Then ncommunity = npub + relay hints, for communities