End-to-end encrypted messaging
DropKey
Menu
Zero-knowledge relay

Private messages. Zero server access.

DropKey is built for end-to-end encrypted messaging between registered users. Pairwise channels use ECDH + HKDF — and we also support one-time Sends when you need to drop a secret.

Encrypted channel — dev_ops ↔ deploy_svc

deploy_svc
A3F2 · 8C91 · 4E7B · 1D05
Auto-delete after 7 days
deploy_svc · 14:02 UTC Rotation keys are ready on staging.
you · 14:03 UTC Copying creds to the vault now.
ECDH + HKDF · AES-256-GCM
Server relays ciphertext only
P-256 · Web Crypto

Built for teams who take security seriously

ECDH

P-256 key exchange

AES-256

GCM encryption

0

Plaintext on server

HKDF

Conversation keys

Encrypted messenger

Messages

Open pairwise encrypted channels with any registered user. Messages are encrypted with per-conversation keys derived via ECDH (P-256) and HKDF. The server relays opaque ciphertext only.

  • Identity key fingerprints to verify your partner
  • Private keys stay local in your browser
  • Auto-delete messages after 1 hour to 30 days
One-time secret sharing

Sends

Share passwords and secrets with up to 100 registered viewer names. Set expiry from 1 hour to 30 days. Only listed viewers — plus you — can open a Send.

  • Password-protected payloads encrypted with AES-256-GCM
  • Argon2id key derivation in a Web Worker
  • Automatic deletion when expiry is reached

Capabilities

Security without the friction

Every layer is designed so your messages stay yours — from first handshake to auto-delete.

Pairwise E2E messaging

Per-conversation keys derived via ECDH (P-256) + HKDF. Chat messages are encrypted with AES-256-GCM before they leave your browser.

Client-side encryption

Sends and chat messages are encrypted in your browser before submission. The server stores only ciphertext.

Identity verification

Public key fingerprints let you confirm you are messaging the right person — not an impostor or MITM.

Automatic expiry

Set message retention from 1 hour to 30 days. Expired messages and Sends are permanently deleted every 30 minutes.

Hardened accounts

Passkeys, two-factor authentication, and email verification protect who can access your channels.

Defense in depth

Strict Content Security Policy, short-lived Valkey sessions, and Laravel encrypted casts at rest for Sends and chat payloads.

Messenger protocol

Pairwise encrypted channels

Private messaging between registered users. The server relays ciphertext — it cannot decrypt content.

  1. #01

    Start a conversation

    Open Messages, enter a registered user name, and open a pairwise encrypted channel.

  2. #02

    Identity keys

    Each user gets an ECDH (P-256) key pair in the browser. The public key is registered with the server; the private key stays local.

  3. #03

    Derived conversation keys

    Messages are encrypted with AES-256-GCM using a per-conversation key derived via ECDH + HKDF.

  4. #04

    Server relay only

    The server stores and relays opaque ciphertext. It cannot decrypt message content.

  5. #05

    Verify your partner

    A fingerprint of the recipient's public key is shown so you can confirm you are talking to the right person.

  6. #06

    Auto-delete

    Each conversation can be configured to delete messages after 1 hour to 30 days.

Send protocol

Five steps. Zero exposure.

From creation to decryption, your secret never touches our servers in plaintext.

  1. #01

    Create a Send

    Name it, add registered viewer names, write your secret, and pick an expiry between 1 hour and 30 days.

  2. #02

    Encrypt locally

    Optional password protection encrypts the message with AES-256-GCM. The key is derived via Argon2id in a Web Worker.

  3. #03

    Share securely

    Only registered users whose names you listed can open the Send. You can always view your own Sends too.

  4. #04

    Decrypt in browser

    Authorized viewers enter the shared password locally. Decryption runs off the main thread — we never see it.

  5. #05

    Auto-delete

    When the timer runs out, the Send is permanently removed. No recovery, no residue.

Security model

We cannot read your messages

DropKey is built on a zero-knowledge model. Chat messages and password-protected Sends are encrypted before they leave your browser. If you lose your local identity key or a Send password, the content cannot be recovered — by design.

  • [+] ECDH + HKDF conversation keys for every chat
  • [+] Client-side E2E encryption protects content from operators
  • [+] Identity key fingerprints prevent wrong-recipient attacks
  • [+] Strict CSP blocks XSS and injection attacks
Layer Protection
Client-side E2E Send and chat content from server operator
Laravel encrypted cast Send & chat payloads at rest
ECDH + HKDF Per-conversation chat encryption
Identity key fingerprints Wrong recipient or key substitution
Opaque chat relay Chat ciphertext stored as-is
Passkeys + 2FA Account access
Per-Send viewer ACL Who can open a Send
Valkey sessions Session hijacking surface
Content Security Policy XSS and injection

Support

Frequently asked questions

Everything you need to know before opening your first encrypted channel.

Can DropKey staff read my messages? [+]

No. Chat messages and password-protected Sends are encrypted in your browser before upload. We store only ciphertext and never receive your decryption keys. We cannot recover lost identity keys or Send passwords.

How does chat encryption work? [+]

Each user has an ECDH (P-256) identity key pair. Per-conversation keys are derived via ECDH + HKDF, then messages are encrypted with AES-256-GCM. Both parties derive the same key independently.

Who can view a Send? [+]

Only registered users whose names you listed as viewers, plus you as the owner. There are no public links — access is strictly invite-based.

What encryption is used? [+]

Sends use AES-256-GCM with Argon2id key derivation in a Web Worker. Chat uses ECDH (P-256) + HKDF + AES-256-GCM. At rest, Laravel's encrypted cast adds another layer for Send and chat payloads.

How long do Sends last? [+]

You choose an expiry between 1 hour and 30 days when creating a Send. Expired Sends are permanently deleted by a scheduled task that runs every 30 minutes.

How many Sends can I have? [+]

Each user can have up to 15 active Sends at a time, with up to 100 viewer names per Send and a 1,000-character plaintext message limit before encryption.

What protects my account? [+]

Accounts support passkeys, two-factor authentication (TOTP), and email verification. Sessions are short-lived and stored in Valkey to minimize hijacking risk.

Is this better than sharing via chat or email? [+]

Yes. Chat and email leave plaintext copies in message history, logs, and backups. DropKey encrypts before transmission, limits access to named viewers, and auto-deletes on expiry.

What happens if I forget the Send password? [+]

The secret cannot be recovered. This is intentional — it proves we never had access to the decryption key. Only share passwords through a separate secure channel.

Ready to deploy

Stop chatting in plain text

Open your first encrypted channel in minutes. Verify your partner, message with confidence, and let auto-delete handle retention.