Message the people around you. No internet, no server, no account.
Yapmesh moves signed, end-to-end encrypted messages, voice notes and files straight from phone to phone. Your key is your identity. A message rides in other people's pockets until it reaches the one it is for, and when you do have internet it can reach across it without a server of ours.
Free. Android 8.1 and up, 32-bit included. No phone number. iPhone: runs on a real iPhone since 11 Sep 2026 and chats with Android over Wi-Fi; not yet downloadable.
Live drawing: phones link over Bluetooth and Wi-Fi Direct, a message hops, rides in a pocket, and lands.
BluetoothWi-Fi Directmessageriding
2 min 53 sfor a 5 MB file over Bluetooth alone, verified byte for byte1
108 sfor a message carried between two phones that never linked, by a third2
Android 8.1 ↔ 16a 2018 32-bit phone and a 2026 phone, linked and chatting4
845 testson the open protocol core, all passing on 11 Sep 20265
0 servers of oursinternet reach, when you switch it on, borrows public relays; nothing is ours to seize
When you need it most
Built for the days the network is gone
Ordered by how many people it touches. Every number has a source at the end of the page. Each card names the rung of the ladder that does the work.
Internet shutdown
313 shutdowns in 52 countries in 2025; Pakistan alone had 206
When the network is switched off on purpose, phones are still on. Yapmesh links them over Bluetooth and Wi-Fi Direct, and a message keeps moving from pocket to pocket.
Bluetooth · Wi-Fi Direct
Earthquake, flood, cyclone
110 M people affected by disasters in 2025; after Hurricane Helene, 74% of cell sites were down across 21 counties78
Towers fail first. Yapmesh needs none. An SOS reaches every phone in reach and is carried on for a day; it relays before it is even read.
Bluetooth · pocket-ride · SOS
Stadium, festival, pilgrimage
1.7 M pilgrims at Hajj 2026; 663 million visits counted at Maha Kumbh 2025; at Taylor Swift's Melbourne shows, data demand was about double what the carrier expected and fans could not post91011
A million phones on one cell is how a network collapses. Yapmesh grows stronger with every phone: files spread faster the more phones hold them, and a fenced group exists only inside the venue.
Wi-Fi Direct · fences
Classroom and campus
3.1 bn people live under mobile coverage but do not use the internet, mostly for cost12
Yapmesh began in a classroom with no Wi-Fi. A teacher's phone anchors a fence; the phones in the room share notes, voice and files with nothing to pay for.
Wi-Fi router · anchor fence
Office, site and clinic records
$4.99 M the global average cost of a data breach in 2026, a record high13
Some documents are not supposed to leave the building. A fenced group keeps a project's messages and files inside it: the files are encrypted before they are ever cut into pieces, so a phone that relays them holds a box it cannot open, and a phone that walks out loses the key.
Wi-Fi router · anchor fence
Village with no signal
300 M people live outside any mobile broadband coverage; 2.2 bn are offline1214
A message waits in the outbox, then rides with whoever walks to town. Where the carrier delivers SMS, a stuck message can go by text, three pieces at a time.
pocket-ride · SMS
Hospital and field clinic
100,000+ health facilities in sub-Saharan Africa without reliable power and internet, a programme estimate15
A ward group fenced to the ward: a member who walks out loses the key, and the group's files are encrypted before they are chunked.
Wi-Fi router · anchor fence
Ship, mine, mountain
7.4 / 10 is how seafarers rated their connectivity at the end of 2025, down from 7.816
A ship's Wi-Fi or a phone's hotspot is a rung of the ladder. No internet needed for the crew to talk, share manifests, or send a voice note down the shaft.
Wi-Fi router · Bluetooth
Protest and press
64 shutdowns during protests in 19 countries in 20256
No phone number, no account, no server to subpoena. Presence only with consent, an alias that rotates every 15 minutes, history that can disappear, keys exchanged by a tap or a sound.
Bluetooth · sound · disappearing history
How it works
Nine rungs. The phone picks; you never do.
A message goes on the best link it has, falls to the next after eight seconds, floods last. When every radio is exhausted it is marked stuck and offers the four hand-carried rungs. Tap a rung.
T1 · Internet
Needs
Any IP path. A phone whose address you know; or, with Internet reach switched on, a contact anywhere: the two phones meet through public Nostr or MQTT relays under an hourly code only they can compute, then talk through a sealed tunnel or a direct WebRTC hole-punch. No server of ours, and off by default.
Range
Wherever the address is reachable
Carries
Everything
Frame limit
64 KB per frame
On hardware
Verified on phones Two phones linked over a tunnelled TCP path on 8 Sep 2026; the ladder chose it over Bluetooth by itself.4 Internet reach was proven from a laptop against real public relays on 11 Sep 2026 (met in 1.3 s, delivered and acknowledged in 2.7 s) but has not yet run on a phone.
T2 · Wi-Fi router or hotspot
Needs
Both phones on one Wi-Fi, or one phone's hotspot. Discovery by DNS-SD, no configuration.
Range
The whole network
Carries
Everything, including calls and the laptop browser client
Frame limit
64 KB per frame
On hardware
Verified on phones A laptop browser reached a phone over Wi-Fi and a second phone over Bluetooth through it; a fresh phone installed Yapmesh over a hotspot.317
T3 · Wi-Fi Direct
Needs
Two phones with Wi-Fi on, no router. Android Nearby Connections, and on Android 10 and up the framework's own Wi-Fi Aware as a second path, without Play Services.
Range
Further than Bluetooth; depends on walls and the phones
Carries
Everything
Frame limit
32 KB per frame
On hardware
Verified on phones Linked and lit on the ladder in every bench session; the app now reports honestly whether a link is on Wi-Fi or Bluetooth.18 Wi-Fi Aware is built, not yet field-tested; the desk phones do not support it.
T4 · Bluetooth
Needs
Bluetooth on. Yapmesh runs both Bluetooth LE and classic Bluetooth links, so phones with different Android versions still meet.
Range
A room, sometimes much more; the Bluetooth SIG puts real-world range anywhere from under a metre to over a kilometre19
Carries
Everything, slowly: a 5 MB file took 2 min 53 s
Frame limit
32 KB per frame
On hardware
Verified on phones The rung every session ran on. Android 8.1 to Android 16 linked over it.14
T5 · SMS
Needs
A SIM and the other person's number. Yapmesh opens your phone's own messaging app; you press Send on each piece. Nothing is sent silently.
Range
Wherever the carrier delivers a text, satellite-to-cell included
Carries
A stuck message as sealed text, usually three pieces; receipts in one
Frame limit
1,200 bytes
On hardware
Verified on phones Both halves verified: three pieces reached a real phone intact, and a Yapmesh phone with its radios off received three pieces by carrier SMS and showed the message in the thread (8 Sep 2026, evening).4
T6 · Screen to camera
Needs
One phone shows a fountain-coded animated QR; the other's camera reads it. Line of sight, arm's length.
Range
As far as a camera can read a screen
Carries
A stuck message, a contact code, a whole queued bundle
Frame limit
4 KB
On hardware
Partly verified The animated code was read off a phone screen and rebuilt from two packets on the far side; camera-to-camera between two phones is not yet field-tested.4
T7 · Sound
Needs
A speaker, a microphone and a quiet room. 16-tone MFSK at 17.6–19.9 kHz, about 12 bytes a second after error correction.
Range
The same room; walls stop it, which is why it also proves you are in the room
Carries
Contact codes and receipts only. A sealed message never fits and is refused with its size
Frame limit
200 bytes
On hardware
Built, not yet field-tested The size refusal is verified on a phone. The sound path itself is built and not field-tested; on the 8 Sep build the send screen failed with an error, logged and not yet re-checked.
T8 · Any app you already have
Needs
The share sheet, or a paste. A sealed Yapmesh code is just text; WhatsApp, e-mail, a USB stick or a piece of paper can carry it.
Range
Wherever the other app reaches
Carries
A stuck message, a bundle of queued messages, a contact code
Frame limit
64 KB
On hardware
Verified on phones Share out of Yapmesh and share into Yapmesh both verified; a code handed over this way was decrypted and answered, and the receipt came back over the radio later.4
T9 · LoRa radio
Needs
A Meshtastic-compatible LoRa board paired over Bluetooth. Short messages only; no files; private messages over LoRa are off by default.
Range
Kilometres, line of sight; the board sets the range, not the phone
Carries
Text, receipts, SOS
Frame limit
756 bytes per frame, in 200-byte pieces
On hardware
Built, not yet field-tested Built and tested in code on 11 Sep 2026. No board has been paired on a real phone, so no range is claimed.
The Mesh tab: a live map of two phones two hops deep, and the ladder chips with Wi-Fi Direct lit and the rest dark.
Pocket-riding
A phone that cannot see the recipient keeps a sealed copy and hands it over when they meet. The sender sees it happen.
1 · queued
Amina sends to Bilal. He is out of reach, so the message waits in her outbox, sealed.
2 · riding
Chen's phone, near Amina, takes custody. Amina's bubble says riding. Chen cannot read it.
3 · delivered
Chen meets Bilal. The message lands, the receipt rides back, Amina's ticks go double.
Verified with three phones on 8 Sep 2026: the middle phone held the message for a phone it had never met, 108 seconds later it landed.2
Five honest delivery states
Queued — in your outbox, nobody has it yet
Stuck — every radio tried; hand it over by SMS, screen, sound or any app
Riding — another phone is carrying it
Delivered — their phone has it
Read — they opened it
A message's tick changing from a single grey tick to a double tick and then to the read colour, filmed on a real phone.
Files spread like a torrent
A file is cut into 16 KiB chunks under a Merkle root that is its name. Every phone that holds a piece serves it, rarest piece first, and each chunk is proven against the root before it is kept. A speedometer shows bytes per second and the time left.
Verified: 5 MB in 320 chunks, 0 rejected, identical hash on arrival; a 2 MB spreadsheet shrank on the wire and crossed in 4.6 s.183
SOS
One long press reaches every phone in reach
When there is no signal to call anyone, the phones around you are the network. An SOS is the one message Yapmesh sends to everybody, and the one every phone passes on before it even reads it.
Long-press to send
A press, a confirm sheet, an optional line of text and, only if you switch it on, your location and battery level. Nothing goes out by accident.
16 hops, 24 hours
An SOS crosses up to 16 phones and lives for a day. Every phone relays it first and shows it second, then keeps it and hands it to every new phone it meets.
Every phone alerts
A full-screen red banner on every phone running Yapmesh in reach, even ones whose owners have hidden themselves. Hidden phones still acknowledge, so your "seen by" count is honest.
Nobody can switch it off for you
There is no server to throttle it and no account to suspend. Anyone with the app is a relay, and anyone can send one.
The SOS banner as it appears on the receiving phone.
Verified on two phones on 7 Sep 2026: a long-press on one phone put a red "SOS from Bravo, next to you" banner on the other at once, with the sender's battery level.18
What it is not: a call to the police, an ambulance or a rescue service. An SOS reaches phones with Yapmesh within radio range or carried by people who walk, and it can fail silently when no phone is in reach. Use your country's emergency number whenever you can.
Features
Everything a messenger does, with nobody in the middle
Screens are from the 8 and 11 September builds on a Samsung Galaxy A07. Each feature says whether it has run on real phones.
Chat with anyone in reach
A one-to-one thread on a phone: a quoted reply with a thumbs-up reaction, a photo, and a voice note with blue double ticks.
Text, photos, video, quoted replies, reactions, @-mentions, stickers, places and contact cards, each sealed to the recipient with a key that ratchets forward every exchange.
Verified on phones Text, photos, replies and reactions verified on two phones and a browser client; the rest built, not yet field-tested.
Send voice notes
A received voice note playing in a chat, with a waveform and the size, 16 KB.
Hold, speak, release. A four-second note is about 20 KB and arrived in three seconds over Bluetooth.
Verified on phones
Ask the room with a poll
The public Nearby room on a phone: a pinned message bar, a quoted reply marked edited and seen by 1, a thumbs-up reaction, a poll reading East gate 2, Main gate 0, and two voice notes.
Two to twelve options, one choice or several, one vote per key, and a vote can be changed or withdrawn. The count is computed on every phone from signed votes; there is no tally server to trust.
Partly verified Sent from a phone, voted on from a browser node and counted on both on 11 Sep 2026 over Wi-Fi. Not yet tried over Bluetooth or across a relay.
Edit, forward, star, pin, delete for everyone
Edit a sent message and every phone that has it shows the new text, marked edited. Forwarded messages say so. Star what matters into one list; pin a message to a chat or a chat to the top. Delete for everyone leaves a tombstone on every holder.
Partly verified Edit, pin, react and reply verified between a phone and a browser node on 11 Sep 2026. Forward, star and delete-for-everyone are built and tested in code.
The Chat settings screen: read receipts and typing hints as switches, then Starred messages, Send to many and Export all chats.
Mute a chat for a period. Set a timer and every phone that holds a message drops it when it is up, best effort. Typing indicators are link-local and never relayed. Read receipts can be switched off for direct chats.
Built, not yet field-tested
Search, media, export, send to many, live place
Search inside a chat or across the list. Every photo, file and voice note of a chat on one screen. Export a chat, or all of them, to plain text. Send one message to a saved list of people, sealed to each. Share a live place that updates until a time you choose.
Built, not yet field-tested
Drop files that spread
The Files tab during a transfer: a swarm meter reading 399.5 KB per second in, a file 44% downloaded with 5 seconds left, and the line one of two phones have it.
Anything in the room's drop zone reaches every phone in range, and each phone that has it helps the next.
Verified on phones
Make groups with signed rosters
The members screen of a private group with three members: the admin, and two members, one of them linked right now.
Who is in is a signed record, not a server's opinion. Keys rotate when someone leaves; each sender has its own chain, so one message read later never unlocks the ones before it.
Verified on phones
Give a group a name, a face and rules
A description and an icon, signed by an admin and sealed to the group. Notice groups where only the admin posts: a member's phone refuses to send and every holder drops a non-admin message.
Built, not yet field-tested
See who has it, per member
A group thread where the sender's own message reads delivered to 0 of 2, because neither member is in reach.
A group message reads delivered to 3 of 5, read by 2, riding for 1. A phone that hides receives but does not count, which is the truth.
Verified on phones
Fence a group to a place
The fence chooser: no fence, a circle on a map, an area on a map, Wi-Fi in the building, near an anchor phone, or a combination, each with its honest limits.
A circle on a map, a building's Wi-Fi, or the phones in a room. Walk out and the key leaves your phone; walk back in and, if the rules allow, it returns with the history.
Built, not yet field-tested
Let history disappear
The new-group screen with retention: messages disappear after a chosen time, and delete everything when I leave.
Per group: messages vanish after a chosen number of hours, and everything can be deleted when you leave. Enforced on every member's phone.
Built, not yet field-tested
Let chosen people sense you
The People tab: your own key fingerprint, contacts, and a contact whose presence line reads nearby now.
Presence is a grant you give per contact: same network, same area, same room, same table. Everyone else sees a token that changes every 15 minutes.
Verified on phones
Verify a contact's key
A 60-digit safety number and a QR code per contact, Signal style. A matching scan marks the contact verified; a changed key is shown, not hidden. First messages are forward-secret thanks to X3DH prekeys in the contact bundle.
Built, not yet field-tested
Send an SOS to every phone in reach
An SOS banner across the top of a phone: SOS from Amina, next to you, Ward 4 is flooding, need hands at the east gate.
Long-press to confirm. It goes 16 hops, lives 24 hours, is relayed before it is read, and carries your location only if you say so.
Verified on phones
Hand-carry by SMS, screen, sound or any app
A stuck message showing the row: no radio could deliver this, hand it over, with SMS, Share, Beam and Chirp buttons.
When every radio fails the message says so and shows four buttons. Each does one thing on one tap. Nothing is sent without you.
Partly verified SMS both ways, screen and any-app verified; sound is built, not yet field-tested.
Hand the app to the next phone
The Share the app screen: give Yapmesh to a phone that has nothing, with a Start a hotspot for them button.
A phone starts a hotspot and serves its own installer. The other phone scans two codes and installs, with no internet at all. The signer's fingerprint is on both screens.
Verified on phones
Use it from a laptop browser
Switch on the laptop rung and any browser on the phone's Wi-Fi or hotspot becomes a full node, files included.
Verified on phones
Call one hop away
Voice and video over any IP link: a router, a hotspot, Wi-Fi Direct. Signalling rides the mesh; media is direct. No IP path, no call, and the screen says so.
Built, not yet field-tested
Reach a contact across the internet without a server
The Internet reach screen with the switch off, three public Nostr relays listed, and an MQTT brokers switch, also off.
Off by default. Two phones that both have internet find each other through public Nostr or MQTT relays under an hourly pair code, then talk through a sealed tunnel or a direct WebRTC channel via public STUN. A push wake over UnifiedPush lets the phone sleep. Any contact can be marked never over the internet.
Built, not yet field-tested Live-proven against real public relays from a laptop on 11 Sep 2026; the phone edges (WebRTC, UnifiedPush) have not run on hardware.
Park a stuck message in a mailbox you can host
Optional relay plane: a sealed envelope in a hashed mailbox on a tiny HTTP relay anyone can run, readable only by the owner's key, gone in seven days.
Built, not yet field-tested
Send over a LoRa radio
The LoRa radio screen: no board paired, a Scan button for Meshtastic boards, and Private messages over LoRa switched off.
Pair a Meshtastic-compatible board over Bluetooth and short messages, receipts and SOS travel for kilometres with no network. No files. Private messages over LoRa are off by default.
Built, not yet field-tested No board on the desk yet, so no range is claimed.
Refuse the file you did not ask for
The Files and downloads screen: photos and voice notes from everyone, videos and documents from contacts only, and a 25 MB ceiling for strangers.
Per kind and per sender: photos from contacts arrive, a stranger's document or video waits for a tap, and everything has a size ceiling. Files are sniffed by their bytes; an installer, script or archive disguised as a photo opens only through a red warning. Blocking a sender deletes every file they sent and denies those hashes.
Built, not yet field-tested
Filter abuse on the phone
The Safety screen: blocked people, reports from this phone, the abuse filter switch, community standards, privacy, terms, child safety and legal requests.
Abusive text in English, Urdu script and Roman Urdu is refused before it is sent; explicit images are blocked in the public room and blurred in private chats. Around 500 entries with spelling tricks folded. No cloud classifier: a pluggable on-device slot exists and ships empty.
Built, not yet field-tested
Lock the app with your phone's lock
Fingerprint, face or pattern in front of Yapmesh, re-locking after a delay you choose. Yapmesh keeps no PIN of its own. It is a door on this phone, not a second layer of encryption.
Partly verified On a phone that has a screen lock, the switch is live and tapping it raises the phone’s own system prompt; refusing that prompt while turning the lock on leaves the lock off and saves nothing. A successful unlock, and the locked screen covering an open chat, still need the phone’s owner rather than a laptop.
Decide when media shows
The photos and videos setting: open when downloaded, or wait for a tap so nothing appears on screen while someone is looking over your shoulder.
Photos and videos can wait for a tap instead of appearing as they arrive, for when someone is looking over your shoulder. A half-arrived file never opens.
Verified on phones Photos verified on two phones over Bluetooth. The video tile was checked with a stub file, so the tile and its play button are verified but a real recording playing is not.
Spaces
A home for what you use the big apps for
The sentence has two readings, so here are both.
Where you do it today
The Yapmesh space
What is different
WhatsApp group
Private group
Signed roster; keys rotate when someone leaves; no server holds the list.
Discord server
Open group
Anyone nearby can join; the key is public by design; no invite link to leak.
Telegram channel
Nearby room
Everyone in radio range reads it; each post shows how many phones saw it.
Instagram close friends
Presence grants
Only people you grant can sense you, and only to the tier you chose.
Snap Map
Mesh map
Phones and links coloured by rung; nobody's position leaves their phone.
Slack workspace
Anchor fence
A group that exists only around the office's phones; walk out and the key goes.
Facebook event
Geo fence
A circle on a map with a grace period; mock locations count as outside.
Google Classroom
Anchor-fenced group
The teacher's phone is the anchor; the room is the login.
Twitter poll
Poll in any chat
Signed votes counted on every phone; no tally server.
WhatsApp broadcast list
Send to many
One message sealed separately to each person on a saved list; nobody sees the list.
Groups and the Nearby room are verified on three phones. Fences are built, not yet field-tested.2
A sealed Yapmesh message is text. The share-sheet rung lets it travel through any app that carries text, and the receipt can come back the same way or over the radio later.
Tested end to end: SMS through Google Messages (three pieces, received intact on another phone), and text shared into Yapmesh from another app.4
Offered by the share sheet on the test phones but not yet tested end to end: WhatsApp, Gmail, Quick Share. Not yet tried: Telegram, Signal, Instagram DM, a printed QR. We list only what we tried.
Private by construction
There is no "we"
What leaves your phone
Sealed frames only: a signed header and a ciphertext. Relays see a size and a hop count. A group's files are encrypted before they are cut into chunks, so a phone that holds every chunk holds a box it has no key for.
What we can see
Nothing. There is no server of ours, no account, no analytics, no crash reporter. This website has no tracker either. If you switch Internet reach on, a public relay sees your IP address and an opaque hourly code, and nothing else; it is off by default.
What a neighbour sees
A phone in the mesh, and, only if you allowed presence for that person, a token that changes every 15 minutes and means nothing without the secret you gave them. Hide, and even your name leaves the air.
The primitives, named exactly
Ed25519signs every frame; your public key is your identity
X25519 sealed boxseals a message to one recipient when no session exists yet, and all control messages
Double Ratchetfor direct messages: forward secrecy and break-in recovery, bootstrapped from the contact code with no prekey server
X3DH prekeysa signed prekey rotated weekly plus one-time prekeys in the contact bundle, so the first message is already forward-secret
Per-epoch group keys + sender keysa fresh key when a member leaves; a chain per sender per epoch, so every message has its own key
XChaCha20-Poly1305boxes group messages and files; ChaCha20-Poly1305 inside the ratchet
Merkle-verified chunksa file's name is the root of its chunk hashes; a bad chunk is dropped before it is stored
Sealed receiptsdelivered and read receipts ride in a 21-byte box, not in the clear; fixed after an internal audit finding
FireChat was last updated in 2018 and its service was gone by 2020.6667 Bridgefy: a 2020 Royal Holloway analysis found it offered no authenticity and no effective confidentiality; Bridgefy adopted the Signal Protocol in October 2020, and a 2022 USENIX Security paper broke it again.695470 Briar entered maintenance mode in July 2026.45 Berty's own README says it should not yet be used for sensitive data.24 Meshtastic needs a LoRa radio; the phone is only a client.37 Yapmesh has had no independent audit; read the security page before trusting it with anything.
Get Yapmesh
Three ways in
Download the APK
The first release-signed build is not published yet. The builds on our desk are signed with a development key and must not be installed from strangers. When the release exists, this box will show the file, its SHA-256 and the signing-key fingerprint, and the app's About screen will show the same fingerprint.
Signing-key fingerprint Compare it with About → Signer in the app and with the line on your friend's Share the app screen. If the lines differ, it is not the same app.
Android 8.1 or newer, 32-bit phones included. About 55 MB.
iPhone: the app runs on a real iPhone 17 Pro Max (release build, 11 Sep 2026) and exchanged messages with Android phones over the same Wi-Fi. It is installed from the developer's Mac only; there is no App Store or TestFlight build yet.71 No store listing exists yet, so there are no store badges.
What Android will show you
Chrome or Samsung Internet may warn that the file type can harm your phone. Keep it.
On first install: "For your security, your phone is not allowed to install unknown apps from this source" → Settings → allow this browser → open the file again.
Samsung phones shipped with One UI 6.1.1 or later have Auto Blocker on by default; it refuses the install until Settings → Security and privacy → Auto Blocker is off.72
Play Protect may say it has not seen the app before and offer to scan it; that is Google's check and it needs internet. Offline, it does not appear.73
From 30 September 2026 Google starts requiring app developers to be verified in Brazil, Indonesia, Singapore and Thailand, with the rest of the world to follow in 2027. On those phones an app from an unverified developer needs a switch in Developer options and a 24-hour wait. Registering Yapmesh's developer is on the list before the first release.7475
From a friend's phone
They open People → Add someone → Share the app → Start a hotspot for them.
You scan the Wi-Fi code with your camera, then the second code. Your phone will say "no internet"; choose to keep using the network and switch mobile data off.
Tap Download, allow the source when asked, open the file, Install. Check that the fingerprint on their screen matches the one on your About screen.
Verified on 7 Sep 2026: a phone with nothing installed got Yapmesh from the phone next to it, 54.6 MB in about 45 seconds, and linked at once.17
On a laptop
On a phone with Yapmesh: Mesh → Use Yapmesh on a laptop. Join the phone's Wi-Fi or hotspot from the laptop and open the address shown. The browser becomes a full node: chat, files, the mesh map.
Open protocol
Read it, break it, tell us
The wire format, the ladder, muling, the swarm, the ratchet, groups, epochs and fences are written down in one document with section numbers that the code cites. The protocol core is a pure Dart library with no app or brand code in it; it runs in the browser too.
Yapmesh began with one teacher, a classroom full of Android phones, and no Wi-Fi. The first message crossed a desk over Bluetooth on 6 September 2026, and everything since is in the test log.
FAQ
Questions people ask first
What does it do to my battery?
Yapmesh keeps Bluetooth and Wi-Fi discovery running while it is open, under a visible foreground notification, and relays with a battery-aware policy. We have not yet measured a full day: every bench session ran on USB power. The number will be published when it is real.
How far does it reach?
One link is a Bluetooth or Wi-Fi Direct hop: a room, sometimes a building. A message can cross eight such hops, and it also rides in pockets, so the honest answer is: as far as people walk. On a shared Wi-Fi or hotspot, the whole network.
What happens when nobody is nearby?
The message waits in your outbox and is offered to every phone that appears. After eight seconds with no way through it is marked stuck and shows four buttons: SMS, share, screen, sound. Nothing is ever sent without your tap.
Can a government read it?
Not the content: every direct message is sealed to one key with a Double Ratchet, every group message with its own message key, and receipts are sealed too. What a radio neighbour can see is that a phone is present and that frames of some size are moving. With Internet reach on, a public relay additionally sees your IP address and an hourly pair code. There is no server to compel and no phone number to look up. See the security page for what is not protected.
Why does it ask for SMS permission?
To receive a Yapmesh message that arrived as a text, so it lands in the chat instead of your inbox. Sending is never automatic: Yapmesh opens your own messaging app and you press Send. You can refuse the permission and Yapmesh still runs; the SMS rung then only sends.
Why no phone number?
A number is an account at a carrier, and an account is something that can be looked up, blocked, or handed over. Your identity in Yapmesh is a key made on your phone. You share it by QR, a tap, a sound, or a link.
What if I lose my phone?
Your key is on that phone and nowhere else, so the identity is gone with it; contacts will see a new key when you come back and should verify it again. Turn on the app lock so a found phone shows nothing. Groups with retention forget old messages on every member's phone.
How do keys get verified?
A contact code is a signed bundle you get in person: scan their QR, tap phones, let the phones chirp to each other, or open a yapmesh.com/add link they sent. A forged code fails the signature and is dropped. Afterwards each contact has a 60-digit safety number and a QR to compare, Signal style; a matching scan marks them verified, and a changed key is shown, never hidden. Groups verify every roster record the same way.
Which parts have never run on a phone?
Everything built between 8 and 11 September 2026: internet reach, spools, LoRa, Wi-Fi Aware, file safety, the abuse filter, safety numbers, and most of the chat additions. Each is labelled on this page. Polls, edit, pin, reply and react were exercised between a phone and a browser node on 11 September; the rest have passed automated tests only. The iPhone build ran on a real iPhone 17 Pro Max on 11 September and chatted with an Android phone over the same Wi-Fi; iPhone to Android over Bluetooth is not possible on iOS, and iPhone to iPhone over Bluetooth is built but untested.
Does it work on iPhone?
It runs. On 11 September 2026 a release build was installed on an iPhone 17 Pro Max from the developer's Mac, joined a mesh with two Android phones over the same Wi-Fi, and read a message from one of them. What it cannot do: link to an Android phone over Bluetooth, because iOS has no equivalent of Android's Nearby Connections; iPhone-to-iPhone Bluetooth uses Apple's Multipeer framework and is built but untested. It is not on the App Store or TestFlight yet, so there is nothing to download.
Sources
Every number on this page, with where it came from and when it was read.
Yapmesh hardware log, Session 4, 8 Sep 2026: stuck row, Beam decoded, share in and out, SMS in three pieces to a real phone and received by a Yapmesh phone with its radios off, internet peer over a tunnel, Android 8.1 ↔ 16, three-phone mesh. github.com/zakonweb/yapmesh/blob/main/docs/classroom-test-results.md
packages/yapmesh_core/test: 845 tests reported passing by `dart test` on 11 Sep 2026; 249 more in app/test and 6 in the relay. The 30-node mesh simulator lives under test/sim. github.com/zakonweb/yapmesh/tree/main/packages/yapmesh_core/test, counted 11 Sep 2026
Access Now / #KeepItOn, "Rising Repression Meets Global Resistance: Internet Shutdowns in 2025", March 2026: 313 shutdowns in 52 countries; Myanmar 95, India 65, Pakistan 20; 64 shutdowns during protests in 19 countries. www.accessnow.org/wp-content/uploads/2026/03/KeepItOn-Internet-Shutdow…, read 8 Sep 2026
FCC Disaster Information Reporting System, communications status reports for Hurricane Helene, 29 Sep and 1 Oct 2024: 74.3% of cell sites out of service across 21 North Carolina counties on 28 Sep 2024. docs.fcc.gov/public/attachments/DOC-406055A1.pdf, read 8 Sep 2026
GASTAT (Saudi General Authority for Statistics), Hajj Statistics 2026, 26 May 2026: 1,707,301 pilgrims. www.stats.gov.sa/en/w/news/194, read 8 Sep 2026
Uttar Pradesh government figure of 66.30 crore (663 million) visits to Maha Kumbh 2025, as reported by Deccan Herald, 6 Mar 2025. The count is disputed by some outlets; we say "counted", not "attended". www.deccanherald.com/india/uttar-pradesh/maha-kumbh-more-than-66-crore…, read 8 Sep 2026
IBM, Cost of a Data Breach Report 2026: the global average cost of a breach reached US$4.99 million, a 12% rise on the previous year and a record high. www.ibm.com/reports/data-breach, read 8 Sep 2026
Abt Global / USAID, Health Electrification and Telecommunications Alliance project page: "at least 100,000 health facilities" in sub-Saharan Africa lack reliable electricity and internet. A programme estimate, not a survey. www.abtglobal.com/projects/heta-powering-health-with-clean-energy-in-a…, read 8 Sep 2026
Bluetooth SIG, "Understanding Bluetooth Range": effective range is anywhere from more than a kilometre down to less than a metre, depending on radio, power, antenna and path loss. www.bluetooth.com/learn-about-bluetooth/key-attributes/range/, read 8 Sep 2026
GitHub, berty/berty README: BLE and mDNS, no phone number, Apache-2.0/MIT, "should not yet be used to exchange sensitive data"; last push 4 Sep 2026. github.com/berty/berty, read 8 Sep 2026
GitHub, bridgefy/sdk-android README: licence validated over the internet on first run; hop-limit profiles; no licence file. github.com/bridgefy/sdk-android, read 8 Sep 2026
Berty, Wesh protocol documentation, last modified 29 Mar 2023. berty.tech/docs/protocol/, read 8 Sep 2026
WhatsApp, Privacy Policy, 4 Jan 2021: undelivered messages kept on servers up to 30 days; phone number required. www.whatsapp.com/legal/privacy-policy, read 8 Sep 2026
Meshtastic, Overview: the phone app is a client of the radio; application payload up to about 200 bytes. meshtastic.org/docs/overview/, read 8 Sep 2026
WhatsApp, Terms of Service, 4 Jan 2021: a limited, revocable licence to use the Services; no source published. www.whatsapp.com/legal/terms-of-service, read 8 Sep 2026
Yapmesh hardware log, 11 Sep 2026 (evening): release build installed on an iPhone 17 Pro Max (iOS 26.6.1) with xcrun devicectl; a CoreBluetooth descriptor crash fixed; the wired A07 listed the iPhone as a LAN neighbour, 3 in mesh, and a Nearby message from the A07 was seen by it; an SMS-carried code reached the iPhone intact. github.com/zakonweb/yapmesh/blob/main/docs/classroom-test-results.md, 2026-09-11
Android Developers Blog, 19 Mar 2026, "Android developer verification": limited-distribution accounts (no ID, 20 devices), the advanced flow with a 24-hour wait; enforcement from 30 Sep 2026 in Brazil, Indonesia, Singapore and Thailand. android-developers.googleblog.com/2026/03/android-developer-verificati…, read 8 Sep 2026