Mesh Services

Create and share lightweight services directly on the mesh network. Publish polls, weather reports, checklists, trail updates, and more — nearby peers discover and interact automatically. No internet required.

10
Templates
72h
Max TTL
50
Max Services
0
Internet Required
<1s
Publish Time

categoryService Templates

Choose from 10 built-in templates. Each defines the fields, actions, and TTL bounds for a specific use case.

dashboard

Bulletin Board

60 min default · 24 hr max

Share posts with nearby users. A public message board for your local mesh community.

cell_tower

Signal Beacon

15 min default · 30 min max

Ephemeral status broadcasts: SOS, All Clear, Hazard, Weather Alert, Meeting Point, Camp, Water Source, Trail Marker.

poll

Quick Poll

60 min default · 24 hr max

Ask a question with multiple options. Peers vote in real-time. One vote per peer, live tallies.

checklist

Shared Checklist

120 min default · 24 hr max

Collaborative checklists that peers can check off. Great for group trip planning or supply tracking.

list_alt

Resource List

120 min default · 24 hr max

Share inventory or resource availability. Let peers know what\'s available at your location.

cloud

Weather Station

24 hr default · 72 hr max

Publish temperature, humidity, and pressure readings. Long-lived sensor data for nearby hikers.

speed

Sensor Node

24 hr default · 72 hr max

Generic sensor readings with two data channels, status indicator, and timestamps.

view_kanban

Task Board

120 min default · 24 hr max

Kanban-style task management shared across the mesh. Track tasks, in-progress counts, completions.

terrain

Trail Conditions

4 hr default · 24 hr max

Report trail status: Clear, Muddy, Snowy, Flooded, Blocked, or Hazardous. Keep fellow hikers informed.

search

Lost & Found

24 hr default · 72 hr max

Track lost and found items with status updates (Lost, Found, Claimed). Help reunite gear with owners.

rocket_launchCreating a Service

A guided wizard walks you through three steps. No protocol knowledge required.

1

What

Choose your service template from the catalog. Each template defines the fields, actions, and default TTL for your service.

2

Who

Select your audience. Services are currently public to all nearby mesh users.

3

Review & Publish

Confirm your choices, fill in the details (title, description, poll options, items), set your TTL, and publish. Your service is live on the mesh instantly.

Template-specific fields: Polls require at least 2 options (max 6). Checklists and task boards require at least 1 item (max 10). Weather stations and sensor nodes have pre-defined data channels. All templates enforce title and description length limits.

tuneManaging Your Services

The My Services screen shows all your published services with real-time status.

check_circle

Active

Currently running

Services that are running and being advertised to nearby peers. Shows accurate remaining time, updated in real-time.

timer_off

Expired

TTL reached

Services that reached their TTL and expired naturally. No longer advertised or accepting interactions. Can be deleted.

stop_circle

Stopped

Manually stopped

Services you stopped before their TTL expired. Immediately stops advertising. Peers cached entries age out within 1 hour.

exploreDiscovery & Interaction

Nearby peers discover your services automatically through the mesh network.

broadcast_on_personal

Automatic Advertising

Your services are periodically broadcast on the mesh via SERVICE_ADVERT frames. An immediate broadcast fires on publish; periodic broadcasts continue throughout the TTL.

travel_explore

Mesh Explorer

Peer services appear in Mesh Explorer, grouped by type. See what services are available nearby and how many peers are offering each type.

sync_alt

Real-time Delivery

Interactions use MRRP request-response with live delivery tracking. See the delivery phase in real-time: preparing, sending, delivered, or failed.

hourglass_topHow TTL Works

Every service has a Time-to-Live (TTL) that controls how long it stays active. TTL is absolute and clock-based — it never pauses, resets, or extends.

Template Bounds

Each template defines a default and maximum TTL. You choose within these bounds during creation. A poll defaults to 60 minutes; a weather station to 24 hours.

Absolute Timestamp

When you publish, the app computes expiresAt = now + TTL. This absolute timestamp is stored in the database. App restarts, sleep mode, and device reboots don't affect it.

Real-time Countdown

Remaining time is calculated fresh every time. Late-joining peers see accurate time left, not the original TTL. A peer joining 20 minutes into a 60-minute service sees "40 min remaining".

descriptionReal-World Scenarios

What happens in common (and edge-case) situations:

play_arrowPublish & Discover

You publish a 60-minute trail report. Nearby peers see it immediately via an instant broadcast. The service appears in their Mesh Explorer. They can tap to view details and interact.

person_addLate Joiner

A peer powers on 20 minutes after you published. They receive your next periodic advertisement and see "40 min remaining" — always accurate, never stale.

stopEarly Stop

You stop your service manually before the TTL expires. It immediately stops appearing in your advertisements. Peers' cached entries age out within 1 hour.

timer_offExpiry During Interaction

If your service expires while a peer is mid-interaction, their request will get an error response. There is no grace period — the TTL boundary is absolute.

signal_wifi_offMesh Partition

If no routing path exists between you and a peer, they won't discover your service. Periodic re-advertisements improve chances if the partition heals.

restart_altApp Restart

Your service survives app restarts. The expiry timestamp is absolute (stored in SQLite), so a 60-minute service created at 2:00 PM expires at 3:00 PM regardless of app lifecycle.

stacked_bar_chartMultiple Services

You can run multiple services simultaneously. Each has independent TTL. All active services are bundled into a single advertisement frame (max 8 per broadcast).

speedCongested Mesh

If the airtime budget is exhausted by other traffic, your advertisement may be delayed — but the service exists locally immediately. Ads resume when budget refills.

infoBehaviour & Limits

shieldPrivacy & Security

Local by design. All service data is stored on your device only. Service advertisements are broadcast over the mesh radio — they are visible to any Socialmesh user within radio range. Do not publish sensitive or private information in service titles, descriptions, or content. There is no encryption layer for service data beyond the standard Meshtastic channel PSK.
No tracking. Mesh services do not use any analytics, telemetry, or cloud services. Your published services, votes, and interactions stay between you and nearby mesh peers. Nothing leaves the local radio network.

codeTechnical Details

Mesh Services are built on the MRRP (Mesh Request-Response Protocol) which rides inside SIP (Socialmesh Interaction Protocol) frames over the Meshtastic LoRa transport. The wire format is binary and compact to fit within the 237-byte LoRa MTU.

dns

MRRP Service ID: 0x10

All user-created services share a single MRRP service ID (0x00000010). The handler demultiplexes by instance ID and action code.

hub

4 Actions

listInstances (0x0001), getInstance (0x0002), interact (0x0003), getSchema (0x0004). All are request-response pairs over MRRP.

memory

195-byte Payload

MRRP frames carry up to 195 bytes of payload (237B LoRa MTU minus SIP and MRRP headers). Schemas and responses are encoded in compact binary.

Read the full protocol spec →