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
Sensor
device keyESP32 measures dust, temperature and humidity, then signs the reading with its own key (EIP-191 over a 264-byte packed message).
- 2
Relayer
untrustedReceives the signed reading, checks the signature off-chain and pays gas. It is untrusted: changing any value breaks the signature.
- 3
Arkiv
ArkivEvery raw reading is stored openly as a queryable entity (by device, cell, time, PM level) for about 3 days.
- 4
Sepolia
Readings.solReadings.submitEpoch runs ecrecover, checks the device is registered and active, and requires a strictly increasing nonce.
- 5
Verifier
Registry.flagCompares each device with the median of its cell and neighbouring cells, and with the nearest official station.
- 6
Slash
Registry.slashThree 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.
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
- The Sharp GP2Y1014AU0F is a dust proxy, not a calibrated PM2.5 counter. Each unit measures its own clean-air baseline at boot and reports the rise above it.
- The AQI shown uses India's CPCB breakpoints on instant readings, while CPCB defines them on 24-hour averages. Treat it as indicative.
- Some devices are simulated to demonstrate neighbour cross-checking. They are always labelled "simulated".