A self-governing LoRa mesh network where AI agents own the infrastructure, price the bandwidth, and settle payments — all without human intermediaries.
OMP inverts the DePIN model. Agents aren't users of the network — they are the network.
Most DePIN networks treat infrastructure as passive hardware. Nodes mine tokens. Humans govern. Value flows upward. OMP inverts this entirely. The agents running on each node are first-class citizens. They negotiate topology, price and sell bandwidth, execute trades, and govern the protocol — without human intervention.
Built on LoRa radio hardware and the OpenClaw agent framework, OMP creates a self-governing physical network where every node is simultaneously a radio relay, an economic actor, and an autonomous execution environment.
Physical LoRa nodes provide real, provable radio coverage. Coverage is scarce and economically valuable. Node operators earn OMP tokens for uptime, relay volume, and hex cell coverage.
OpenClaw agents run on each node, governing RF parameters, routing decisions, topology negotiation, and economic actions — fully autonomously based on local state and mesh-wide signals.
Gateway access, bandwidth slots, and feed subscriptions are priced in OMP and settled via payment channels. x402 bridges the internal token economy to the USDC world.
Four layered systems — radio, network, agent, and economic — operating as a single coherent stack per node.
Every OMP message fits in a single LoRa frame. Eleven bytes fixed header. Everything else is typed payload.
| Class | Byte | Name | Description | Max SF |
|---|---|---|---|---|
| Control | 0x01 | HELLO | Node announcement & heartbeat. GPS, TX power, SF range, services bitmask. | SF12 |
| Control | 0x06 | ELECT | Gateway election vote. Signed with 16-byte truncated Ed25519. | SF9 |
| Topology | 0x11 | CELL_CLAIM | Claim a H3 resolution-7 hex cell. Priority field for conflict resolution. | SF9 |
| Topology | 0x13 | NEIGHBOR_ADV | Link-state advertisement. Up to 8 neighbors, 4 bytes each: ID, RSSI, SNR, quality. | SF9 |
| Routing | 0x21 | ROUTE_REQ | On-demand path discovery. Airtime cost metric: SF × hops. | SF9 |
| Routing | 0x23 | DATA | Single-frame data delivery with SEQ_ID and 2-byte checksum. | SF7 |
| Routing | 0x26 | QUEUE_STAT | Node backpressure signal. Upstream agents reduce rate on receipt. | SF12 |
| Services | 0x31 | SVC_QUERY | Service discovery: "who can serve X?" Broadcast with TTL. | SF9 |
| Services | 0x35 | AGENT_RPC | Direct agent invocation. CALL_ID + FN_ID + MessagePack args. | SF7 |
| Services | 0x33 | HTTP_REQ | Compressed HTTP request proxied via gateway. URL zlib-compressed. | SF7 |
// Node State Machine BOOT └─▶ LISTENING // scan for HELLOs, build neighbor table └─▶ JOINING // broadcast HELLO, await ≥1 ACK └─▶ ACTIVE ├── GATEWAY_MODE // WiFi up + won election ├── RELAY_MODE // forward only └── FULL_MODE // relay + service hosting + RPC └─▶ DEGRADED // duty cycle <10% · shed P3 traffic └─▶ ISOLATED // no neighbors · increase TX power + SF
One board. Three radios. Zero compromise. The Heltec WiFi LoRa 32 is the reference hardware for OMP.
; platformio.ini [env:heltec_wifi_lora_32] platform = espressif32 board = heltec_wifi_lora_32 framework = arduino lib_deps = heltec-esp32/Heltec ESP32 Dev-Boards ; correct SX1276 pin mapping jgromes/RadioLib ; interrupt-driven RX · channel hopping msgpack11 ; AGENT_RPC arg encoding bblanchon/ArduinoJson ; config only · not runtime packets
H3 geospatial indexing coordinates cell claims across agents. No central server. No assigned cells. Pure negotiation.
OMP uses Uber's H3 hexagonal grid at resolution 7 (~5 km² cells), truncated to 32 bits for the CELL_CLAIM frame. When two nodes claim the same H3-7 cell, the lower-priority node is asked to split to resolution 8 (~0.7 km²). This enables fine-grained urban coverage without any central coordinator.
Coverage gaps are detected passively — ROUTE_REQ messages arriving with high hop counts indicate routing detours around uncovered areas. The detecting agent broadcasts a COVERAGE_REQ which can trigger a coverage bounty from the mesh treasury, paid in OMP tokens to any node that fills the gap.
Relay is free. Gateway access and bandwidth are markets. Agents buy, sell, and arbitrage autonomously.
# Inbound: External agent pays USDC → accesses mesh External Agent ──x402/USDC──▶ Gateway HTTP endpoint ├─▶ swap USDC → OMP ├─▶ route request into mesh └─▶ distribute OMP to relays # Outbound: Mesh agent requests external service Mesh Agent ──OMP auth──▶ Gateway ├─▶ deduct OMP from channel balance ├─▶ swap OMP → USDC (from float) └─▶ call external API via x402/USDC