Five steps
From install to delivered. Exactly how the app does it.
01
Install
Download Hopper, pick a username and an avatar. That pair is all people nearby ever see — no phone number, no social account, nothing tied to your real name.
Identity keys generated on-device
02
Discover
Your phone advertises and scans at the same time over Bluetooth LE, Wi-Fi Direct on Android and Multipeer on iOS. Peers introduce themselves the moment they are in range.
BLE service 8E9A2B00 · iOS ↔ Android
03
Handshake
Each pair runs a Noise XX handshake then exchanges signing keys. Scan a peer’s QR to verify the key out of band.
Noise_XX_25519_AESGCM_SHA256
04
Relay
No direct link? The message is flooded through neighbours with a hop budget of 7 (16 in Large Venue Mode). Each node drops duplicates it has already seen and forwards the rest.
TTL 7 / 16 · 3-minute duplicate window
05
Deliver
Relays only ever carry ciphertext, and every broadcast is Ed25519-signed so no node can forge or tamper with it in flight.
Signed envelope · 24-hour freshness window
Sealed at the source
Every message is sealed inside a Noise session before it leaves your phone, so the peers relaying it only ever move ciphertext.
Nothing kept
A relay remembers only a message id, for three minutes, so it can drop duplicates. There is no server and no log.
No identity on the mesh
No phone number and no sign-up to message. Your X25519 and Ed25519 keys are generated on the device and stay in its secure storage. A paid plan takes your name and email for billing only — the mesh never sees them.

