Finding an author’s Nostr posts when their inbox relay is empty
A profile lists two relay addresses. A client searches the one labelled read and concludes that the author has never published. Read and write are roles from the profile owner’s perspective.
Choose relays for the lookup you are making
Read the author’s verified kind-10002 relay list. To retrieve their own posts, query their write relays. To look for mentions addressed to them, query their read relays. An r tag without a marker participates in both lists, as the local fixture demonstrates.
const tags = [["r","wss://out.example","write"],["r","wss://in.example","read"],["r","wss://both.example"]];
const select = role => tags.filter(([t,,r]) => t === "r" && (!r || r === role)).map(t => t[1]);
console.log(select("write"), select("read"));
Deliver mentions across relay sets
For a new post that tags a recipient, publish to the author’s write relays and the recipient’s read relays. Deduplicate URLs when a relay appears in both sets. A relay list expresses preferences, so a missing event on one server is not evidence that the author deleted it. Record individual relay outcomes when diagnosing a mention that appeared for the sender but never reached the recipient.