Skip to content
Verifier CLI

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-cli

Or download a release binary from github.com/banchelabs/vitrified.glass/releases.

Verify a bundle

vitrified verify ./proof-bundle.json

Output:

✓ 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: verified

Exit codes:

  • 0verified
  • 1partial (some mechanisms verified_partial or skipped; others verified)
  • 2failed
  • 3 — bundle invalid (schema or structural failure)

Add a Bitcoin source for full OTS verification

vitrified verify ./proof-bundle.json \
  --bitcoin-source https://blockstream.info/api

The 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_KEY

Fetches 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 --offline

Errors if any mechanism requires network access. Useful for air-gapped verification environments.

Source

verifier/cli/ — full source and integration tests.

See also

Was this page helpful?