Shipping daily
Nov 1DATAAll 646 projects re-verified: 6,419 developer claims tested against registers, courts and pressNov 1DATAMalaysia TEDUH and Philippines DHSUD licence checks: expired licences and approved delays foundNov 1DATAThailand ONEP register: 2 condos found selling before environmental approvalNov 1DATAMexico PROFECO contract register checks: one sales registration belonged to a laundryNov 1DATAAbu Dhabi ADREC inspections and RAK RERA permit list added: % built straight from the regulatorNov 1SHIPPEDNew stage filter: completed but still sellingNov 1SHIPPEDPublic database page: verification levels, disclosure distribution, every marketNov 1DATA+212 projects in one day, round 3: USA, Caribbean, Gulf, Africa, Japan, AustraliaNov 1SHIPPEDStage on every case: off-plan or under constructionOct 31SHIPPEDVerification level per check on every case card: registry, independent, developer, contradicted
Changelog →

Kolaboro / Verify evidence / Evidence bundle

A court-ready evidence bundle, built in your browser

One PDF with a cover, an index of exhibits, the SHA-256 and Bitcoin timestamp of each one, a chain-of-custody table, the proof that it sits in our public log, and a page that tells an independent expert how to check all of it offline with our open-source verifiers. It is designed to make an expert's job easy. It does not decide whether a court admits it.

Build one for any tracked project

Type an anonymous project id. Your browser fetches the signed project record, the page fingerprint with its Merkle proof, the change history, the open dataset file and the hazards file, checks every signature and proof itself, and writes the PDF and a machine-readable manifest. Nothing is built on our servers. The only thing sent back is the PDF's SHA-256, which is timestamped with OpenTimestamps so the exact file can be checked later.

For a buyer's own case

In the client portal, the case page has a button Court-ready evidence bundle. It does the same in your browser with your case: every photo and document is downloaded from your case and hashed again on your device, every signed evidence receipt is checked, the fingerprint chain is recomputed, and the custody table shows who added each item, when, from which device and with which GPS fix, exactly as stored when it was added. Your files and personal details never leave your device; only the PDF's SHA-256 is registered, the same way as the case-file PDF, so it can be checked at /verify. Try it on the demo case.

What is inside

Cover and checks

Case or project id, creation time, the manifest's SHA-256 and every check the browser ran: signatures, log chain, checkpoint, inclusion proof, Merkle proof or case chain.

Index of exhibits

One line per exhibit: SHA-256, OpenTimestamps status (and Bitcoin block when confirmed), capture time and source.

Exhibits

What each one is, who produced it, where it was fetched, its signature and what it says, in plain words.

Chain of custody

Who added each item, when, from which device, GPS and passkey signature, and whether its link in the fingerprint chain holds. Only what was stored at the time: nothing is filled in later.

Public log proof

The daily log line that names the data, how it recomputes, its inclusion path to the signed checkpoint, its Bitcoin timestamp and Sigstore Rekor entry.

Offline check

Step by step for an expert with no network: the verifiers, the checker script, the public key, and how to check the Bitcoin proofs against their own node.

Check a bundle PDF

Drop a bundle PDF. Your browser computes its SHA-256 (the file is not uploaded) and asks whether that exact file was registered for a case or timestamped when it was built. One changed byte gives a different fingerprint.

Check it offline

The manifest downloaded with the PDF holds the exact signed answers, proofs and log lines. The checker below re-runs every check with kolaboro-verify.js from github.com/calory89/kolaboro-open (MIT), without any network call. Read it first: it is about 100 lines.

curl -O https://raw.githubusercontent.com/calory89/kolaboro-open/main/open/kolaboro-verify.js curl -O https://kolaboro.com/court-file/check-bundle.mjs # then, offline: sha256sum kolaboro-bundle-AUH-004.json # must equal the manifest SHA-256 on the PDF cover node check-bundle.mjs kolaboro-bundle-AUH-004.json --ots ./ots node check-bundle.mjs kolaboro-bundle-KB-1234.json --files ./originals --ots ./ots # a buyer's case

It prints PASS or FAIL for each SHA-256, Ed25519 signature, Merkle proof, log head, checkpoint and inclusion proof, names the exhibit each original file matches, and writes the OpenTimestamps proofs as .ots files for ots verify against your own Bitcoin node. check-bundle.mjs.

What it does not claim

  • It is not legal advice and not a statement that any court will admit it. Rules of evidence differ by country; a lawyer decides how to use it.
  • It is PDF/A in style (no scripts, no external content, document metadata set) but not a validated PDF/A file: the standard PDF fonts are not embedded.
  • A fingerprint proves a file has not changed since it was recorded, and a Bitcoin timestamp proves it existed by that time. Neither proves that what a document says is true.
  • For a buyer's case, each daily evidence root in the log covers the evidence of every case. Other cases are private, so a single case can be shown to be inside a root only when it is the only case that day; otherwise the bundle relies on the case's own fingerprint chain and its Bitcoin timestamp, and says so.
  • The dataset and hazards files are not copied into the manifest (they are large). Their fingerprints are, and past versions of a project record stay available at /api/open/projects/{id}/at/{day}.
Protect my purchase