30817:app-catalog-relay-list
App Catalog Relay List
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.