Check a receipt
A TimeWitness receipt says UTC was somewhere in an interval at the moment its clock was read, and that interval is the signer's own claim. It also carries signed evidence from parties who have never heard of us, each piece showing one thing about the time and none vouching for the interval. This page checks a receipt.
Nothing leaves this page. The receipt and the file it stamps are read from your own disk and checked here. There is no request of any kind, no account, and nothing of ours is involved: save this page, unplug the machine, and it gives the same answer. That is the point of it. A verifier only we can run is not evidence.
It runs the same checking code as the command line tool, compiled to WebAssembly, so the two cannot drift apart and say different things about the same receipt.
Nothing has been checked for the files now chosen. The answer that was here was about the files chosen before, so it has been taken away. Press Check it to check these.
What was checked
What it claims
The evidence, one role at a time
Three roles and none of them does another's job. A corridor puts a signed interval round the moment its server answered, which a stranger can check and the receipt's interval has to overlap, and does not tighten the bound. A beacon round shows the receipt was made no earlier than that round. A witness says its subject existed no later than its authority's own clock says. The agent's own bound is a claim and is not on this list.
What TimeWitness cannot prove
This is a section of the page rather than a note at the foot of it. Every item is something somebody might reasonably expect and will not get.
About time itself
- It cannot prove exact UTC over the public internet.
- It cannot prove a figure that was measured somewhere else.
- It cannot prove elapsed time from a verifiable delay function.
- It cannot prove that a machine stayed alive and honest through a power cut or a network outage.
- It cannot carry a bound far past its last synchronisation.
- It cannot prove that this machine's oscillator is the one the arithmetic assumes.
About the evidence, and this is where most of the surprises are
- An authenticated corridor does not tighten the bound.
- A corridor does not prove the server's clock was right.
- More than one source is a limit and not a guarantee.
- A source that agrees with everything is refused, and that is our own rule.
- And a source that agrees with everything no longer decides who else has lied.
- What that second rule still does not cover, and it is a figure rather than a caveat.
- A source that does real work can still be the broken one.
- A source is not taken at its word about how certain it is.
- A beacon's signature does not cover the time.
- A beacon rests on a coalition not existing.
- A beacon pins the receipt, not the thing being stamped.
- A final witness attests the payload, not the receipt.
- A final witness does not prove its own clock either, and on the two authorities used it bounds nothing at all.
- A timestamp token is checked against a pinned certificate, not a chain to a root.
- Where several parties who are meant to be independent collude, a coherent false history can be manufactured.
About what is being stamped
- It cannot prove that a photograph, a document or a recording is real.
- It cannot prove that the software describing an event described it truthfully.
- It cannot prove intent.
- It cannot prove anything about a time before the agent was installed.
- It cannot prove that something did not happen.
About what it does when something is wrong
- It does not prevent anything.
- It does not establish legal weight.
About what is built today, which is the part that moves
- A bound is about 155 ms where a machine reaches the sources that narrow it, measured 2026-09-09 at sixteen polling rounds on an ordinary desktop, and a machine that reaches only Roughtime is refused, where before the operator floor it got seconds.
- The agent starts at boot only where somebody has installed it as a service, and a restart has been checked on Linux and nowhere else.
- Leaving the agent running longer stops narrowing the bound after about thirty minutes.
- The one line a workflow installs runs the one-shot command and not the agent, so every receipt this product has issued in continuous integration came from a model built and thrown away in the same job.
- A fresh agent refuses most readings for its first two minutes.
- After it settles the agent still refuses a reading whenever the bound crosses the ceiling, and the share is not a fixed number.
- The agent answers sixty-four callers at once and refuses the sixty-fifth.
- Three protocol implementations stand behind the nine servers a round asks, so at most three of the nine can fail for a different reason in the code.
- A defect in one of the three source programs is one fault across three of the nine names at once, and no count of operators can see it.
- The nine servers a round asks stand behind six operators, and from 2026-09-09 the selection counts operators rather than names.
- What an operator count cannot see is a shared upstream, a shared network path, a shared satellite constellation and a shared implementation, so it is an upper bound on how independent a round was rather than a measurement of it.
- A receipt carries no measurement from any source, so nobody else can recompute its width.
- The operator names the floor counts are strings the signer wrote.
- A machine that can reach only the three public Roughtime servers reaches three operators, which is under the shipped floor of four, so it refuses to sign, and nothing that ships lowers the floor.
- NTS authenticates a source and can never be evidence for a bound.
- Through the resident agent the reading behind a stamp is taken with no network call at all; through the one-shot command the network call that produced it is part of the same few seconds as the stamp.
- Every receipt this product issues says its bound rests on the agent's own model, so no receipt yet carries third-party signed evidence for its bound.
- The resident agent refuses any interval wider than 250 ms, and the one-shot command, which the GitHub Action runs, refuses one wider than 2 s.
- Order is checked two receipts at a time, and nothing walks a chain.
- A countersigned exchange shows that two claims are consistent with an order, and nothing more.
- There is no refusal receipt.
- Only Linux has a released binary, and nothing in the binary is evidence about time.
- Nothing links an agent's key to anybody, except our own.
- There is no first-run figure from anybody who is not us.
- One freshness beacon works, not two.
- One kind of final witness works, not two.
- A sleep is detected and has never been watched happening.
- On Windows, continuous integration installs and removes the agent as a service and nothing more.
- An agent that starts inside a leap smear may not know it.
- Nothing here stops any of it.
- Roughtime is an Internet-Draft and not an RFC.
- Only RSA signatures are checked on timestamp tokens.
- A pinned certificate goes stale.