PranaNet
connecting · 2 real · 5 simulated

How it works

Air-quality data that holds up in a dispute

Cheap sensors are everywhere, but their numbers are easy to fake or fudge. PranaNet makes every reading traceable to a physical device, checks it against the neighbours, and puts the operator's money on the line.

From sensor to verified reading

  1. 1

    Sensor

    device key

    ESP32 measures dust, temperature and humidity, then signs the reading with its own key (EIP-191 over a 264-byte packed message).

  2. 2

    Relayer

    untrusted

    Receives the signed reading, checks the signature off-chain and pays gas. It is untrusted: changing any value breaks the signature.

  3. 3

    Arkiv

    Arkiv

    Every raw reading is stored openly as a queryable entity (by device, cell, time, PM level) for about 3 days.

  4. 4

    Sepolia

    Readings.sol

    Readings.submitEpoch runs ecrecover, checks the device is registered and active, and requires a strictly increasing nonce.

  5. 5

    Verifier

    Registry.flag

    Compares each device with the median of its cell and neighbouring cells, and with the nearest official station.

  6. 6

    Slash

    Registry.slash

    Three consecutive flags slash the stake into the reward pool, deactivate the device and revoke its ENS name.

You can repeat steps 1–4 yourself: open any reading from a device page and the record page re-runs the signature check in your browser.

When is a device flagged?

Each epoch, a device is compared with the median of devices in its geohash cell and the neighbouring cells. It is flagged if it differs by more than 50% and more than 25 µg/m³. A looser threshold applies against the nearest official (OpenAQ) station.

flag→flag→flag→slashed

Privacy

No GPS and no personal data on-chain. A device publishes only a 6-character geohash (a cell of roughly 1.2 × 0.6 km). World ID reveals a nullifier, not who you are.

The stack

World ID
Operators prove they are unique humans. One nullifier, at most 3 devices, so nobody can flood a neighbourhood with sock-puppet sensors.
ENS
Each device gets <name>.prananet.eth with a geohash record: a readable identity that disappears if it cheats.
Arkiv
Open, queryable storage for raw readings and flags, so anyone can audit without trusting our server.
Sepolia contracts
Registry (devices, stake, flags, slashing) and Readings (signature + nonce checks).
x402 on Hedera
AI agents pay per request for cross-checked, baseline-corrected cell data.

Honest limits