Sparcle is not in the verification loop
The verifier runs entirely inside your perimeter. No outbound calls. The operator-root key is the only Sparcle artifact you need, and it's a public key — there's nothing for an attacker to extract.
Verify our claims
A Bolt audit chain is a sealed sequence of Ed25519-signed Merkle epochs. The verifier is a single statically-linked binary that takes the chain and the operator-root public key and returns a yes/no per epoch. It runs offline. It has no Sparcle dependencies. It is the strongest trust signal we can ship: your auditor never has to take our word for it.
The model
A vendor that says “trust us, the audit log is good” is asking the buyer to accept an asymmetry. Bolt's audit chain inverts that: your auditor runs the verifier on hardware you control, against bytes you exported, using a public key whose private half you never need to see. There is no point in the verification path where you have to take Sparcle's word for it.
The verifier runs entirely inside your perimeter. No outbound calls. The operator-root key is the only Sparcle artifact you need, and it's a public key — there's nothing for an attacker to extract.
The hashing canonicalization is byte-stable across Bolt and Aeira versions. A chain produced by Bolt 1.0 is verifiable by sparcle-verify-chain 1.5. The conformance test suite gates this; any change that would break replay refuses to ship.
The chain cannot be silently modified — every tampered byte invalidates downstream signatures. It can, in principle, be deleted, which is why retention is contractually specified and the storage substrate (WORM or audit-replicated Postgres) is the customer's choice, not Sparcle's.
If a tenant CMK has been cryptographically shredded (per the crypto-shred construction at /trust/cryptographic-erasure), the audit-receipt for the disposal is still verifiable. The receipt is signed under the operator-root key, which is distinct from the destroyed tenant CMK.
The procedure
The verification path is small by design. Each step has a specific failure mode and a structured exit code so it can be wrapped by your auditor's existing tooling without ceremony.
Bolt's audit chain is stored in your Postgres. Export it with the bundled CLI: bolt audit export --from <ts> --to <ts> --out chain.ndjson. The export is byte-stable; running the same command twice produces identical bytes. The export is independently parseable and includes the per-epoch Merkle roots, the operator-root signature, and the leaf event hashes.
The operator-root key is the one Sparcle uses to sign Merkle epoch roots. The public half lives in your tenant's KMS-managed bundle and is also published in your release-signing manifest. Pulling it twice from different sources is the first sanity check.
sparcle-verify-chain --chain chain.ndjson --key operator-root.pub. The verifier (a single statically-linked Rust binary) checks: leaf-hash → epoch-root membership; epoch-root signature under the operator-root key; chain continuity across epochs; absence of orphan epochs. No network calls, no Sparcle dependencies — runs offline on air-gapped hardware.
Verifier exits 0 on a valid chain and prints a per-epoch summary. Exit non-zero on any failure with a precise reason (broken hash chain, invalid signature, missing epoch, tampered receipt). The output is structured JSON and can feed directly into your SOC's audit-evidence pipeline.
The full canonical verification, in one block:
# export the chain you want to verify
bolt audit export --from 2026-01-01 --to 2026-01-31 --out chain.ndjson
# run the standalone verifier — no network calls, no Sparcle deps
sparcle-verify-chain \
--chain chain.ndjson \
--key operator-root.pub \
--output report.json
# exit 0 = valid; non-zero with a precise reason on failure
echo "exit: $?" What's available
The same honest framing the rest of the trust center uses. The sample chain and the verifier are designed to be in your hands well before any contract is signed.
A 500-event sample chain with the corresponding operator-root public key. Lets you run sparcle-verify-chain end-to-end against a known-good input before installing anything. Available on request.
The statically-linked Rust binary, signed and SBOM-attested. Builds for macOS · Linux · Windows. Distributed during pilot evaluation; the binary is the same one shipped with the production Bolt and Aeira packages.
The verifier is intended for source release under a permissive license so a customer's auditor can build it themselves and confirm there is no Sparcle-only inspection path. Source distribution is gated on the OSS-release sign-off currently in flight.
The byte-stability test suite that gates every Bolt and Aeira release. Lets your auditor confirm that the verifier they ran six months ago is still the correct binary to run today against a fresh chain. Available under NDA during pilot evaluation; intended for public release alongside the verifier source.
What the verifier does not claim
Related trust artifacts
Ask for verifier access. We send a sample chain, the operator-root public key, and the binary for your platform. Your auditor can run it on a laptop in under five minutes. No NDA required for the sample run.