Skip to content

Offline verification

Every governed outcome carries a portable evidence bundle: trace digests, a plan-hash binding, trust snapshots, capability proofs, and anchor references. The bundle is designed to be verified offline, by a third party, without running an Infrix node and without trusting the node that produced it.

Verify a bundle (no node trust)

In the browser or Node, use the @infrix/verify package — the same canonical verifier closure the SDKs and explorer share:

typescript
import { verifyOffline } from '@infrix/verify';

const result = verifyOffline(bundle);
console.log(result.assurance);   // e.g. { proof: 'L3', governance: 'G2' }
console.log(result.nodeTrusted); // false — verification never trusts a node

A failed check can never render as a green badge: the verifier reports an honest assurance level or it fails closed.

Verify from the CLI

bash
infrix verify ./evidence-bundle.json

The Go side verifies the same bundle via evidence.VerifyPortablePackage — the Go and JS verifiers are held to byte-level parity by a cross-language fence, so a bundle verifies identically in both.

The assurance ladder

Verification reports two independent axes, never inflated:

AxisLevelsMeaning
ProofL0 … L4how strongly the run is cryptographically established
GovernanceG0 … G2how completely the governance spine was satisfied
  • Offline verification caps the proof axis at L3 — claiming L4 requires a live L0 anchor confirmation, which an offline verifier cannot fabricate.
  • A local run never claims L0/L4 and never reports nodeTrusted: true.

Released under the MIT License.