Verifier / Offline, in your browser

Someone sent you evidence.
Check it without trusting them.

Load the evidence file and the gate public key you obtained separately. The verifier is the same code the tempus CLI runs, compiled to WebAssembly. Nothing leaves this page.

01 / Evidence and key

What you were given.

An evidence bundle (evidence.json from tempus export-bundle), an action trace, a permit, or an outcome receipt. Or paste the JSON below.

Get it from the operator through a channel you trust, not from the file you are verifying. Never paste a key file: only the public key.

A tempus.anchor.v1 from tempus anchor create: proof from outside the gate that the bundle's checkpoint existed by a date. Or paste it below.

Get them from the log and the authority, not from the operator or the file. Without them no date is claimed: the proofs read NOT CHECKED.

Independent by construction.

The verifier trusts only the key you pinned. It does not call the gate, does not read its database and has no private keys. The result is the same tempus.trace-verification.v1 document the CLI prints.

The real sample's log and timestamp authority are throwaway ones made for it, so its roots load with it. Real roots come from those services.

Verifier: loading…

02 / Verdict

What the evidence shows.

LOADING

Loading the verifier…

Signed documents

What this file cannot show

A document proves what was signed. These points need the gate's ledger or more evidence, and the verifier says so instead of staying silent.

Inspect the full verification result (JSON)

Where does the link come from?

Every permit and outcome receipt the gate signs carries a verify_url pointing here with its action identifier, and every exported bundle carries one with the bundle digest. The link is unsigned on bundles, so this page checks that the link and the file you loaded belong together.

What if VERIFIED is not enough?

VERIFIED means the signed documents are intact and were signed by the pinned gate. It does not show that nothing else happened. For that, compare against a checkpoint (tempus checkpoint verify) or ask the operator for the bundle that includes one.

How do I know when it happened?

Every date the gate writes is the gate's own claim. An anchor is proof from a public log or a timestamp authority that the checkpoint already existed, so with their roots pinned neither the operator nor Tempus could have backdated it. Only a hash of the checkpoint ever leaves the operator's machine.