Skip to content

TEPPethyst

Install TEPPethyst

Download Zapstore

Download
QR code for zapstore.dev/download
  • Scan the code with your phone’s camera
  • Tap Download anyway if the browser warns about the file
  • Allow your browser to install unknown apps if Android asks
  • Open Zapstore and finish the onboarding

Open TEPPethyst in Zapstore

Open
QR code to open TEPPethyst in Zapstore
  • Scan the code to open TEPPethyst in Zapstore, or search for it there
  • Tap Install, and Download if Zapstore asks you to confirm the developer
  • Confirm in Android’s install dialog. Allow Zapstore to install unknown apps if Android asks

Claimed by the developer

Constant cryptographically proved they hold the key that signs TEPPethyst. The claim is a signed proof on Nostr, tied to the certificate below.

Developer
Constant
Developer key
npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw
Signing certificate
fc6f5627becf5e157d416d4b24e8a01487bc93b15d10221f8d40909623c6c212
APK checked by
relay.zapstore.devIt read the APK and found it signed with this certificate before listing the release.
Claim published
Nov 9, 2026
Valid until
Nov 8, 2028
Proof event
5cc8daa7f4457664d8b2b4f8f93146bfbed667a338cdb960437ddca6afa49576in relay.zapstore.dev
How trust works

Amethyst for a child's Nostr account. It stays locked until it finds the family's TEPP plans, then follows them. Every act is checked by the engine first, and what the plans don't allow is refused. What comes in from people and relays the plans don't let in is kept off the screen.

TEPPethyst is a test release, for the Tuin-BETA test. It is Amethyst 1.21.0 with Guardian Alpha's TEPP engine built in, for a child's Nostr account whose parents use Tuin-BETA. It will change, and it has rough edges. Adults should use regular Amethyst.

What it does. It stays locked until it finds the child's TEPP plans: the association Tuin-BETA writes for the child and the guardians' plans. Then it opens as Amethyst and follows them. Every act the child takes is checked by the engine first, and what the plans don't allow is refused, with the reason. What comes in from people and relays the plans don't let in is kept off the screen. Quiet hours set in a plan lock posting and private messages while they last.

Home. Home opens on My garden, the posts of the people and places the plans let in right now. Next to it is a feed for each group, place and list in the plans, and one for each garden a parent opens a gate to (one Tuin suggests, or a friend's family), each name giving its hours as the app reads them from the plans. The plans choose what is fetched, and the engine decides what is shown.

Logging in. On the child's phone, log in with Tuin-BETA's signer (NIP-55, offered on the login screen), or paste the bunker address Tuin-BETA shows (NIP-46). The child's key can also be pasted in, but Tuin-BETA's signer is the way the test is meant to run: then the signer checks every request too.

Where it looks. It starts from Tuin's household relays (relay.primal.net, relay.nostr.net, relay.damus.io), then the child's own relay list, which Tuin-BETA publishes; it writes where that list says. The lock screen lets you add a relay.

What it does not do

  • It governs this app alone. The child can install another Nostr app; only an app that supports TEPP follows the plans in what it shows. Tuin-BETA's signer refuses what the plans don't allow in any app that signs through it.
  • It is one account at a time, and a key logged in without plans stays locked.
  • It doesn't hide from the relays it asks who the plans let in: Home asks Tuin's household relays, and the relays those people list for their own posts, for their posts by name, so those relays can learn who they are and when their hours open.
  • It has no wallet, browser or Marmot groups, and its Home shows only the garden's feeds.
  • It is a test build: not every one of Amethyst's screens has been checked against the plans.

It has no Google Play services. It needs Android 12 or later on a 64-bit ARM phone. It installs beside Amethyst, under its own name.

Based on Amethyst by Vitor Pamplona and contributors (MIT licence). Not made or endorsed by them.

Summary generated by Zapstore from source.

Original description, as the developer published it.

Zap TEPPethyst

Zapping anonymously. Sign in to zap with your identity.

Sats go to npub1t6jxf…qvksrw, the developer who signed the app’s certificate proof.

Amount in sats

Stacked in

Latest release

Nov 10, 2026

Claimed app No Google servicesNo source

Camera and microphone access have no shown use.

Permissions

Nearby devicesCameraNotificationsFilesMicrophoneAlways running What they allow
  • Nearby devices BLUETOOTH_CONNECT Find and connect to devices around you
  • Camera CAMERA Take photos and record video Has no shown use.
  • Notifications POST_NOTIFICATIONS Send you notifications
  • Files READ_EXTERNAL_STORAGE Read files on this phone
  • Microphone RECORD_AUDIO Record audio Has no shown use.
  • Always running REQUEST_IGNORE_BATTERY_OPTIMIZATIONS Keep running in the background without limits

Uses the camera and microphone. Data is sent to Nostr relays.

Release notes

Fixes from the first test on public relays. Private messages: New message now sends to whoever you name under To; it used to send nothing when a key was pasted there. When a message can't go, the app says why and keeps your words. Gardens a parent opens through a gate, one of Tuin's suggested gardens or a friend's family, now reach the child's app: their people join My garden, and each gate gets a feed of its own. The app writes to the child's own relay list as Tuin publishes it, and starts from relay.primal.net, relay.nostr.net and relay.damus.io (offchain.pub is gone). It no longer publishes a Marmot key package and doesn't offer Marmot groups. A child's app now looks like one: no Wallet or Browser tabs, Home offers only the garden's feeds, Start a conversation offers private messages only, the login screen says TEPPethyst, and there are no donation, push-setup or inbox-relay prompts. A closed feed says so, with its hours, instead of "Feed is empty". A refusal names the person, and says when it opens again only where the engine confirms that time. It also asks the signer about something it can't open once per check of the plans, not every minute. In the first field test My garden once stayed empty after quiet hours ended, until a restart; it hasn't happened again in testing or in the second field test, and the app now records what relays answer, should it return.

Comments

Loading comments…

See more

Get TEPPethyst the private way

Updates checked on your device, and every release verified before it installs.

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