Skip to content

Understanding the Outbox Model

Learn how Nostr's smart relay system ensures your posts reach everyone who follows you

10-15 minutes Beginner · 7 of 7

The Problem: Missing Posts

Have you ever posted something on Nostr, but your friends couldn’t see it? Or followed someone but never saw their posts? This is the discovery problem.

The Old Way (Before Outbox Model)

You Post → Relay A → ❌ Your friend only uses Relay B

Your Friend's View:
❌ "Where did @alice's post go?"

You’d post to your favorite relay, but your followers might be using different relays entirely. They’d never see your content!

The Solution: Outbox Model

The outbox model solves this by advertising where you post. Think of it like leaving a forwarding address.

You: "I post to Relay A, Relay B, and Relay C"
(Stored in your kind:10002 event)

Follower: "Got it! I'll check those relays for @alice's posts"

What Is the Outbox Model?

The outbox model (NIP-65) is like having a public address book that tells everyone where to find your posts.

The Post Office Analogy Extended

Remember relays are like post offices? The outbox model adds a forwarding address system:

Traditional Post Office:

  • You have one mailbox at one post office
  • If you move, people send mail to the wrong place

Nostr Outbox Model:

  • You have a public list of post offices where you receive mail
  • If you “move” (switch relays), you update your public list
  • Everyone knows where to find you

Your Relay List (kind:10002)

Your Nostr client automatically creates a relay list that tells others:

{
  "kind": 10002,
  "tags": [
    // Relays where you generally post (your "outbox")
    ["r", "wss://relay.nostr.info", "write"],
    ["r", "wss://relay.damus.io", "write"],
    
    // Relays where you read mentions (your "inbox")
    ["r", "wss://nos.lol", "read"],
    ["r", "wss://relay.primal.net", "read"]
  ]
}

Markers explained:

  • write → Where you post your content (outbox)
  • read → Where you check for mentions/replies (inbox)
  • no marker → Both read and write

How It Works in Practice

Scenario 1: Alice Posts, Bob Follows

Alice's Relay List (kind:10002):
  - wss://relay.a.com [write]
  - wss://relay.b.com [write]
  - wss://relay.inbox.com [read]

Bob follows Alice. Bob's client sees:
  "Check wss://relay.a.com and wss://relay.b.com for Alice's posts"

Result: Bob connects to both write relays and sees Alice's content! ✅

Scenario 2: Charlie Mentions Alice

Charlie mentions @alice in a post

Charlie's client checks the same relay list and looks for
the [read] entry, which is Alice's inbox:
  - wss://relay.inbox.com [read]

Charlie's client sends the mention there

Result: Alice sees the mention even if she's offline! ✅

Scenario 3: Alice Switches Relays

Alice stops using relay.a.com, starts using relay.c.com

1. Alice updates her kind:10002 relay list
2. Her client publishes the updated list to her relays
3. Followers automatically start checking relay.c.com

Result: No lost posts, no manual reconnection needed! ✅

Why This Matters

1. Discovery Without Centralization

Traditional social media has a central server that knows everyone. Nostr is decentralized, so it needs another way to find people.

Outbox model = distributed discovery

2. Censorship Resistance

If one relay blocks you, your followers can still find you through your relay list on other relays.

3. Flexibility

Switch relays anytime without losing your audience. Just update your relay list.

4. Efficiency

Clients only connect to the relays you use, not every relay in existence.


Best Practices

Keep Your List Small

Recommended: a short list. NIP-65 itself suggests 2-4 write relays and 2-4 read relays, so most people end up somewhere between four and eight in total.

Why?

  • More relays = more connections = more battery drain
  • Diminishing returns once your followers can already reach you
  • Your followers’ clients read the relays on your list directly, so extra entries add nothing

Mix Read and Write

Good setup:

  • 2-3 “write” relays (where you post)
  • 1-2 “read” relays (for mentions)

Example:

Write to: Popular relay A, Your personal relay
Read from: Popular relay B (for mentions)

Choose Reliable Relays

Use well-known, reliable relays that:

  • Are online when you need them, rarely down
  • Keep your posts around for the long term (some relays quietly delete older posts to save space)
  • Are hosted near you, so the app feels faster

Common Misconceptions

”I need to be on every relay”

Wrong: Being on 20+ relays doesn’t help. Relays don’t copy posts to each other, so a relay nobody reads from is just an extra connection. Your relay list already sends your followers’ clients to the right place, so a handful of good relays does the job.

”If I leave a relay, I lose my followers”

Wrong: Just update your relay list (kind:10002). Followers will automatically check your new relays.

”Private DMs go through the outbox too”

Not quite: Private messages (NIP-17) travel to a separate DM relay list (kind:10050), not the kind:10002 list this guide is about, and they’re encrypted end to end. Your client keeps both lists. If DMs aren’t arriving, the DM relay list is the one to check.

”I need to manually tell people my relays”

Wrong: Your client publishes your relay list automatically. Followers discover it when they follow you.


Technical Deep Dive (Optional)

How Clients Discover Your Relays

  1. Initial follow: When someone follows you, their client requests your kind:10002 event
  2. Your relays are revealed: The event contains your relay preferences
  3. Ongoing updates: If you change relays, you publish a new kind:10002
  4. Propagation: Clients spread relay lists to help discovery

Replaceable Events

kind:10002 is replaceable - only the latest version is kept. This means:

  • No historical bloat
  • Easy to update
  • Simple for clients to manage

Privacy Consideration

Your relay list is public. Anyone can see which relays you use. This is necessary for the system to work, but be aware it’s visible.


Take Action

Check Your Current Relays

Look in your Nostr client settings:

  • Which relays are you connected to?
  • Are they marked as “read” or “write”?
  • Is the list short, roughly four to eight?

Optimize Your Setup

If you have 10+ relays:

  • Remove the ones that are often down
  • Keep a handful of favorites, a few to write to and a couple to read from
  • Make sure at least one is “read” for mentions

Spread the Word

Help others understand:

  • Share this guide
  • Explain why you can’t see someone’s posts
  • Help troubleshoot discovery issues

Outbox Model Quiz

Outbox Purpose

Question 1 of 5

0/5 answered

What problem does the outbox model solve?
P0 Critical

Keep reading

Last guide of the Beginner level

Nothing more follows in Beginner. The path continues one level up.

Continue to Intermediate
Improve this page Spotted a typo or something unclear? Edit this guide on GitHub.
Follow us on Nostr