Clicky

How Earnest keeps your family safe

Earnest is built to be safe by staying small: your parent PIN is hashed on the device with PBKDF2WithHmacSHA256, every record lives on the phone, and there is no cloud, no account, and no network code in the app. Nothing about your family leaves the device.

How is the parent PIN protected?

The PIN is the key to approvals and Parent Zone, so it is never stored as plain text. Earnest derives a hash with a slow, salted algorithm and compares it in constant time.

PBKDF2Key derivation (HMAC-SHA256)
120,000Hashing iterations
256-bitDerived key length
Per userRandom salt for every PIN
  • The PIN is never stored or transmitted in plain text. Only the salted hash is kept on the device.
  • Comparison is constant-time, which avoids leaking information through how long a check takes.
  • After five failed attempts, Earnest applies an exponential backoff that slows repeated guessing.

Where does your data live?

All of it stays on the phone. Earnest stores quests, balances, approvals, and settings in a local Room database with DataStore for preferences. There is no server to breach because there is no server: the build ships with no networking libraries, so the app has no way to send your data anywhere.

Because there is no account, there is no email, password, or profile for your child to create. You can use Earnest fully offline. The full privacy picture, including how the website differs from the app, is on the privacy page.

  • Offline by default

    No cloud sync and no network calls. The app works with no connection.

  • No account

    Nothing to sign up for, and no personal profile stored for your kid.

  • On-device storage

    Records sit in a local database on the phone, not on our servers.

Which permissions does Earnest ask for, and why?

Earnest requests only the permissions it needs to count time and enforce limits, and it uses each one for a single, narrow job. Here is every permission in plain terms.

Usage access

Lets Earnest see which app is in the foreground so it can count time against your balance and reconcile it accurately.

Display over other apps

Draws the gentle lock screen and the countdown on top of a reward app when time is running low or has run out.

Accessibility service

Detects when a locked app opens and returns to the home screen. Earnest uses it only for enforcement and does not read screen content.

Device admin

Used only to lock the screen at bedtime and school windows. It is not used to wipe, track, or manage anything else on the phone.

Battery exemption

Keeps the foreground countdown service alive on phones that aggressively stop background apps, so timers stay accurate.

Step-by-step help lives in the permissions guide, with device-specific notes for OnePlus battery settings and accessibility setup.

The honest limit of app blocking

We would rather tell you the ceiling than pretend it does not exist. On a normal, non-rooted Android phone, Earnest runs a Basic mode that works with no special setup: it locks the screen at bedtime and bounces a kid out of a locked app back to the home screen.

Truly blocking an uninstall and enforcing a system-wide app allowlist requires Device Owner, which every non-enterprise parental app runs into as a limit. Earnest offers that as an optional Max protection mode you can turn on yourself. It is never required, and it is set up through a factory-reset provisioning flow. Read the details on Max protection mode and how enforcement works.