Skip to main content
Demo · In the standard

Provenance.
Verify what you can't reconstruct.

WAI carries whatever it can reconstruct, and verifies whatever it carries. Some content cannot be reduced to instructions: a photograph, a recording, a sensor stream. WAI does not decode or regenerate it; it carries the opaque bytes, content-addressed, with a signed lineage of the steps that produced them. The image below is a real JPEG. Your browser's own <img> decodes it, while this tab proves its identity (recompute the content hash, compare it to the receipt), verifies the receipt's signature, and shows each step of the lineage. The demo asset is a synthesized image encoded to PNG, then JPEG; the mechanism is identical for a camera capture.

the carried asset, decoded by the browser
verifying…
capability — media — energy — acquisition class not carried in this receipt signer's label — signing key a demonstration key from a published seed
receipt asset hash — recomputed in-tab —

Carried, not reconstructed

WAI never decodes the bytes — the sink hands them to whatever native element renders that media. What WAI adds is a content-addressed envelope and a signed receipt, so the asset is tamper-evident and its lineage is auditable, even though WAI cannot rebuild a single pixel.

A lineage with its energy

The receipt is a chain of steps, named as the receipt names them: origin.synthesize → encode.png → encode.jpeg. Each binds its input and output content hashes and the energy it cost. The origin step is unmetered and shows as not metered. The two encode steps carry figures the authoring tool read from on-chip counters before the class label existed. The receipt carries them unlabelled, so its metered steps show no figure.

Tamper-evidence in a tab

Press corrupt one byte: the recomputed content hash diverges from the one the receipt signed, the check goes red, and the image dims. No server is involved: the proof is a BLAKE3 comparison and a signature check the browser runs itself.

The asset-provenance receipt profile and its reference engine are in the open-standards repo under Apache-2.0. The asset is a real JPEG, opaque to WAI. This tab checks the signature against the public key carried in the receipt, which proves the receipt is intact, not who signed it. The receipt is signed with a demonstration key whose seed is published with the standard, so anyone can sign as it. Its signer id, did:example:wai-prov, is the authoring tool's own label: it names no web origin and is not an identity of this site.