INDEPENDENT MAIL. A PERSONAL COMMITMENT.

Your inbox deserves
its independence.

A place for your conversations, your agents and your own domain. Built with care. Priced to be within reach.

No adsNo advertising trackersOpen standards

WHO IS “WE”?

Euler's Identity, LLC

Creator & operator of KeyKeeper

eulersidentity.io

KeyKeeper is operated by Euler's Identity, LLC, part of the wider Key* world. We take responsibility for the service, the choices behind it and the work of making it better.

“Infrastructure we operate” means we administer the application and mail servers. Hosting, DNS and other essential providers still play a role. Independence means taking responsibility for those choices and being clear about them.

WHY BUILD ANOTHER EMAIL SERVICE?

More choice.
Less compromise.

If you want an inbox outside Google’s Gmail or Microsoft’s Outlook ecosystem, you should have more independent choices. We’re building one around a simple idea: your conversations belong to you.

We don’t sell your data to advertisers or data brokers, and we don’t build advertising profiles from your inbox. Paid plans and mail credits support the service. Operational logs and limited usage summaries help us run it and prevent abuse.

Privacy should be affordable. Personal is $1/month, including 1 custom domain and 10 aliases. Agents can receive and read for free, with prepaid sending from $1. See the plans and limits →

IN PLACE TODAY

Security in the everyday details.

Practical protections across the account, inbox, mail infrastructure and recovery process.

Protect the account

Hashed sign-in passwords, authenticator-based two-factor authentication, one-use backup codes and a device list with session revocation. Verified password recovery signs out existing sessions and preserves 2FA.

Protect the connection

HTTPS for the web app, verified encrypted connections to our mail services, and TLS required for outgoing SMTP. Sender authentication and domain checks help prevent impersonation.

Protect stored data

Mailbox storage and backups are encrypted, and stored mailbox credentials are encrypted separately. These protections use service-managed keys; ordinary mail remains accessible to the service.

Keep the inbox quieter

Remote images load when you allow them. Received HTML is sanitized and isolated from the application. Uploaded profile photos have embedded metadata removed, without automatic Gravatar lookups.

Make integrations accountable

Agent API keys are checked against stored hashes and can be rotated. Webhooks are signed, sending identities are checked, and recipient limits and bounce controls help contain abuse.

Keep a way back

Encrypted backups run on a separate host with no public website. Recovery has been tested through an isolated restore, including mailbox access and attachments. Security fixes and dependency checks are part of release verification.

Be clear about what trust still means.

Standard messages and drafts, subjects and addressing metadata remain accessible to the service. With OpenPGP on, your message text never reaches KeyKeeper unencrypted, not even as a draft. Encryption at rest is different from end-to-end encryption. Essential providers include hosting and DNS services, Stripe for card payments, Cloudflare Turnstile for the human check at signup, IPstack for approximate session-location lookups, and Venice.ai for the optional KeyKeeper AI add-on. Our privacy policy explains what we collect and why.

THE TECHNICAL DETAILS

Security, in specifics.

The technologies we use, where they apply, and who controls the keys. Reviewed November 3, 2026.

AES-256-GCMEncryption for new mailbox message files
256-bitRandom secrets for new agent API keys
6 hoursScheduled encrypted backup interval
Read the technical breakdown
Mailbox message filesAES-256-GCM
Dovecot mail_crypt v2 encrypts new message files before they reach mailbox storage. The service manages the decryption keys and can read ordinary mail.
Drafts & mailbox credentialsAES-256-GCM · 96-bit nonce · 128-bit tag
Newly saved drafts and mailbox credentials use authenticated encryption, with a fresh random nonce for each write. These keys are managed by the service too. With OpenPGP on, a draft’s text is encrypted to your key in the browser, or kept on your device, before anything is saved.
Account passwordsbcrypt · work factor 12
New account passwords and password resets use salted bcrypt hashes with work factor 12. New passwords must contain at least 12 characters.
Agent API keys256 bits of randomness · SHA-256
New and rotated API keys contain 32 cryptographically random bytes. The application stores SHA-256 digests for verification and returns the usable key only when it is created.
Two-factor authentication6-digit TOTP · 30-second intervals
Authenticator codes change every 30 seconds. Setup also creates 10 single-use backup codes, stored as hashes. A small clock-tolerance window helps accommodate device clock differences.
Custom-domain signing2048-bit RSA · separate key per domain
Custom domains added through our setup receive their own DKIM signing key. DKIM provides sender authentication and message-integrity checks, alongside SPF and DMARC.
Mail connectionsTLS 1.2+ for IMAP · required TLS for sending
Mailbox access requires TLS 1.2 or later. The app checks mail-server certificates, and outgoing SMTP requires an encrypted connection. The website is served over HTTPS.
Webhook authenticityHMAC-SHA256
Each event is signed over its ID, timestamp and exact payload. The receiver guide includes a five-minute timestamp check and event-ID deduplication to help reject replayed events.
Encrypted backupsAES-256-CTR · Poly1305-AES
Restic encrypts and authenticates the backup repository on a separate host. Backups are scheduled every six hours, with hourly health checks. Each successful run verifies the recovered archive and reads the repository to check its integrity.
OpenPGP end-to-end encryptionOpenPGP.js 6 · Curve25519 keys · Argon2
Keys are created or imported in the browser. KeyKeeper stores the private key only locked, with Argon2 and authenticated encryption: once under your passphrase and once under a recovery code. Neither secret is sent to the server. The composer encrypts and signs the message text in the browser, and encrypted mail is decrypted there. Imported keys keep their own type and strength. Subjects and addresses stay outside the encryption; attachments and PGP/MIME messages are future work.
Remembered encryption keysNon-extractable AES-GCM · per-device secret
A browser can keep your unlocked key for up to 30 days, wrapped by a non-extractable browser key and by a per-device secret that KeyKeeper releases only to your signed-in session. Sign-out, Lock, a password change or a passphrase change ends it.
Incoming spam filteringRspamd · SPF, DKIM, DMARC and ARC
Every mailbox is filtered on our own mail server. Message content stays there; reputation checks are DNS lookups that send the addresses of relaying servers and hashed email addresses to blocklist operators.
KeyKeeper AI requestsECDH secp256k1 · HKDF-SHA256 · AES-256-GCM
For subscribers, each spam-check request is encrypted on our servers to the key of a Venice.ai enclave whose hardware attestation our relay verifies itself. Unencrypted replies are refused. Requests are not stored or used for training.

Backup retention policy keeps all captures from two days, plus 30 daily, 12 weekly and 12 monthly recovery points as history becomes available. Restore drills are retained separately. The six-hour schedule depends on successful jobs; it is a recovery target.

Storage encryption uses service-held keys, so standard mail and drafts written without OpenPGP remain accessible to the service. OpenPGP protects the message text according to who holds each recipient’s private key. With OpenPGP on, a draft’s text never reaches KeyKeeper unencrypted.

THE KEY IN KEYKEEPER

Make private conversations
easier to keep.

OpenPGP is a central part of where we’re taking KeyKeeper. The aim is useful encryption, open formats and more control over your own keys.

Available today

Encrypt and read in your browser.

Create or import an OpenPGP key in Settings. It’s stored only locked with a passphrase only you know, plus a recovery code. The composer encrypts and signs the message text when every recipient has a key, and encrypted mail you receive is decrypted in your browser, with its signature checked. Attachments are not encrypted yet.

Next priority

Make encrypted mail work everywhere.

Messages sent as PGP/MIME, encrypted attachments and key-change notices. Then publishing keys so other mail apps can find them, and encryption for agents that hold their own keys.

Longer-term exploration

Bring a physical key.

Hardware-backed sign-in and better support for hardware-held OpenPGP keys. These are future directions, after dependable recovery and interoperability; they are not available yet.

Who holds the private key matters. Your browser key is stored only locked with your passphrase. Some agent integrations use service-managed keys; keeping a key under your own control changes who can decrypt the message. Subjects and addresses remain visible to mail systems.

Follow the PGP and agent roadmap

HELP SHAPE WHAT COMES NEXT

What would make your
mail feel more private?

A better key workflow. A useful privacy control. Something we’ve overlooked. Suggestions, careful criticism and independent security review are welcome.

Write directly to lennart@keykeeper.world. Please keep security reports private.