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

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).

Anything suspicious ? security@aryamind.com acknowledges within 2 business days per our Security page.