PricingDemo
Log InGet API Key

Verification Result Schema — v1.0.0

Version: 1.0.0
Status: Production
Last Updated: 2026-05-22
Canonical URL: https://h33.ai/schemas/verification-result/
Schema Draft: JSON Schema draft 2020-12
Editor: Eric Beans, H33.ai, Inc.

1. Overview

This schema defines the JSON output of hats verify or any conformant verifier implementation. The verification result is the final structured record produced after verifying a HATS attestation payload, governance proof bundle, or H33-74 receipt.

The result contains the verification status, counts of nodes and signatures verified, chain integrity assessment, replay outcome, a list of any failures encountered, and performance metrics. This is the machine-readable equivalent of the terminal output.

2. Definitions

Verification Result
A JSON object produced by a verifier after processing an attestation payload or governance proof bundle.
Failure Object
A structured record describing a specific verification failure. Contains the affected node, error code, expected value, actual value, and severity.
Chain Integrity
An assessment of whether the governance chain (sequence of attestations) is structurally intact. INTACT means no gaps or breaks. BROKEN means one or more chain links are missing or corrupted.
Replay Result
The outcome of attempting to replay governance decision logic. DETERMINISTIC means all replay frames produced identical outputs. DIVERGENT means at least one frame diverged. NOT_ATTEMPTED means replay was not performed.

3. Result Structure

FieldTypeRequiredDescription
statusstring (enum)YesVERIFIED, FAILED, PARTIAL, or ERROR.
bundle_hashstring (hex64)YesSHA3-256 of the input that was verified.
timestampstring (ISO 8601)YesWhen verification completed.
nodes_verifiedintegerYesNumber of governance nodes that passed verification.
nodes_totalintegerYesTotal number of governance nodes in the input.
signatures_validintegerYesNumber of signatures that passed verification.
signatures_totalintegerYesTotal number of signatures checked.
chain_integritystring (enum)YesINTACT or BROKEN.
replay_resultstring (enum)YesDETERMINISTIC, DIVERGENT, or NOT_ATTEMPTED.
failuresarrayYesArray of failure objects. Empty if status is VERIFIED.
duration_usintegerYesVerification duration in microseconds.
verifier_versionstringYesVersion string of the verifier implementation.
proof_profilestringYesThe proof profile used during verification.

4. Failure Object Sub-Schema

FieldTypeRequiredDescription
node_idstring (UUID or null)YesThe node where the failure occurred. Null for bundle-level failures.
error_codestringYesMachine-readable error code (e.g., NODE_HASH_MISMATCH, SIGNATURE_INVALID).
expectedstringNoThe expected value (e.g., expected hash).
actualstringNoThe actual value found.
severitystring (enum)YesFATAL, WARNING, or INFO.

5. JSON Schema Definition

{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://h33.ai/schemas/verification-result/v1.0.0", "title": "Verification Result", "type": "object", "required": [ "status", "bundle_hash", "timestamp", "nodes_verified", "nodes_total", "signatures_valid", "signatures_total", "chain_integrity", "replay_result", "failures", "duration_us", "verifier_version", "proof_profile" ], "properties": { "status": { "type": "string", "enum": ["VERIFIED", "FAILED", "PARTIAL", "ERROR"] }, "bundle_hash": { "type": "string", "pattern": "^[a-f0-9]{64}$" }, "timestamp": { "type": "string", "format": "date-time" }, "nodes_verified": { "type": "integer", "minimum": 0 }, "nodes_total": { "type": "integer", "minimum": 0 }, "signatures_valid": { "type": "integer", "minimum": 0 }, "signatures_total": { "type": "integer", "minimum": 0 }, "chain_integrity": { "type": "string", "enum": ["INTACT", "BROKEN"] }, "replay_result": { "type": "string", "enum": ["DETERMINISTIC", "DIVERGENT", "NOT_ATTEMPTED"] }, "failures": { "type": "array", "items": { "$ref": "#/$defs/FailureObject" } }, "duration_us": { "type": "integer", "minimum": 0 }, "verifier_version": { "type": "string", "minLength": 1 }, "proof_profile": { "type": "string", "minLength": 1 } }, "$defs": { "FailureObject": { "type": "object", "required": ["node_id", "error_code", "severity"], "properties": { "node_id": { "oneOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ] }, "error_code": { "type": "string" }, "expected": { "type": "string" }, "actual": { "type": "string" }, "severity": { "type": "string", "enum": ["FATAL", "WARNING", "INFO"] } } } }, "additionalProperties": false }

6. Canonical Valid Result (VERIFIED)

Verification Result: VERIFIED
{ "status": "VERIFIED", "bundle_hash": "b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5", "timestamp": "2026-05-22T14:35:12Z", "nodes_verified": 5, "nodes_total": 5, "signatures_valid": 3, "signatures_total": 3, "chain_integrity": "INTACT", "replay_result": "DETERMINISTIC", "failures": [], "duration_us": 2847, "verifier_version": "hats-verify 1.4.0", "proof_profile": "HATS-PROFILE-PQ-SHA3-256-v1" }

7. Canonical Failed Result

Verification Result: FAILED
{ "status": "FAILED", "bundle_hash": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2", "timestamp": "2026-05-22T14:36:45Z", "nodes_verified": 3, "nodes_total": 5, "signatures_valid": 2, "signatures_total": 3, "chain_integrity": "BROKEN", "replay_result": "DIVERGENT", "failures": [ { "node_id": "b2c3d4e5-f6a7-8901-bcde-f12345678901", "error_code": "NODE_HASH_MISMATCH", "expected": "7d793037a0760186574b0282f2f435e7a3c7b9f1d2e4c6a8b0d3f5e7a9c1b3d5", "actual": "0000000000000000000000000000000000000000000000000000000000000000", "severity": "FATAL" }, { "node_id": "c3d4e5f6-a7b8-9012-cdef-123456789012", "error_code": "NODE_HASH_MISMATCH", "expected": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "actual": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", "severity": "FATAL" }, { "node_id": null, "error_code": "SIGNATURE_INVALID", "expected": "valid SLH-DSA-SHA2-128f-simple signature", "actual": "signature verification returned false", "severity": "FATAL" }, { "node_id": "b2c3d4e5-f6a7-8901-bcde-f12345678901", "error_code": "REPLAY_DIVERGENT", "expected": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2", "actual": "deadbeef00000000000000000000000000000000000000000000000000000000", "severity": "WARNING" } ], "duration_us": 4102, "verifier_version": "hats-verify 1.4.0", "proof_profile": "HATS-PROFILE-PQ-SHA3-256-v1" }

8. CLI Output Mapping

The hats verify CLI maps the JSON result to terminal output as follows:

CLI output for VERIFIED result
$ hats verify --bundle governance-proof.json VERIFIED bundle b4c5d6e7...a3b4c5 nodes: 5/5 verified signatures: 3/3 valid (ML-DSA + FALCON + SLH-DSA) chain: INTACT replay: DETERMINISTIC duration: 2.847ms profile: HATS-PROFILE-PQ-SHA3-256-v1 verifier: hats-verify 1.4.0
CLI output for FAILED result
$ hats verify --bundle governance-proof.json FAILED bundle a1b2c3d4...f0a1b2 nodes: 3/5 verified signatures: 2/3 valid chain: BROKEN replay: DIVERGENT FAILURES: [FATAL] NODE_HASH_MISMATCH at b2c3d4e5-f6a7-8901-bcde-f12345678901 expected: 7d793037...a9c1b3d5 actual: 00000000...00000000 [FATAL] NODE_HASH_MISMATCH at c3d4e5f6-a7b8-9012-cdef-123456789012 expected: e3b0c442...7852b855 actual: ffffffff...ffffffff [FATAL] SIGNATURE_INVALID (SLH-DSA-SHA2-128f-simple) signature verification returned false [WARN] REPLAY_DIVERGENT at b2c3d4e5-f6a7-8901-bcde-f12345678901 expected: a1b2c3d4...f0a1b2 actual: deadbeef...00000000 duration: 4.102ms

The mapping rules:

9. Failure Modes

Error CodeDescriptionSeverity
NODE_HASH_MISMATCHA node's recomputed hash does not match the stored hash.FATAL
ROOT_HASH_MISMATCHThe recomputed root hash does not match the bundle's root hash.FATAL
SIGNATURE_INVALIDA PQ signature fails verification.FATAL
SIGNATURE_MISSINGFewer than three PQ signature families present.FATAL
GRAPH_CYCLEGovernance graph contains a cycle.FATAL
DANGLING_EDGEEdge references a non-existent node.FATAL
CHAIN_BREAKGovernance chain has a gap (missing intermediate attestation).FATAL
REPLAY_DIVERGENTReplay frame output does not match expected output.WARNING
TIMESTAMP_FUTUREAttestation timestamp is in the future beyond allowed skew.WARNING
VERIFIER_ERRORInternal verifier error (OOM, timeout, malformed input).FATAL

10. Conformance Requirements

A conformant verifier implementation MUST:

  1. Produce output conforming to this schema for every verification attempt.
  2. Set status to VERIFIED only if all nodes pass, all signatures pass, chain integrity is INTACT, and no FATAL failures exist.
  3. Set status to FAILED if any FATAL failure exists.
  4. Set status to PARTIAL if graph and signatures pass but replay diverges.
  5. Set status to ERROR if the verifier itself encounters an internal error.
  6. Include all detected failures in the failures array, not just the first one.
  7. Record duration_us accurately (wall-clock time, not CPU time).
  8. Populate verifier_version with the implementation name and semantic version.

Conformant verifiers MUST NOT set status to VERIFIED if signatures_valid < signatures_total or if nodes_verified < nodes_total.

The verification result schema is the interoperability contract between verifier implementations. Any system that consumes verification results can rely on this schema regardless of which verifier produced it.

11. Cryptographic Assumptions