Package-level declarations
Types
Receiver type for AdminApi.batch — combines AdminEdit setters with getter helpers.
Receiver type for AdminApi.editSettings — exposes the subset of admin writes that may be batched inside a begin_edit_settings / commit_edit_settings envelope.
Result of an admin (configuration) RPC operation.
Exception hierarchy thrown by getOrThrow.
Curated battery health and state information reported by the device.
Channel validation and helper utilities.
Type-safe wrapper for channel indices.
Static helpers for encoding and parsing Meshtastic channel URLs (https://meshtastic.org/e/#...).
Aggregate of configuration and device metadata received during the handshake.
Handshake phase for progress reporting.
Discrete congestion buckets derived from channel-utilization telemetry.
Represents the current mesh congestion level based on channel utilization metrics.
How the local node reached a remote node.
Lifecycle of the SDK's connection to a device.
Firmware capability flags derived from a device's reported firmware version.
Device storage backend.
Parsed firmware version value used for capability comparisons.
Which flow type dropped messages.
Describes which category of device configuration was changed externally.
Key-verification prompt details surfaced via MeshEvent.KeyVerification.
High-level, consumer-friendly representation of a mesh node.
DSL marker for the SendBuilder outbound-packet builder. Restricts implicit-receiver scoping so that nested DSLs do not accidentally capture builder methods from an outer scope.
Sealed hierarchy of Meshtastic SDK exceptions.
Incremental mesh topology graph built from NeighborInfo reports.
Tracks the lifecycle of a packet enqueued via RadioClient.send.
Parsed neighbor information for a node, representing its directly-reachable peers.
A delta notification of node state changes.
Strategy for redacting sensitive payload data in protocol logs.
Geographic utility functions for mesh node positions.
The main entry point to the Meshtastic SDK.
Physical layer metrics for a received packet.
Interface that transports (BLE, TCP, serial, etc.) must implement.
Defines a retry strategy for failed message sends.
Mesh route discovery and neighbor enumeration RPCs.
Builder for an outbound MeshPacket. Created by RadioClient.send (DSL form).
Reason a packet could not be delivered.
Outcome of awaiting a MessageHandle.
Lifecycle state of a packet sent via RadioClient.send.
Persisted session passkey.
Utilities for encoding and parsing Meshtastic shared contact URLs.
Signal quality tier derived from SNR thresholds.
Storage provider factory.
API for interacting with Store-and-Forward (S&F) nodes on the mesh.
Events specific to Store-and-Forward operations.
Telemetry RPCs and observation.
A type-safe wrapper for the different categories of telemetry data reported by the mesh.
Deterministic identity for a transport configuration.
Specification of which radio to connect to and how.
State of the transport connection.
Single source of truth for the Meshtastic STREAM_API wire-framing constants shared by every stream-oriented transport (TCP, USB-CDC serial, BLE).
Properties
Returns the ConnectionQuality for this node based on hop count and MQTT flag.
Maximum application-layer payload length (bytes).
Default threshold for determining whether a node is "online."
The default Pre-Shared Key (AES-128) used for the Meshtastic primary channel.
Returns a human-friendly display name for this HardwareModel (e.g., "T-Beam").
Returns true if this is NodeId.BROADCAST.
Whether a connection attempt is actively in progress.
Returns true if this is AdminResult.Success.
Whether the connection is fully established and ready for use.
A typed flow of NeighborInfo domain objects, decoded from inbound NEIGHBORINFO_APP packets.
Filters RadioClient.packets to only neighbor-info packets — those with decoded.portnum == [PortNum.NEIGHBORINFO_APP].
Returns the SignalQuality tier for this node based on SNR.
Human-readable status description.
Filters RadioClient.packets to only text-message packets — those with decoded.portnum == [PortNum.TEXT_MESSAGE_APP].
Functions
Human-readable, action-hinting message for a wire-level Routing.Error. Suitable for direct surfacing in logs, snackbars, or developer tools without further translation.
Decodes the payload as AdminMessage if MeshPacket.decoded.portnum matches PortNum.ADMIN_APP.
Decodes the payload as ProtoNeighborInfo if MeshPacket.decoded.portnum matches PortNum.NEIGHBORINFO_APP.
Decodes the payload as NodeInfo if MeshPacket.decoded.portnum matches PortNum.NODEINFO_APP.
Decodes the payload as User if MeshPacket.decoded.portnum matches PortNum.NODEINFO_APP.
Fold a NodeChange delta stream into a live node map.
Decodes the payload as Position if MeshPacket.decoded.portnum matches PortNum.POSITION_APP.
Decodes the payload as Telemetry if MeshPacket.decoded.portnum matches PortNum.TELEMETRY_APP.
Decodes the payload as RouteDiscovery if MeshPacket.decoded.portnum matches PortNum.TRACEROUTE_APP.
Decodes the payload as Waypoint if MeshPacket.decoded.portnum matches PortNum.WAYPOINT_APP.
Suspend until the device finishes streaming its NodeDB during handshake, then return the current node-snapshot map.
Computes the DJB2 hash of a channel name. Used by some clients for channel identification separate from the on-wire XOR hash.
Connect and suspend until the handshake settles, returning the resolved ConfigBundle (HLP-34).
Converts a 32-bit unsigned firmware timestamp (seconds since epoch) to an SDK Instant. Returns null if the timestamp is 0 (the firmware's "never/unset" sentinel).
Returns the Success value or throws AdminResultException describing the failure.
Plain-language message for any SendFailure. Never empty.
The live node map for this client: RadioClient.nodes folded via asNodeMap.
Performs action if this is not a Success. Returns the original result for chaining.
Performs action if this is a Success. Returns the original result for chaining.
Build a RadioClient with Kotlin builder-lambda syntax — sugar over RadioClient.Builder:
Returns a human-friendly relative time string (e.g., "5m ago", "2h ago").
Returns a relative time string, or "never" if the instant is null.
Request the current Position from node from.
Re-enqueue the same packet that produced this MessageHandle. The engine assigns a fresh MessageId and returns a new handle, leaving the original handle's terminal state unchanged.
Awaits the outcome of this MessageHandle, retrying according to policy if the send fails with a retryable failure.
DSL form of RadioClient.send. Builds a MeshPacket via SendBuilder and enqueues it.
Send a PKI-encrypted unicast text message to to.
Send a Position payload to to (defaults to broadcast).
Convenience: build and send a ModuleConfig.AmbientLightingConfig in a single call.
Convenience: build and send a ModuleConfig.AudioConfig in a single call.
Convenience: build and send a Config.BluetoothConfig in a single call.
Convenience: build and send a ModuleConfig.CannedMessageConfig in a single call.
Convenience: build and send a ModuleConfig.DetectionSensorConfig in a single call.
Convenience: build and send a Config.DeviceConfig in a single call.
Convenience: build and send a Config.DisplayConfig in a single call.
Convenience: build and send a ModuleConfig.ExternalNotificationConfig in a single call.
Convenience: build and send a Config.LoRaConfig in a single call.
Convenience: build and send a ModuleConfig.MQTTConfig in a single call.
Convenience: build and send a ModuleConfig.NeighborInfoConfig in a single call.
Convenience: build and send a Config.NetworkConfig in a single call.
Convenience: build and send a ModuleConfig.PaxcounterConfig in a single call.
Convenience: build and send a Config.PositionConfig in a single call.
Convenience: build and send a Config.PowerConfig in a single call.
Convenience: build and send a ModuleConfig.RangeTestConfig in a single call.
Convenience: build and send a ModuleConfig.RemoteHardwareConfig in a single call.
Convenience: build and send a Config.SecurityConfig in a single call.
Convenience: build and send a ModuleConfig.SerialConfig in a single call.
Convenience: build and send a ModuleConfig.StatusMessageConfig in a single call.
Convenience: build and send a ModuleConfig.StoreForwardConfig in a single call.
Convenience: build and send a ModuleConfig.TelemetryConfig in a single call.
Convenience: build and send a ModuleConfig.TrafficManagementConfig in a single call.
Returns a signal quality estimate from 1 (poor) to 5 (excellent) based on SNR.
Tag categorising the recommended remediation for a Routing.Error. Returns null when no error was reported (NONE).
Converts protobuf DeviceMetrics into a normalized BatteryStatus snapshot.
Converts protobuf Telemetry to BatteryStatus by inspecting its DeviceMetrics.
Encode this FromRadio envelope to its wire byte representation.
Encode this MeshPacket to its wire byte representation.
Encode this ToRadio envelope to its wire byte representation.
Returns the Meshtastic default ID format: "!aabbccdd" (lowercase hex with ! prefix).
Converts an SDK Instant to a 32-bit unsigned firmware timestamp.
Decode a FromRadio envelope from raw wire bytes. Returns null on parse failure.
Creates a MeshNode snapshot from this NodeInfo at the given time.
Extracts RadioMetrics from a MeshPacket. Returns null if metrics are missing.
Maps a protobuf Telemetry packet to its corresponding type-safe TelemetryReading.
Run block against a connected session, guaranteeing teardown.