Lattice Lattice

Frequently asked questions.

Real questions, plain answers. No legalese, no "we may collect at our discretion."


What is Lattice for?

Sending messages between phones when the internet doesn't work. Government shutdowns, regional outages, festival crowds with the towers maxed out, the days after a disaster. Most days you'll keep using whatever messenger you already have. Lattice sits in the background until one of those days arrives.

What does Lattice do that WhatsApp doesn't?

It works without an internet connection, without an account, without a phone number, and without any company server in the middle. That's the whole of it. WhatsApp is faster and has billions of users, and I'm not trying to replace it.

Why is the battery worse than WhatsApp?

Because Lattice has to scan for nearby phones itself. WhatsApp gets a push from a server when there's a message waiting. There's no server here, so your phone does the looking. I keep the cost down with adaptive scan rates and dormancy modes (WP-03): typical foreground use is 2% an hour, background is 4–8% a day, dormant is under 1% a day. It's never going to be as cheap as a server-pushed messenger, and I'm not going to pretend otherwise.

Can the government read my messages?

Not in transit. End-to-end encryption with hybrid classical and post-quantum cryptography means even someone recording every byte of your traffic can't read it. If they take your phone while it's unlocked then yes, they can read whatever's on the screen, same as with any messenger. If they take it locked and force you to unlock it under duress, the duress-PIN feature wipes the device instead. Full threat model.

What happens if I lose my phone?

Your Lattice identity is a 12-word phrase, generated once on your phone. If you wrote it down, you can restore on a new one. You'll have to ask your contacts to re-add you, but your identity exists again. If you didn't write it down, it's gone and you start over. I can't help you recover it, because I don't have a copy. Nobody has a copy. That's the point.

Does Lattice work everywhere?

No. It depends on how many people nearby are running it. If you're the only Lattice user for ten kilometres, the mesh has nothing to mesh with. The range is real too: Bluetooth is roughly 30 metres, Wi-Fi Aware roughly 200. Lattice gets longer reach by hopping between phones, so the more nearby users, the further your message travels. Why physics says so.

Does Lattice need internet?

No, not for the bearers that matter most. Bluetooth, Wi-Fi Aware, and LoRa are all phone-to-phone (or phone-to-dongle-to-phone) and never touch the internet. The one bearer that does is the optional Tor one, which gives two Lattice users in different cities a way to reach each other when they both happen to have a connection but no shared messenger. The cryptography is identical on every bearer, so a Tor message trusts the network in the middle no more than a Bluetooth one does. Full bearer breakdown.

Do messages arrive multiple times if they go through multiple bearers?

No. Lattice fires every message down every viable radio at once and the receiver dedupes. Each message has a deterministic bundle id, a SHA-256 of the peer, direction, sent-at timestamp, and message body, computed the same way on both sides. Your phone's vault has a uniqueness constraint on that bundle id, so duplicate copies arriving over different bearers silently drop. You see the message once, however many radios it took to get there.

How does Lattice bridge between incompatible radios?

Different mesh firmwares, Meshtastic and others, can't talk to each other at the radio layer. They're incompatible by design and Lattice doesn't pretend otherwise. But Lattice rides as payload on top of whichever bearers a phone has, separately. So if Carol's phone has two bearers attached at once, it bridges them for Lattice traffic with nobody configuring anything. Alice sends a message that reaches Carol on one bearer, and Carol's phone re-broadcasts it on the other because Bob is reachable there. The two firmwares never speak to each other. Carol's phone is the bridge, and the bridging costs nothing. The same goes for anyone with a LoRa dongle plus a Bluetooth radio: they bridge LoRa range to BLE range without setting anything up. Multi-bearer architecture.

Why don't I have notifications when the app is closed?

iOS, specifically. Apple limits what a backgrounded app can do. It won't let Lattice run a long-lived radio scanner indefinitely while you're not actively using it, because that would drain the battery. Lattice uses every legitimate hook it can (BLE state preservation, background fetch) but can't promise the reliability of a server-pushed messenger. Android has fewer restrictions and gets much closer to 100%. It's all documented so you're not caught out.

Is Lattice tracking me?

No. Zero telemetry, no analytics, no crash reports that leave your phone. There's no server to send data to even if I wanted one. The source opens under MPL 2.0 at v1.0 so you can check this yourself. Until then the signed binary is what's installed, and it talks to no servers.

Can my conversations be subpoenaed?

There's no Lattice company server holding your messages. If a court served me a subpoena tomorrow, the only answer I could give is that there's nothing to hand over. Your messages live on your phone and on the phones of the people you wrote to. Subpoena them.

What if Lattice the developer disappears?

The app keeps working. The protocol is laid out in the white papers and specifications. The source opens under MPL 2.0 at v1.0, after which anyone can fork it, compile it, and keep it going. Your contacts and your identity live on your phone, so losing the developer doesn't lose your data.

What's the difference between Lattice and Signal?

Signal needs the internet and Lattice doesn't. Signal has voice calls and a billion users and Lattice has neither. Use Signal for daily messaging. Use Lattice for the day Signal stops working. They sit alongside each other.

Why not just use SMS in an emergency?

SMS goes through the cell tower. If the tower is down, if the network is congested, if the government has switched the cell network off, or if the recipient is overseas without roaming, SMS doesn't work either. Lattice still does, because it's phone-to-phone direct.

Who's behind Lattice?

One independent developer, named publicly when v1.0 ships. The project goes open source (MPL-2.0) when the source opens at v1.0. I don't take money from advertisers and I don't sell data, because I don't have any. I might eventually take grant funding from the sort of organisations that fund this work (Open Tech Fund, Sovereign Tech Fund, Mozilla). I won't run ads, charge a subscription, or bolt on a "Lattice Pro" tier. If you'd like to help, drop a note in the Matrix room.

Is there a cost?

No. The app is free, the source is free, there's no premium tier and no plan to add one.

Have you been audited?

A pre-v1.0 audit is being commissioned with one of Trail of Bits, Cure53, or Latacora. The reports will be published in full once any unfixed critical issues are fixed.

I have a security concern. Who do I email?

The Matrix room, encrypted to the published PGP key. Disclosure policy.

What's the deal with Lattice Invites?

It's how you add someone you can't meet in person. You generate a one-time link, send it over WhatsApp or SMS or email, then call them and compare four words on each of your screens. The four words are the safety check, and they catch any tampering with the link in transit. Full mechanic in WP-02.

Why do I have to do a "monthly check-in"?

Because the worst possible time to find out your Lattice line to your mum is broken is the day you actually need it. Once a month is just often enough to keep the line warm. Five seconds, one tap. Optional, but worth doing.