Public verification surface

Verify any attestation in your browser.

The Peptide MD verifier reads PDA-V1 design attestations and OEA-V1 reveals through a single API. Verification runs entirely client-side via SubtleCrypto. No bytes leave your browser.

@peptide-md/verifier@0.2.0-experimental.1✓ verify.mjs · 14 / 14 passingstatus · experimentallicense · Apache-2.0github ↗
Bundle JSON
Audience posture
Same code path as @peptide-md/verifier on npm. Web Crypto SubtleCrypto. No telemetry.
npm i @peptide-md/verifier@experimental
Frozen test vectors

Three vectors. Three documented hashes. Reproduce in 30 seconds.

Any conforming implementation in any language must produce these exact SHA-256 hashes from the inputs in vectors/. If yours does, you have byte-identical parity. If it diverges on any one, the canonical-JSON dialect or one of the Merkle domain separators is almost certainly the cause.

VectorShapeOEA hash (32 bytes, hex)
alpha1 participant · post-surgical recovery7113f5c4502156d1d0184ce605927aceb7ae8ead7acaf4f76a807ebba86c0db2
beta2 participants · -9.0 dialect literal edgea201ee856275e308fef34842acc488c4b25383d543768c42dadfb8a29b5c2411
gamma3 participants · odd-count Merkle duplicationb1ea928f0ba16b7b57fe4bdca8d6f208d203512d87d22f84813f9a3644c213ec
# Reproduce the determinism property in 30 seconds
git clone https://github.com/peptide-md/verifier.git
cd verifier
node verify.mjs
# Expected:
GROUP 1 - Frozen OEA hashes reproduce under canonicalize+sha256
[PASS] vector-alpha: hash matches
[PASS] vector-beta: hash matches
[PASS] vector-gamma: hash matches
GROUP 2 - Reveal bundles reproduce participant_root and analysis_plan_hash
[PASS] vector-alpha reveal: plan + root verify
[PASS] vector-beta reveal: plan + root verify
[PASS] vector-gamma reveal: plan + root verify
GROUP 3 - Negative control: -9.0 dialect preservation
[PASS] vector-beta reveal: literal edge preserved
[PASS] negative control: native JS round-trip drops the .0
Result: 8 passed, 0 failed.
01

Read the bundle

Drop or paste a JSON bundle. The studio detects the protocol version (PDA-V1 / OEA-V1) and routes through the matching verifier.

02

Replay the chain

Each component hash and the outer commitment are recomputed against the canonical-JSON dialect. Divergence on any byte is rejected with a structured reason.

03

Inspect the verdict

Pass or block reasons are surfaced inline. Audience posture (researcher / clinician / patient) controls which reveal fields are exposed in the final dossier.