QoreWitness
A post-quantum evidence anchor for camera footage on QoreChain.
QoreWitness hashes every video segment from a home camera. Every 10 minutes it builds a Merkle root of the hashes, signs the root with ML-DSA-87 and stores it on QoreChain. The contract checks the post-quantum signature on chain. Later, anyone can prove that a clip existed before a known time and was not changed.
Try it yourself
- Download the demo clip and its receipt.
- Open the verifier. It runs in your browser. The clip does not leave your computer.
- Drop both files on the verifier. It checks the hash, the Merkle path, the camera key, the ML-DSA-87 signature and the record on chain.
- Change one byte of the clip, or trim it, and verify again. The check fails.
The demo clip is a generated test pattern. It was anchored on the qorechain-diana testnet in block 9,899,327 on 11 Nov 2026.
On chain
Network qorechain-diana testnet (EVM chain ID 9800)
Registry 0x1854EeE2A659F4f39A05d5832cceC405E8045336
Demo device demo-testpattern
Check the verifier itself
The verifier is one static HTML file. Its SHA-256 is:64eb719cb4d54d2de274a03bb92cc4a08e95a9b821448f72e6197bbb50323862
Build it from the source with pnpm build:verifier and compare.
Limits
- Proof of concept for Build Before Q-Day, the QoreChain Developer Fest. Testnet only.
- An anchor shows that a file existed before a time. It does not show that the scene in front of the camera was real.
- A blockchain anchor is not an eIDAS qualified timestamp.
Source and licence (Apache-2.0): github.com/fnoufnou/qorewitness ยท #BuildBeforeQDay