Verify It Yourself

Run our verifier, here, on your machine

Everything below executes in this browser. The verifier is the same open source program published in our repository, compiled to WebAssembly. No request is made, no evidence leaves this page, and there is no server to trust.

Every result is shown three ways: the answer in plain English, a picture of what happened, and the verifier's own output. All three come from the same run. The picture is drawn from the result, so it cannot say something the cryptography did not.

Loading the verifier...

A post-acute episode, five records, three organisations

A patient leaves hospital and is cared for at home. Five things happened, and each one was signed at the moment it happened by the organisation that did it. No party signs for another.

What happened

What the verifier printed

Waiting for the verifier.
The data is synthetic. No real beneficiary, provider, encounter or claim. The cryptography is real: these are genuine ML-DSA-65 signatures under FIPS 204 over a real Merkle log.

Change anything you like and watch it fail

The hospital signed that the patient stayed three nights. Change that number, or open the record below and rewrite any part of it you want. We did not pick your attack, and the verifier does not know what you changed.

What happened

What the verifier printed

Waiting for the verifier.

This is the actual first record out of the file, exactly as the verifier reads it. Edit any field, add one, delete one, change the digest to match your edit, change the signature. Then verify what you wrote.

Waiting for the verifier.
Correcting the digest to match your edit does not help. The signature is over the content, not over the digest, so it fails instead. Forging the signature needs the hospital's private key, which is not in this page and never was. And a record whose digest changes breaks the link the next record carries, so altering one means re-signing every record after it with every organisation's key.

The operator is the adversary

Every signature so far protects a record against anyone without a key. None of them protects against us, the people running the log. So here we rebuild our own log without one record and sign the result with the real key.

What happened

What the verifier printed

Waiting for the verifier.
A checkpoint signed only by the log proves nothing against the log. The second signature belongs to an independent witness that keeps its own copy of what it last endorsed, and it co-signs only after verifying the new tree grew from the old one. We have built and tested this. No independent witness is in place yet, and until one is, we do not describe the system as independently anchored.

Missing documents, found while they can still be produced

This episode verifies completely. Every record in it is authentic. What is absent is documentation the programme requires, which is a different question and is reported separately.

What happened

What the verifier printed

Waiting for the verifier.
Verification asks whether the records are genuine. The requirement set asks whether the documents a programme requires are present. Collapsing the two would make an honest provider missing a certification look identical to a tampered record.

Do not take this page's word for it either

A page that marks its own homework proves nothing. Everything here is arranged so that you can catch us if any of it is theatre, without asking us for anything.

The program this page just ran computing...
That is a SHA-256 of the exact bytes your browser loaded and executed, computed by your browser after it loaded them. Build the published source yourself and compare:
$ git clone https://github.com/med-xt/hpx-verifier $ cd hpx-verifier $ GOOS=js GOARCH=wasm go build -o verify.wasm ./cmd/wasm $ shasum -a 256 verify.wasm
Built with go1.26.1. A different toolchain version produces a different binary and therefore a different hash, so match the version before you conclude anything from a mismatch.

Four ways to catch us

  1. Read the page. View source. It is one HTML file you can read end to end. There is no call to any service of ours in it, because there is nothing for one to do.
  2. Watch the network. Open your browser's network tab and reload. Three files load, then nothing. No request is made when you press verify, because the verification happens here.
  3. Cut the network. Turn off your wifi, save this page and the two files beside it, and open it again. It still works. Evidence that needs us to be online is not evidence.
  4. Leave entirely. Download the files below, build the command line verifier from the published source, and check them on a machine that has never contacted us. Same answer, different program path, no cooperation from us required.
What this does and does not establish. It establishes that the format, the cryptography and the verifier are real, that two independent implementations written from the specification agree, and that the conclusions on this page can be reached without us. It establishes nothing about deployment. There is no production system, no live claim, no provider site and no customer, and we do not claim any. Those are separate facts and we keep them separate on purpose, because a company that blurs the two is telling you something about itself.

This page carries no analytics and makes no network request after it has loaded. Save it along with the files it loads and it keeps working with the network off, which is the same property the evidence itself has.