Run your own
A catalog is a Nostr relay with a few extras. Anyone can run one, with their own rules.
What a catalog relay is
A catalog relay is a Nostr relay that serves one catalog, identified by the catalog’s pubkey. Zapstore’s is open source at zapstore/relay, and its README lists the configuration. On top of a plain relay, it adds:
- App events. It accepts the app, release and asset kinds from NIP-82, and claims from NIP-C1, and checks their structure.
- A buffer zone. New releases wait, unserved, until the relay has read the APK and checked its certificate, its claim and its version code. Then they are promoted and served.
- A publisher policy. You decide who may publish: a whitelist, a web of trust score, established forge accounts, apps F-Droid already lists, a one-time payment, or any mix. Bans are yours too.
- NIP-50 search over the catalog.
- A bundle endpoint.
GET /v1/bundleserves the whole catalog as one signed download. This is what the Android app syncs from. - A Blossom server for APKs, icons and screenshots, named by their SHA-256 hash.
- A NIP-11 document that advertises the catalog pubkey and any admission fee.
Filling the catalog
Developers can publish to your relay with zsp by setting RELAYS to its WebSocket URL. The same claim rules apply. To list apps whose developers have not published, publish their releases under your catalog’s pubkey, as Zapstore’s indexer does for the default catalog.
Getting people to use it
People add your catalog in Zapstore’s Settings by its pubkey, and can put it above or below the default one. See Open catalogs.