Verifier integrity
Verify the verifier
The verifier at verify.carvetrace.com is the load-bearing trust handle of CarveTrace. Its credibility depends on you being able to confirm that the file your browser actually executes is the file we intended to ship. This page is the manifest against which you do that.
Last operator-verified : 2026-06-17. The hashes below are operator-curated and committed to source ; every deploy of the verifier accompanies a commit on this page. If the deploy commit and this page disagree, something is wrong — file a security report to security@aryamind.com.
Asset manifest
Each row is one asset the verifier loads. The SHA-256 is the hex digest
of the raw bytes served from verify.carvetrace.com as of
the date above.
| Path | Description | Bytes | SHA-256 |
|---|---|---|---|
/ | Drop-zone HTML page | 9,286 | d58894859da9ce65408e5856eaed6cf3f76c49dfa9e775fae2165870ff3ba309 |
/main.js | JS glue wiring the file input into the WASM verifier | 11,083 | 275f8e1ed61c846eddff48e58be78f299847732753631b8d5ed8efa51ce1965c |
/style.css | Stylesheet | 21,113 | ca2c54a92abde79f7ec47491ad70e186b4f28a3d3ec9e9521025b1fcf7184588 |
/pkg/carvetrace_verify_wasm.js | wasm-bindgen JS bindings | 21,044 | 4db0e3dc0ec07aff28148e2953e5828f3def75183f9d4dc0127cfd178f0808d6 |
/pkg/carvetrace_verify_wasm_bg.wasm | The Rust verifier compiled to WebAssembly — the load-bearing binary | 491,776 | d6052bd5ee9dd4a1efb79356f0338832d6f50be378a48bb7856d6998dee17a3a |
How to verify
You verify two things : (a) that the assets your browser executes match the hashes above, and (b) that the hashes above match the source code of the verifier itself. Both checks are open to anyone.
(a) Match the live assets to the manifest
Open a terminal and run :
for path in \
/ /main.js /style.css \
/pkg/carvetrace_verify_wasm.js \
/pkg/carvetrace_verify_wasm_bg.wasm
do
curl -s "https://verify.carvetrace.com$path" | sha256sum
done Each line should match a SHA-256 row above. If a line does not match, treat it as a security event — file a report and do not rely on the live verifier until it's resolved.
(b) Build the verifier yourself and compare
The verifier source code is open under Apache 2.0 at github.com/aryamind-tech/carvetrace-verify-wasm. Build it locally :
git clone https://github.com/aryamind-tech/carvetrace-verify-wasm
cd carvetrace-verify-wasm
# Required : Rust 1.79+ with wasm32-unknown-unknown target, wasm-pack, binaryen.
wasm-pack build --release --target web --out-dir web/pkg
# wasm-opt -Oz the bundle as the deploy pipeline does (see DEPLOYMENT.md).
wasm-opt -Oz web/pkg/carvetrace_verify_wasm_bg.wasm \
-o web/pkg/carvetrace_verify_wasm_bg.wasm
# Now compare :
sha256sum web/pkg/carvetrace_verify_wasm_bg.wasm The hash should match the WASM row above. If it doesn't, your build tooling differs from the deploy pipeline ; check the wasm-pack and wasm-opt versions against the deploy workflow.
What this protects against
- Adversary serves a tampered verifier from the same URL. Your check (a) catches it : the served hash diverges from this manifest.
- Hidden modification at build time. Your check (b) catches it : you build from source and compare.
- Cloudflare account compromise. If an attacker re-deploys malicious assets through CarveTrace's CF account, this manifest doesn't change (we sign the deploy commit on the marketing-site repo). Diverging assets → security report.
- This manifest itself being tampered with. This page is statically built from aryamind-tech/carvetrace-site. If we replaced the hashes here to cover an attack on the verifier, the deploy commit on carvetrace-site would show that change — and you can build the marketing site yourself and compare.
Release history
Material hash changes are logged below ; routine updates are not individually listed (each commit on carvetrace-verify-wasm or carvetrace-site is the canonical log).
- 2026-06-17 — Manifest initial publication.
Verifier WASM at
d6052bd5…, 491,776 bytes. Corresponds to verify-wasmmainbranch as of 2026-06-04. - 2026-05-26 — Verifier verdict-label refactor (TD-WASM-VERDICT-LABEL closed, 7 producer-identity rejection sites refactored from build_as_error → fail+build). Visual no-op for the manifest format but the binary changed.
- 2026-05-21 — verify.carvetrace.com custom-domain bind to Cloudflare Pages. Verifier-of-record (WASM) became production-canonical.
Anything suspicious ? security@aryamind.com acknowledges within 2 business days per our Security page.