Outbox model

NIP-65, Relay list metadata, outbox, outbox-style

A Nostr client pattern where each user publishes their own relay list, so other clients know where to read their notes and deliver mentions.

Nostr clients used to depend on hand-picked default relays. That works until someone you follow moves their notes to a relay you never added. NIP-65 fixes the discovery side by having each user publish their own relay list: a replaceable event with a set of relay URLs, each optionally marked read, write, or both.

Authors publish a relay list so followers know which relays actually store their events. People you tag publish theirs so replies can reach relays they really read. The spec tells clients to fetch someone's timeline from that author's write relays, to load mention traffic from each tagged user's read relays, and to publish new notes to your own write set plus every tagged party's read set. After broadcasting, clients should push the author's updated relay list anywhere the note went so the routing hint stays accurate.

That behavior is the outbox model: build a live relay set from follows and their published relay lists, then subscribe accordingly. Our nostr clients impact report walks through Amethyst's shift to this approach so traffic spreads across many relays instead of piling onto a few public hubs.

Publishing a relay list is optional, but when users do it, the client can avoid a lot of "I follow them but nothing shows up" confusion. Under the hood it is only metadata; relays still store and forward events like before.

References