MeshCore App: Messaging and Contacts
Sending Messages
Public Channel Messages
Messages sent to the "Public" channel are received by all nodes on the network that share your channel key. For the standard community network using the USA/Canada preset, all nodes on the public channel will see your message.
Public-channel messages are encrypted with a publicly known channel key, so they are readable by anyone running MeshCore on the public channel - including passive observers who load the well-known key. Treat public-channel traffic as effectively unencrypted: do not send anything sensitive on it. Only a private channel with a secret key you control actually restricts who can read your messages.
Direct Messages
Tap a specific contact in the Contacts tab to open a direct message thread. Direct messages are end-to-end encrypted to the recipient's public key using a shared secret derived from each node's keys (ECDH key exchange), so intermediate repeaters relay but cannot read them. In normal use only you and the recipient can read them - this assumes you have the recipient's correct key. Note that keys are static (no forward secrecy), and a compromised device exposes that node's messages. Requirements:
- The recipient must have been discovered by your node (appeared in Contacts at some point)
- Their public encryption key must be cached in your node's contact database
- Your message will be routed via whatever path is available to reach them
Message Delivery Confirmation
MeshCore provides delivery status for direct messages:
- Sending - Message has been transmitted locally
- Delivered - The destination node has acknowledged receipt
- Failed - No acknowledgment received within timeout. The node may be offline or out of route.
Delivery status reflects whether an acknowledgement was received, not certainty of delivery. A lost ACK on the return path can show Failed even when the message actually arrived. Do not treat delivery status as authoritative for life-safety messages - confirm critical traffic out-of-band.
Public channel messages do not provide individual delivery confirmations (they're broadcast, not unicast).
Contact Management
Contacts Discovered Automatically
Contacts appear automatically when their advertisements reach your node. You don't need to "add" contacts manually - the mesh is self-discovering.
Contact Information
Tap any contact to see:
- Full node details: name and hardware/node type (firmware version is not carried in the advertisement that discovers a contact - it requires a separate stats/query request to that node)
- Signal information: last RSSI and SNR readings
- Location: GPS coordinates and bearing/distance from your position
- Battery level (if the node reports it)
- Direct Message button to start an encrypted conversation
Contact Expiry
Contacts that haven't been heard from in an extended period are marked as "stale" or may be removed from the active contacts list. They reappear when a new advertisement is received from that node.
Message History and Store-and-Forward
When connected to a room server, you can request message history - public channel messages sent while you were offline. Tap the "Request History" option in the Public channel conversation. The room server will replay stored messages to your node.
Direct messages sent while you were offline may be stored if your network operator has enabled store-and-forward on your network.
No comments to display
No comments to display