Evidence application

WITNESS

Available Version 0.4 available. Records are not signed yet.

WITNESS is the application people use. Choose files or take a photo, see them, and get one small record of their exact bytes. Later, anyone can check the same files against that record.

Status
Available: version 0.4. Signing in development.
Runs in
A modern web browser. No installation.
Built on
Hashit Envelope v1
  1. ChoosePick up to 1,000 files of any type, or take a photo. You see previews first.
  2. FingerprintYour browser computes a SHA-256 fingerprint of each file's exact bytes.
  3. KeepDownload the .hashit record and note its Core ID. Optionally add timestamps.
  4. CheckLater, compare files against the record on the Check page, in any order.

WITNESS and Hashit

Hashit is the record format and the verification technology. WITNESS is the application built on it. Every record WITNESS creates is a Hashit Envelope v1 record, so it can be checked by any correct Hashit implementation, not only by WITNESS.

What it does

Files are streamed through SHA-256 in a background worker, chunk by chunk, so any size works and file content is dropped as it is read. Previews are released as soon as fingerprinting starts. File names are not stored in the record.

Timestamps are optional and happen only when you ask. Only a 32-byte hash of the Core ID leaves the device, through a relay that forwards a fixed-format request to DigiCert and Sectigo and stores nothing. The tokens come back as an .anchors file.

What a record can and cannot show

It shows
Whether files are byte-for-byte identical to the ones fingerprinted, whether the record has been altered, and, with timestamps, that the record existed no later than a given time.
It does not show
When the files were created, who made them, whether their content is accurate, or how a court will treat them. A WITNESS record strengthens the evidential position of a file. It is not a ruling on it.

Who it helps

  • Personal injury and litigation practices that receive photos, recordings and documents from clients and need to show later that nothing was changed in their hands.
  • People documenting an incident, a property, or a dispute, who want a record made at the time without uploading the files to anyone.
  • Anyone who needs a second person to be able to check files independently, with nothing more than the files and the record.

Why the approach matters

  • Nothing to hand over. Indivisa never receives the files, so there is no copy to secure, retain or disclose.
  • The record travels with you. Checking needs the files and the record, not an account and not a server that must still exist in five years.
  • Plain limits. The app says what a record does not show, every time, so nobody mistakes a fingerprint for proof of content.

Current availability

Available now

  • Create a record from files or a camera capture, up to 1,000 files per record.
  • Optional dual timestamps from DigiCert and Sectigo, verified in the browser.
  • A Check page that matches files to a record by fingerprint and size.

In development

  • Signed records, so a record also shows which key signed it.
  • Co-signing by a second person present at the scene ("Can I Get a Witness?"). Design stage.

There is no account and no sign-up for creating or checking records. Pricing for signed and managed features is not set yet.

Technical detail

Byte fidelity
A fingerprint covers the bytes the browser delivers from the file picker. Page code never re-encodes them. Some platforms are reported to convert photos when they are picked (HEIC handling in Safari, for example), and a converted file has different bytes. Build tests fail if any re-encoding path enters the code.
Network policy
The page's Content Security Policy allows connections only to its own origin, where the one endpoint is the timestamp relay. An end-to-end test proves the served policy blocks any other origin.
Conformance
The browser implementation agrees byte for byte with the Rust reference on the frozen golden vectors and on a 26,000-case differential test.

Next step