Skip to content

Default catalog

Lenient by design. Releases are verified automatically, and a ban is written by hand, with a stated reason.

The default catalog is the one Zapstore ships with. Its rules are lenient by design, and another catalog can be stricter or looser. Its catalog relay (zapstore/relay) is open source.

Who publishes here

The indexer. Zapstore’s indexer follows public releases on GitHub, GitLab, Codeberg, F-Droid, IzzyOnDroid and similar sources, and publishes them under the catalog’s own pubkey. Most apps get in this way, before their developer does anything. An app only the indexer has published is unclaimed.

Developers. A developer publishes under their own pubkey, or a delegate’s, once they have claimed the app. The catalog relay accepts a developer’s listing only with a current claim, so nobody can publish in a developer’s name without their Android signing key. After a claim, the indexer keeps filling in any release the developer does not publish, under the developer’s listing.

The first listing of a new app passes an admission check, and its rules may change.

How releases are checked

A new release waits on the catalog relay until it is verified: the listing is complete, the relay has read the APK, the APK is signed by the app’s certificate or one linked to it, and its version code is not lower than the last release. Then it is served. These checks are automatic and usually take a few minutes.

Reports and removals

Anyone signed in can report an app. Reports are public. A report asks the operator to take a look, and does not ban anything by itself. A person writes every ban by hand, with a reason, and the reason goes out with the next catalog update. A ban removes the app and covers the publisher’s pubkeys, forge accounts and files, so a new free identity does not get them back in.

A developer can also remove their own app by deleting their listing. That removes the indexer’s listing too, and the indexer stops publishing the app.

What the catalog relay refuses

The catalog relay refuses malware, impersonation, and anything else the Terms of Service forbid. A refusal here does not stop a developer from publishing the same app to another catalog.

Get Zapstore for Android

  1. Tap Download APK below.Scan the code with your Android phone’s camera.
  2. If Android asks, allow your browser to install unknown apps.
  3. Open Zapstore and finish the onboarding.
Download APK

v2.0.4 · 71.2 MB · Android 10+

Verify the download

On a computer, run shasum -a 256 <the file you downloaded>. It should print: b13e01319fecf0b3ba1fd60132758bd0fa08a235836c52d44fddb412cf1b7137

If you have zsp, Zapstore’s publishing tool, zsp utils extract-apk <the file you downloaded> works too. Its hash should be the same SHA-256: b13e01319fecf0b3ba1fd60132758bd0fa08a235836c52d44fddb412cf1b7137

On the phone, AppVerifier should show this signing certificate: 99e33b0c2d07e75fcd9df7e40e886646ff667e3aa6648e1a1160b036cf2b9320

Source code All releases and notes

Get zsp

  1. Download the file for your computer.
  2. Make it executable and put it on your PATH.
  3. In your project folder, run zsp.

Have Go? This does the same:

go install github.com/zapstore/zsp/v2/cmd/zsp@latest
macOS, Apple silicon Linux, x86-64 Linux, arm64

v2.0.1 · macOS and Linux

Verify the download

On your computer, run shasum -a 256 <the file you downloaded>. It should print the SHA-256 for the one you chose.

macOS, Apple silicon · 18.6 MB 99018fb9744e5ace2b44557550dc333496239912c0e9b1137266d4922c803346

Linux, x86-64 · 23.8 MB 1ef5373f8ecd9ba63d2c3fab98abb0d31b2244a2aac31b3749fb205c7d5f5b38

Linux, arm64 · 22.1 MB e421005ee47cba58293dce4277bb784e4cfe706dbbcb8617d671629d0238be18

Source code All releases and notes