Don't trust us. Check.
Every trigger publishes signed telemetry, hash-chained video segments, a drand round, and Merkle roots — enough for a stranger with no relationship to us to re-derive every result. We built the tool that would catch us cheating.
Telemetry hash-chain head
live at launchOnce the rig is streaming, the live hash-chain head — updated every frame and anchored on-chain every 1,000 blocks — appears here, so anyone can pin the exact telemetry that drove any trigger.
drand shuffle history
Every round's committed drand round and revealed zone map will list here after launch. Each drand round number is committed on-chain before that beacon exists — grinding is impossible; the only choices are the one true signature or a detectable fake. Nothing to show yet — the first round writes the first row.
The verifier CLI
Open source, standalone, no account needed: packages/verifier in the public repo.
fih-verify verify-beacon <round>fetch a drand beacon and BLS-verify its signature
fih-verify verify-shuffle <roundId> <sig> <mapping>re-derive a round's zone shuffle
fih-verify verify-chain <telemetry.jsonl>check the telemetry hash chain + Ed25519 signatures
fih-verify verify-payout <round.json> <address>recompute a Merkle root and check a payout
fih-verify verify-jackpot <tickets.json> <sig> <roundId>re-derive a jackpot winner
fih-verify recompute-twab <checkpoints.json> <window>reproduce the full TWAB distribution
Threat model, honestly
No. The effect→zone map is committed on-chain from drand randomness before each round opens. The edge box can only report a cell; the contract rejects any effect that doesn't match the committed map. Even a fully compromised operator key can't choose the effect.
Full written threat model ships in the repo (docs/threat-model.md) — including what an operator with physical access could still do, and what it would cost them. Pick any trigger and start checking →