-

@ Niel Liesmons
2025-03-04 13:05:42
## The 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 :
1. Main relay + backup relays
2. Main blossom server + backup servers
3. (optional) Roles for specific npubs (admin, CEO, dictator, customer service, design lead, ...)
4. (optional) Community mint
5. (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