ToolsEdits

    MeshLink

    How MeshLink works

    Messages can be forwarded through participating peers. Every hop is a real browser-to-browser WebRTC connection.

    The path of a message

    Phone A
       ↓  WebRTC
    Phone B  (relay — cannot read it)
       ↓  WebRTC
    Phone C

    1. Pairing with QR codes

    WebRTC normally needs a server to introduce two devices. MeshLink puts that introduction (the SDP offer and answer, with each phone's local network address) into QR codes instead. That is why it works with the internet off.

    2. Encryption before sending

    The sender encrypts the text with a key derived from its private key and the recipient's public key. The packet carries only ciphertext plus routing fields: packet ID, source, destination, TTL and hop count.

    3. Routing

    A phone that is not the destination lowers the TTL by one and forwards the packet. If it knows which neighbour leads to the destination it sends it there; otherwise it sends to every neighbour. Duplicate packet IDs are dropped.

    4. Delivery and receipts

    The destination decrypts the message and sends back a delivery receipt along the mesh. Every phone that sees the receipt deletes its stored copy.

    What MeshLink cannot do

    • It cannot control Bluetooth, Wi-Fi Direct or any radio hardware — browsers do not expose that.
    • It cannot link two phones 10 km apart with nothing in between. Each connection has the range of the Wi-Fi or hotspot both phones use.
    • It cannot load for the first time with no internet. Open it once online so the app is saved on your phone.
    • Mobile browsers pause pages in the background, so keep MeshLink open on screen while relaying.