Two battery-powered Heltec V4 LoRa boards on a desk, their OLED screens reading 'Verse — Verified, Message #28' and 'Delivered' after exchanging a signed message.

Aug 2026

The smallest node still can't lie to you

Two radios on a desk, no internet between them, and one screen says Verified. That word costs a signature.

Here are two Heltec V4 boards — an ESP32 and a LoRa chip, the kind of radio that costs about as much as a nice dinner and runs off a battery pack. There is no Wi-Fi between them, no cell tower, no server anywhere in the picture. One of them just sent the other a message, and the receiving screen says Verified. The whole point of this post is what that one word is allowed to mean.

The obvious tool for this hardware is Meshtastic, and it is genuinely good at what it does: relay text over kilometers of raw LoRa with no infrastructure. But ask it the question that actually matters off-grid — did this message really come from who it claims, and did it arrive unaltered? — and the honest answer is that it mostly can't tell you. A shared channel key is a group password, not an identity; it says a member of the group sent something, not which member, and a message relayed through three hops has no way to prove it wasn't changed on the way. For a group chat that's fine. For anything you'd act on, it's a hole.

So we didn't build a better chat radio. We put the network's actual spine on the small device. The firmware carries a persistent Ed25519 identity, signs every frame, and content-addresses payloads by BLAKE3 — the same key-is-the-address and hash-is-the-truth that the datacenter nodes run, in the same 51-byte fragment format as verse-core::wire. The board isn't a dumb sensor phoning home to the "real" network. It is a node. A very small one, speaking the real wire at the size it can afford.

That's what earns the word on the screen. Verified means the frame's signature checked against the sender's public key and BLAKE3 of the received bytes matched the content id the sender committed to — recomputed on the ESP32 itself, with nothing asked of anyone. Try the imposter test: transmit a frame claiming to be the other node's identity. It reaches the antenna like any other packet, the signature fails, and the screen simply never lights Verified. A lie doesn't get voted down or reported to a server. It just fails to reproduce, on a radio, in a field, with the internet switched off.

Delivered is the same idea pointed the other way: a CID-bound ACK, so the sender learns the receiver got exactly those bytes, not merely "something." Drop a fragment and the receiver NACKs only the piece it's missing and nothing else — every transmitter budgets its own airtime to the legal 10%, computed from the radio's time-on-air, so recovery stays inside the rules instead of stepping on the band.

Now the part that would be slop to leave out. This is not us beating Meshtastic at range or throughput — that would be a lie of a different kind. LoRa here moves about fifty bytes a fragment at SF10; a single signature spans a few of them; voice and video are physically dead on this link and always will be. And this board does not run the whole of Verse — deterministic WASM compute and a QUIC node still live behind a gateway. What ships on the ESP32 is the identity-and-messaging prefix: the part that fits, running honestly, not a shrink-ray promise that the entire stack lives on a microcontroller.

Which is exactly why it's worth showing. Identity is a keypair and content is a hash — neither one needs a datacenter, a chain, or a login to be true. So the same trust the big nodes rely on comes all the way down to a coin cell with an antenna: the prefix you can afford, running at the very bottom of the network. The floor isn't a server you rent. It's a twenty-dollar radio that still can't lie to you.