Relays and the outbox model¶
PlebChat talks to Nostr through four relay sets. Each set has one job. Settings → Relays shows all four, and a table of what goes where.
The problem the outbox model solves¶
Nostr has no central server. You sign events and send them to relays. Any relays. So every app must answer one question: when I want Alice's articles, which relay do I ask?
The outbox model answers it. Each person publishes one small event, a relay list (NIP-65, kind 10002), that says where they are. Every Nostr app reads the same list, so apps find each other's users without guessing.
Think of email:
- Your write relays are your outbox. You publish there. Others come there to read you.
- Your read relays are your inbox. Others deliver replies that mention you there. You check there.
Two rules follow. To read Alice, go to Alice's write relays. To reach Alice, publish to Alice's read relays and to your own write relays.
The four sets¶
| Set | Job | Who decides |
|---|---|---|
| Your relay list | Where you live on Nostr. Your profile, follows, articles, highlights, and comments go to your write relays. Replies that mention you arrive at your read relays. | You. Edit and publish it in Settings → Relays. Every other Nostr app honors it. |
| Indexers | The address book. PlebChat asks them for anyone's relay list, profile, and follows. They accept only those small identity events, from anyone. | PlebChat. Three fixed relays: purplepag.es, relay.nostr.band, indexer.coracle.social. |
| Discovery hosts | Where Discover looks for articles from everyone. A content choice, not an identity choice. Your articles and highlights are also sent here so long-form readers find them. | You, from a suggested set of long-form relays. |
| App relay | PlebChat's own encrypted records: chats, files, debates, receipts. Never social events. | PlebChat by default. You can point it at any relay you run or trust. |
Blossom servers are a fifth list. They hold raw files, not events.
Derived sets¶
Two sets are never configured. PlebChat computes them per person:
- Someone's outbox. To read Alice, PlebChat fetches her relay list from the indexers and asks her write relays. Relay hints in tags add to it. The answer is cached for the session.
- Someone's inbox. A comment or highlight that mentions Alice also goes to her read relays.
No relay list yet¶
A new key has no relay list. PlebChat then uses a default set: damus and nos.lol for writing, plus primal for reading. PlebChat adds its own relay to your write set so your content is reachable through it.
PlebChat never publishes a relay list for you silently. Settings → Relays offers to publish the default set once. Until you do, other apps do not know where to find you.
Editing your relay list¶
Each row in Settings → Relays can be read, write, or both. Keep at least one write relay, or nobody can read you. Publishing an edited list replaces the old one on the indexers and on your relays. Every other Nostr app picks up the change.