Three ways to start
Check a sealed packet in under a minute.
Someone sends you a .vhevidence.json packet and the address they signed with. You confirm the bytes are unaltered and the signer is who they claim — offline.
In your browser
No terminal. Open one offline page (SHA-256 sidecar) — it has a built-in sample packet, so you can watch ACCEPT, tamper one byte, and watch REJECT before you ever drop a real packet in. The page contains no network API at all — the devtools Network tab stays empty. For CI/production gating use the node standalone, card 02.
In the terminal
One file, zero dependencies, Node core only. Built for CI gating.
curl -O https://verifyhash.com/verify-vh-standalone.js
node verify-vh-standalone.js packet.json --vendor 0x…
Published SHA-256:0b8590a8eed961d937876f8b8a08ecf0a9681c7d08a539b7f51f0c2fdda0120a
From npm
Install the full vh toolchain — hash, anchor, seal, verify.
npm i -g verifyhash # or, no install: npx --yes -p verifyhash vh
vh --help
Don't trust our checksum either.
Rebuild the verifier from source in memory and confirm it's byte-for-byte what we published —
node verifier/build-standalone.js --check. The build-provenance
manifest maps every published hash back to the exact source modules it inlines, so you can root trust in code you read. Read the full source on GitHub →