Quickstart: verify in the browser

The wasm package runs the full pipeline client-side: hard checks, coverage report, classification, acceptance — against a trust anchor bundle your app ships or caches.

npm install @confium/confium-wasm
import init, { verifyTrustedArtifact } from "@confium/confium-wasm";

await init();

const result = JSON.parse(await verifyTrustedArtifact(
  artifactJson,   // the trusted artifact
  bundleJson,     // the signed trust anchor bundle
  graphJson,      // the trust graph (nodes + delegation edges)
  registryJson,   // your scheme's published registry
  JSON.stringify({
    transparency_included: true,
    time_anchored: true,
    time_attested_at: attestation.attested_at, // from a verified time authority
    accepted_labels: ["verified", "attested"],
  }),
));

if (result.accept) {
  console.log(result.label, result.coverage.dimensions_verified);
} else {
  console.error(result.label, result.coverage.downgrades);
}

Tampered payloads hard-fail with an error naming the failing check; rejections return the rejected label. Build with verify-signatif for the tree-shaking profile:

wasm-pack build crates/confium-wasm --target web --features verify-signatif

The verifier fleet covers Ed25519 and ECDSA-P256; threshold aggregate and post-quantum verification are server-side concerns — use the HTTP quickstart for those.