How Meshtastic Channels Work
Meshtastic uses a channel system for message segmentation and encryption. Each node can have up to 8 channels simultaneously, each with its own name and (optionally) its own encryption key. Channel encryption uses AES-256-CTR keyed by the channel PSK; a channel can also have no key, in which case its traffic is unencrypted. See the PSK reference for key details.
Channel Structure
- Up to 8 channels per node, indexed 0 through 7
- Channel 0 is special - it is the primary channel (only one channel can be primary; channels 1-7 are secondary). Position updates and telemetry are broadcast on channel 0 by default.
- Each channel has:
- A name (displayed in the app)
- A pre-shared key (PSK) - the encryption key for that channel (a channel may also have no key, making it unencrypted)
- Optional uplink/downlink MQTT settings for internet bridging
The Default Public Channel
Out of the box, Meshtastic nodes are configured with:
- Channel name: LongFast (note: "LongFast" is really the name of the default modem preset; the firmware uses it as the default channel name too, but the preset and the channel name are distinct concepts)
- PSK:
AQ==- this is the single byte0x01(base64AQ==), which is firmware shorthand meaning "use the built-in default key." It is not itself the full key; it is an index that selects the publicly-known default key. Because that key is public, the default channel offers no privacy.
Any node using the default LongFast channel can communicate with any other node using the same channel - the encryption provides no privacy since the key is public. This is intentional: it allows strangers to discover and communicate across the mesh.
Channel URL Scheme
https://meshtastic.org/e/#CgUYAyIBAQ==
The hash after # is a base64-encoded channel configuration. To encode or decode channel configurations, use the tool at https://meshtastic.org/e/.
Sharing a channel URL (or its QR code) is the standard way to invite someone to a private channel - they scan or paste the URL and their node is automatically configured with the correct name and PSK. Important: the channel URL/QR contains the PSK in cleartext (base64) - the URL effectively is the key. Anyone who sees it can join (and decrypt) the channel. Share a private channel's URL only over a secure out-of-band path (in person, or an encrypted messenger such as Signal); never post a private channel URL in chat, email, a forum, or anywhere public.
MQTT Uplink and Downlink
Each channel can be individually configured to bridge traffic to/from an MQTT broker:
meshtastic --ch-index 0 --ch-set uplink_enabled true
meshtastic --ch-index 0 --ch-set downlink_enabled true
When uplink is enabled on a channel, packets on that channel are published to the MQTT broker. Downlink delivers MQTT messages back to the mesh. This is the basis of Meshtastic internet bridging and long-distance message delivery via the MQTT network. (Caution: enabling downlink on the default public channel lets anyone on the public broker inject messages into your local RF mesh - only enable downlink on channels you control and intend to bridge.)
Admin Channel
A designated private admin channel allows remote configuration of any node that shares the admin channel's PSK. Note: this shared-PSK admin channel is a legacy method; firmware 2.5+ uses public-key (PKC) remote administration - admin keys based on each node's X25519 public key - instead of a shared admin-channel PSK, and that is the preferred approach on modern firmware.
- Create a channel with a unique name (e.g.,
admin) and a strong, randomly generated PSK - Configure it as the admin channel on all nodes you want to remotely manage
- From any node with the admin channel, you can send configuration commands to remote nodes over the mesh - no physical access required
This is essential for maintaining remote or hard-to-reach infrastructure nodes.
No comments to display
No comments to display