Route on kind:10050 instead of kind:10002 and the relays tag - #17
Open
alejandro-runner wants to merge 1 commit into
Open
Route on kind:10050 instead of kind:10002 and the relays tag#17alejandro-runner wants to merge 1 commit into
alejandro-runner wants to merge 1 commit into
Conversation
Reservation rumors are gift-wrapped private messages. kind:10050 is the list a user publishes to declare where they receive private messages, which is the question routing has to answer. kind:10002 describes where a user reads and publishes public notes, and a relay carrying public activity does not necessarily serve gift wraps addressed to them. Clients now publish a kind:10050 and look the counterparty's up. The relays tag is demoted from MUST to MAY rather than removed, because reservations are live: readers keep accepting it, and kind:10002 and the p-tag hint remain ordered fallbacks while clients migrate. Schemas for kind:9901-9904 move relays from a required contains to the optional anyOf/not pattern the other optional tags already use. Closes #16
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #16.
Reservation rumors are gift-wrapped private messages.
kind:10050is the list a user publishes to declare where they receive private messages, which is exactly the question routing has to answer.kind:10002describes where a user reads and publishes public notes, and a relay carrying someone's public activity does not necessarily accept or serve gift wraps addressed to them.Spec —
nostr-protocols/nips/rp.mdkind:10050and MUST look up the recipient's before sending. A counterparty with no discoverable list is unroutable, and clients SHOULD say so rather than publishing to a guessed relay.ptag is stated as not a routing mechanism.relaysisMAY, and when nokind:10050is discoverable the fallback order is the thread's most recentrelaystag, thenkind:10002read relays, then theptag hint.relaystag definition is marked deprecated and optional; the four rumor examples carry the same note.kind:10050.Schemas —
kind-9901throughkind-9904relaysmoves from a requiredcontainsto theanyOf/notoptional pattern the other optional tags in these files already use, so a message omitting it validates and one including it is still shape-checked. All five schemas parse.The open question in #16, decided
#16 left open whether to retire
relaysor demote it. Demoted, because reservations shipped in Milestone 1 on 2026-08-05 and a hard removal would break the running server mid-thread. Writers should stop emitting it; readers keep accepting it until deployed clients migrate. How long that transition lasts is still unsettled.Not in this PR
The implementing services still route the old way, and none of them can publish a
kind:10050yet:@synvya/capabilities—build-reservation-request.tsstill requires at least onerelaysURL. The builder forkind:10050is capabilities#90.server/—src/routing/resolver.tsresolves fromthreadRelaysonly, with no relay-list lookup of any kind.diners/— publishes no relay list.Until those land, this spec describes a routing mechanism nothing implements. The
relaysfallback is what keeps reservations working in the meantime.Related
kind:10050and is why the divergence surfaced.