safeword

How Safeword
Works

Protecting families from AI voice cloning fraud with time-locked cryptographic codes.

Anyone's voice can be cloned

A scammer calls your mom, sounding exactly like you. They're panicking, asking for money, begging for help. The voice is perfect.

How does she know it's really you?

🗣️
cloned voice

A shared secret

Both phones generate the same 4-digit code at the same time. Only the real person's phone can produce it. Ask for the code — if it matches, it's them.

Your phone
You
----
60s remaining
Their phone
Mom
----
60s remaining
codes match

Four steps

1

You get a suspicious call

Someone calls claiming to be your son, your sister, your partner. The voice sounds right, but something feels off.

📞
"Mom, I'm in trouble, I need you to wire money right now—"
2

Open Safeword and tap Verify

While still on the call, open Safeword and tap the person's name. They'll get a notification on their phone.

📱
The person on the phone — if they're real — will see a push notification asking them to open Safeword.
3

Ask them to read their code

Both phones now show matching 4-digit codes. Ask the caller to read theirs aloud. A real family member will have the code. A scammer won't.

🔢
"What's your Safeword code right now?"
4

Confirmed — or not

Enter the code they read to you. Safeword tells you instantly if it matches.

Confirmed
It's really them
Not confirmed
Hang up now

Why it's secure

🔐

No one can fake the code

Codes are generated from a shared cryptographic secret that only exists between your two devices. Not even Safeword's servers know it.

⏱️

Codes expire every 60 seconds

Even if someone somehow saw a code, it's already different by the time they could use it. Each code lives for exactly one minute.

👆

Biometric protected

Face ID or fingerprint is required before your code is revealed. Someone with your phone still can't see your code without your face or fingerprint.

01 — Enrollment

Key Generation

Each device generates an Ed25519 key pair. The public key is uploaded to the registry.

Ed25519 → SecureStore
02 — Discovery

Contact Matching

Phone numbers are HMAC-SHA256 hashed server-side. Your phone never sends raw numbers for storage.

HMAC-SHA256(key, phone)
03 — Key Exchange

ECDH

Both devices fetch each other's public key. Ed25519 keys are converted to Curve25519 for Diffie-Hellman.

nacl.box.before()
04 — Verification

TOTP

The shared secret feeds a TOTP algorithm: SHA-1, 4 digits, 60-second window. Both phones produce the same code.

TOTP(secret, time)