SLAY
Text, voice and meetups, with or without a signal.
SLAY is a mobile app for situations where internet, cellular or ISP networks are down, censored or overloaded. It works over the internet when it can and, when it cannot, passes encrypted messages from phone to phone over Bluetooth Low Energy, Wi-Fi Direct and the local network.
Uses the internet when it is there and the local mesh when it is not.
Voice messages are recorded with the Opus codec so they travel over low-bandwidth Bluetooth links.
X25519 encryption and Ed25519 signatures on the device.
Incoming push-to-talk uses iOS CallKit and Android ConnectionService.
How it works
Peer-to-peer sync
Messages are stored in an embedded conflict-free (CRDT) database that syncs between nearby phones over BLE, Wi-Fi Direct (Android), Multipeer Connectivity (iOS) and LAN.
Identity
Sign-up with an SMS one-time code, which binds the phone number to encryption and signing keys generated and kept on the phone.
Encryption and franking
Every message is encrypted for its recipient or group, then signed, so an abuse report can prove who sent it. Messages carry a time-to-live.
Offline maps
Maps and routing work offline from pre-cached OpenStreetMap data.
Privacy-first location sharing
Drop a meetpoint pin
- Sends a fixed location as a chat message.
- The recipient navigates there locally, and neither person's movement is tracked.
Live meetup handshake
- Shares live location, encrypted only for the recipient.
- Shows a countdown and expires automatically, for example after 15 minutes.
Safety controls
- A shared blocklist of banned signing keys: messages from a banned identity are silently dropped on every phone.
- A duress PIN that wipes the local messages and keys if someone is forced to unlock the phone.
- Permission prompts for Bluetooth, location, local network, contacts and microphone explain why each is needed.
Where it helps
- Teams working in places with weak or no coverage.
- Emergency and disaster response when cell networks are down.
- Events and venues where networks are overloaded.
Status
SLAY is in pilot. Mesh range depends on how many phones are nearby and running the app. Tell us about your use case to join the pilot.
Try SLAY with your own data
See the sample demo first, then tell us about your environment. We agree the scope with you before anything is installed.