โ† All docs  ยท  Home

ADR 0014 โ€” NIP-65-style relay list: the outbox discovery model

Context

The discovery registry started with a flat list (ADR 0006): servers announce themselves (verified via their /.well-known/freedback), and GET /resolve?target= finds which of them hold feedback for a URI by polling every announced server live. That is correct and simple, but it scales with the number of servers, not with relevance โ€” every resolution fans out across the whole registry, and there is no way to ask the more natural federated question: where does this particular author publish?

Nostr solved the analogous problem with NIP-65 (the "outbox model"): each key publishes a small, replaceable record listing the relays it writes to and reads from. To find a user's events you consult the relays they declared they write to โ€” discovery follows the author, not a central index.

Decision

Add a self-signed relay list to the registry.

relays::RelayList is { issuer, read[], write[], updated, signature }. It federates because it is signed by the issuer's P-256 key (INVARIANT 4a):

Endpoints:

Why these specifics

Consequences