FRX — Federated Retrieval Exchange Status: Draft 0.5. Experimental. Reference implementation: frxd (Rust). 1. Summary FRX is a membership federation for retrieval. Content owners answer broadcast queries. The protocol's normative surface is minimal: signed messages, budgets, truncation honesty, aggregate courtesy. Ranking, reputation, caching, filtering, verification, and quality judgment are node-local. There is no supply announcement stream: a responder answers only from content it already holds. A member's mandatory work per incoming query is a local lookup — nothing heavier is required. 2. Invariants I1 Ingress consent — content enters a member's index only via the publisher adding its own content or a user-supplied URL. I2 Local judgment — decisions that consume local information (matching, relevance, sharing, retention) are made locally. Shared coordination (identity, admission, contract) is centralized in the MA, because common state is cheaper held once. I3 Broadcast privacy — broadcast payloads MUST NOT contain third-party private content. Queries derived from scoring others' posts MUST be canonicalized (claims/entities). First-party user-initiated search text MAY be sent as typed. I4 Channel separation — statements advise (aggregates), contracts govern (membership); never cross-wired. The protocol carries no pricing, metering, or settlement. I5 Role symmetry — no privileged roles. Any member may originate queries or responses; no peer may require remote work per incoming query (I7). Neither role is privileged. I6 No scores — responses never carry numeric relevance; selection and presentation order are local policy (I2, §5). I7 Local-lookup cost — a member's mandatory work per incoming query is a local lookup. There is no supply stream to maintain, and no heavier mandatory work (fetch, embed, LLM). Cost scales with received query volume at lookup cost. I8 No shared vocabulary — no topic taxonomy; all filtering is receiver-local; the querier never classifies on behalf of receivers. I9 Egress consent — a member serves queries only from collections explicitly marked shared. Default is private. 3. System Model Members exchange signed messages via dumb relays (multiply-operated transport, zero protocol authority). Queries are broadcast live to all members; relays hold no history and replay nothing. Responses are unicast from responder to querier. Transport DEFAULT: HTTPS + long-poll/SSE. Bilateral rate limits with visible backpressure are normative; application-layer rejection is silent. STREAM TYPE VISIBILITY ORIGIN Demand query Broadcast Any member Bid response Unicast to querier Any member holding content Courtesy aggregate Bilateral, on request Querier Silence is conformant and informative: an unanswered query means no member's available content produced a response — not that the content does not exist. A member holding matching content may still choose silence (I2, I5). 4. Messages Envelope (all messages): {type, from, key, ts, nonce, body, sig}. `from` is the sender's member identifier; `key` is the Ed25519 public key used to sign; `sig` covers the canonical form of the other fields (RFC 8785 JCS under a versioned prefix; bodies carry no floating-point numbers). A receiver verifies the signature under `key`, then verifies that `key` is authorized for `from` by the member registry (§6). query jsonc { "qid": "...", "text": "", "entities": ["Q192630"], // optional, non-normative hint "budget": { "max_results": 5 } } No format mandate. A query no receiver can match earns silence; intelligibility is enforced by retrieval economics, not conformance police (I8). response jsonc { "qid": "...", "results": [ { "url": "...", "title": "...", "summary": "...", "published": "...", "exposure": "...", "content": null } ], "truncated": false, "more_available": 0, "cursor": null } MUST NOT exceed max_results. MUST set truncated honestly if more matching results exist within budget (DNS TC-bit pattern). MUST NOT carry numeric relevance scores (I6). One result is a conformant, good response. exposure is "metadata" | "full" (paywall compatibility); content is present only when exposure is "full". Republication of another member's response is a contract matter. aggregate (on request, per member, per period) jsonc { "period": "2026-03", "sent": 12400, "passed": 310 } Counters are the querier's own; no dispute or appeal messages exist, and none may be added (I4). Granularity floor is normative. There is no publish/announce message. Document metadata is carried in responses (above). Document lineage (revision/supersedes) and delegation to an indexer are unspecified without a supply stream; see §10. 5. Local Policy Domains Protocol-silent by design (I2): ranking, ordering, presentation, relevance gating, reputation counters and throttles, verification/spot-checks, caching and invalidation, claim minting, external fallback, sharing policy above the I9 floor. Advisory reputation bureaus MAY exist; no member is bound. 6. Membership The MA governs identity, contract, expulsion — who, never quality. Identifiers are MA-hosted FQDNs (`