30817:app-catalog-relay-list

App Catalog Relay List

Zapstore

published
2026-10-03

NIP-67

App Catalog Relay List

draft optional

Defines replaceable kind 10067 (AppCatalogRelayList).

There is no d tag. Who signs the event says what the list means.

  • Signed by a person: the catalogs they use, in order.
  • Signed by a catalog key: that catalog's own WebSocket addresses.

A catalog is identified by its signing key, not by an address. An r value that starts with wss:// uses the same host with https:// for GET /deltas and POST /suggest.

Event format

Public catalog relays are r tags. Each tag is one normalized WebSocket URL. Tag order is catalog precedence. content is empty when the list is public only.

{
  "kind": 10067,
  "tags": [
    ["r", "wss://relay.zapstore.dev"],
    ["r", "wss://relay.example.com"]
  ],
  "content": ""
}

Private relays

Private catalog relays MAY be stored in content as a NIP-44 ciphertext encrypted to the author's secret key. The plaintext MUST be a JSON array of normalized WebSocket URLs. Array order is precedence among private relays. Public r tags precede private URLs.

{
  "kind": 10067,
  "tags": [
    ["r", "wss://relay.zapstore.dev"]
  ],
  "content": "<nip44-ciphertext>"
}
["wss://private-relay.example.com"]

Clients that support private relays MUST decrypt content with the author's secret key and treat the URLs as additional catalog sources.

Size

Clients SHOULD keep the list small (2-4 relays).

Relationship to other NIPs

NIP Kind Purpose
NIP-65 10002 Social relay list
NIP-67 10067 App catalog relay list
NIP-82 32267, 30063, 3063 Software application events

Cited links

Discussion

Connect a key to comment.