Skip to content

Bitcoin accepted at checkout  |  Ships from Montreal, QC, Canada  |  Expert support since 2016

Meshtastic PortNum Registry: Application Port Numbers & Packet Types

Quick answer

What is a Meshtastic PortNum?

The on-air application registry for Meshtastic, sourced verbatim from meshtastic/protobufs → portnums.proto (as of 2026-07-21). Behaviour that is not in the .proto (per-port ACK semantics, MQTT bridging rules) is intentionally left to the firmware docs rather than guessed here; MQTT relevance is noted only where the .proto states it.

DecHexPortNumRangePayload / purpose
0 0x0 UNKNOWN_APP Sentinel A packet from outside the mesh, in a form the mesh does not understand.
1 0x1 TEXT_MESSAGE_APP Core (built-in, 0-63) Plain UTF-8 text messaging — the default chat payload.
2 0x2 REMOTE_HARDWARE_APP Core (built-in, 0-63) Built-in GPIO / remote hardware control example app.
3 0x3 POSITION_APP Core (built-in, 0-63) Position updates via the Position protobuf.
4 0x4 NODEINFO_APP Core (built-in, 0-63) Node/user identity via the User protobuf.
5 0x5 ROUTING_APP Core (built-in, 0-63) Protocol control (acks, routing errors) via the Routing protobuf.
6 0x6 ADMIN_APP Core (built-in, 0-63) Remote administration via the AdminMessage protobuf.
7 0x7 TEXT_MESSAGE_COMPRESSED_APP Core (built-in, 0-63) TEXT_MESSAGE payloads compressed with Unishox2.
8 0x8 WAYPOINT_APP Core (built-in, 0-63) Shared map waypoints via the Waypoint protobuf.
9 0x9 AUDIO_APP Core (built-in, 0-63) Encapsulated Codec2 voice packets (2.4 GHz-class bandwidth).
10 0xA DETECTION_SENSOR_APP Core (built-in, 0-63) Text messages emitted by detection-sensor modules.
11 0xB ALERT_APP Core (built-in, 0-63) Text format for critical alerts (bypasses normal notification muting).
12 0xC KEY_VERIFICATION_APP Core (built-in, 0-63) Handles public-key verification requests between nodes.
13 0xD REMOTE_SHELL_APP Core (built-in, 0-63) Primitive remote shell access.
32 0x20 REPLY_APP Core (built-in, 0-63) A "ping" service that echoes any packet it receives.
33 0x21 IP_TUNNEL_APP Core (built-in, 0-63) Experimental IP-over-mesh tunnel (Python).
34 0x22 PAXCOUNTER_APP Core (built-in, 0-63) Paxcounter (people-counting) payloads.
35 0x23 STORE_FORWARD_PLUSPLUS_APP Core (built-in, 0-63) Git-style message-chain store-forward for Linux-native nodes.
36 0x24 NODE_STATUS_APP Core (built-in, 0-63) A short status string broadcast periodically by a node.
37 0x25 MESH_BEACON_APP Core (built-in, 0-63) Beacon-mode broadcast advertising text + channel/preset offers.
64 0x40 SERIAL_APP Module (registered, 64-127) Bridges a hardware serial (RX/TX) interface onto the mesh.
65 0x41 STORE_FORWARD_APP Module (registered, 64-127) Store-and-forward message persistence.
66 0x42 RANGE_TEST_APP Module (registered, 64-127) Range-testing module (distance/packet-loss measurement).
67 0x43 TELEMETRY_APP Module (registered, 64-127) Device / environment / power telemetry framework.
68 0x44 ZPS_APP Module (registered, 64-127) Experimental GPS-less position estimation.
69 0x45 SIMULATOR_APP Module (registered, 64-127) Linux LoRa-simulator application.
70 0x46 TRACEROUTE_APP Module (registered, 64-127) Traceroute — reveals the hop path a packet takes.
71 0x47 NEIGHBORINFO_APP Module (registered, 64-127) Aggregated info about a node's direct neighbours (network edges).
72 0x48 ATAK_PLUGIN Module (registered, 64-127) Official Meshtastic ATAK (Android Team Awareness Kit) plugin.
73 0x49 MAP_REPORT_APP Module (registered, 64-127) Unencrypted node info for public map apps — sent over MQTT.
74 0x4A POWERSTRESS_APP Module (registered, 64-127) Automated power-testing / stress module.
75 0x4B LORAWAN_BRIDGE Module (registered, 64-127) Transports LoRaWAN payloads with RF metadata.
76 0x4C RETICULUM_TUNNEL_APP Module (registered, 64-127) Tunnel interface for the Reticulum Network Stack.
77 0x4D CAYENNE_APP Module (registered, 64-127) Cayenne Low Power Payload (LPP) telemetry transport.
78 0x4E ATAK_PLUGIN_V2 Module (registered, 64-127) ATAK plugin v2 (TAKPacketV2 + zstd compression).
79 0x4F LORA_OTA_APP Module (registered, 64-127) Signed firmware updates over LoRa (OTA).
112 0x70 GROUPALARM_APP Module (registered, 64-127) GroupAlarm alert-message integration transport.
256 0x100 PRIVATE_APP Private / custom (256-511) Reserved for private app development without rebuilding protobufs.
257 0x101 ATAK_FORWARDER Private / custom (256-511) ATAK forwarder module (libcotshrink).
511 0x1FF MAX Range limit Upper bound of the PortNum allocation space (not an app).

How the ranges work

  • 0-63 — core: built into every Meshtastic firmware (text, position, nodeinfo, routing, admin, telemetry lives just above at 67).
  • 64-127 — modules: optional registered modules (serial, store-and-forward, range test, traceroute, ATAK, map report, LoRaWAN bridge, OTA).
  • 256-511 — private/custom: use PRIVATE_APP (256) and above for your own applications; they will never clash with an official port.

Related

MeshPacket & Data field reference (the packet envelope that carries this portnum) · Meshtastic encryption & PSK model · device comparison · LoRa regional settings · Nostr event-kinds reference (the Nostr analogue of this page) · range calculator.

Credit: the PortNum enum is defined and maintained by the Meshtastic project in meshtastic/protobufs (GPL-3.0). This page is a dated, human-readable index of that file.