Verifier CLI
vitrified verify — a standalone command-line verifier for Vitrified proof bundles. No network calls required for core verification.
Verifier CLI
The vitrified CLI provides offline verification of proof bundles. It ships as a single static
binary plus standard package-manager installs.
Install
# Homebrew
brew install banchelabs/vitrified/vitrified
# npm
npm install -g @vitrified/cli
# uv / pip
uv tool install vitrified-cliOr download a release binary from github.com/banchelabs/vitrified.glass/releases.
Verify a bundle
vitrified verify ./proof-bundle.jsonOutput:
✓ schema vitrified.proof-bundle.v1
✓ merkle leaf reconstructs to batch root
✓ eidas qualified timestamp from QTSP "<provider>" — verified against EU TSL
✓ rfc3161 timestamp from TSA "<provider>" — verified against published chain
✓ rekor inclusion proof verified against Sigstore log
~ ots structurally valid; chain anchor unchecked (no Bitcoin source)
✓ evm tx 0x... at block 12345678 on chain 8453 — root matches
✓ dsse envelope signature verified against Vitrified key fp:<id>
OVERALL: verifiedExit codes:
0—verified1—partial(some mechanismsverified_partialorskipped; othersverified)2—failed3— bundle invalid (schema or structural failure)
Add a Bitcoin source for full OTS verification
vitrified verify ./proof-bundle.json \
--bitcoin-source https://blockstream.info/apiThe CLI looks up block headers via the provided source; the OTS mechanism upgrades from
verified_partial to verified.
Fetch and verify by submission ID
vitrified verify --submission-id sub_01J... --api-key $VITRIFIED_API_KEYFetches the bundle from the API, then verifies offline.
Machine-readable output
vitrified verify ./bundle.json --output json{
"isVerified": true,
"overall": "verified",
"message": "Bundle verified end-to-end.",
"mechanisms": {
"eidas": { "status": "verified", "detail": "..." },
"rfc3161": { "status": "verified", "detail": "..." },
"rekor": { "status": "verified", "detail": "..." },
"ots": { "status": "verified_partial", "detail": "no bitcoin source" },
"evm": { "status": "verified", "detail": "..." },
"dsse": { "status": "verified", "detail": "..." }
}
}Useful for piping into CI gates:
vitrified verify ./bundle.json --output json | jq -e '.isVerified'Local-only mode
vitrified verify ./bundle.json --offlineErrors if any mechanism requires network access. Useful for air-gapped verification environments.
Source
verifier/cli/ —
full source and integration tests.
See also
@vitrified/verifier-web— the browser library that powersverify.vitrified.glass.- Proof bundle — the bundle shape the CLI consumes.
Python SDK
The vitrified Python package: async-first, supports hashing, submission, bundle fetch, and offline verification with the same Verdict shape as the JS SDK.
MCP server
@vitrified/mcp — Model Context Protocol server exposing Vitrified as tools any MCP-capable agent can call.
Was this page helpful?