PricingDemo
Log InGet API Key

HATS Protocol Architecture

Title: HATS Protocol Architecture — Components and Verification Model
Version: 1.0.0
Status: Production
Last Updated: 2026-05-22
Editor: Eric Beans, H33.ai, Inc.
Canonical URL: https://h33.ai/standards/architecture/

0. Architecture Overview

The HATS protocol is composed of twelve interdependent components. Each component has a defined responsibility, a frozen interface surface, and explicit dependencies on other components. The diagram below shows the layered relationship between all components.

HATS Protocol Architecture
┌───────────────────────────────────────────────────────────────────────────────┐ │ HATS PROTOCOL │ ├───────────────┬─────────────┬─────────────┬─────────────┬─────────────┤ │ Governance │ Replay │ Proof │ Verifier │ Evidence │ │ Graph │ Engine │ Bundles │ Model │ Chains │ ├───────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ │ Nodes │ Frames │ H33-74 │ Public │ Hash-linked │ │ Edges │ Snapshots │ Receipts │ CLI │ PQ-signed │ │ DAG │ Timeline │ Anchors │ Offline │ Immutable │ ├───────────────┴─────────────┴─────────────┴─────────────┴─────────────┤ │ Enforcement │ Transcript │ Conformance │ Capability │ Compatibility │ │ Semantics │ Semantics │ Suite │ Profiles │ Guarantees │ ├───────────────┴─────────────┴─────────────┴─────────────┴─────────────┤ │ Federation (Cross-Domain Governance) │ ├─────────────────────────────────────────────────────────────────────┤ │ Cryptographic Foundation │ │ SHA3-256 · ML-DSA-65 · FALCON-512 · SLH-DSA-128f │ │ Canonical Serialization · Domain Separators │ └─────────────────────────────────────────────────────────────────────┘

Each upper-layer component depends on the Cryptographic Foundation. The Governance Graph is the primary data structure; all other components consume, attest, verify, or replay its contents. No component redefines the semantics of another.

Table of Contents

  1. Governance Graph
  2. Replay Engine
  3. Conformance Suite
  4. Verifier Model
  5. Evidence Chains
  6. Federation
  7. Enforcement Semantics
  8. Transcript Semantics
  9. Proof Bundles
  10. Capability Profiles
  11. Cryptographic Profiles
  12. Compatibility Guarantees

1. Governance Graph

The Governance Graph is the core data structure of the HATS protocol. It is a directed acyclic graph (DAG) in which every operational decision is a node and every dependency between decisions is an edge. The graph is the single source of truth for governance state: all attestations, replays, and verifications derive from it.

1.1. Node Types

The graph defines eight node types. Each node type carries a fixed schema, a deterministic hash computation, and a set of valid outbound edge types. Implementations MUST reject nodes with unknown type identifiers.

Type IDNameDescription
0x01RouteA routing decision that directs data or control flow to a specific processing pipeline. Routes define which policies apply to which operations.
0x02PolicyA governance policy definition. Policies express constraints (access rules, retention periods, exposure boundaries) as deterministic predicates.
0x03EventAn operational event (data access, API call, model inference, key usage). Events are the atomic units of governance-observable activity.
0x04ResultThe outcome of evaluating an event against one or more policies. Results carry a pass/fail determination and the evidence that produced it.
0x05StateTransitionA change in governance state (policy activation, deactivation, parameter change). State transitions are the mechanism by which the graph evolves over time.
0x06CheckpointA snapshot of the graph's Merkle root at a given point. Checkpoints enable efficient partial replay and serve as synchronization points for federated verifiers.
0x07FederationA cross-domain governance link. Federation nodes reference governance decisions from an external trust domain, establishing inter-organizational evidence chains.
0x08AnchorA chain-binding node that records the publication of a commitment to a public ledger (Bitcoin, Solana, Ethereum). Anchors provide externally verifiable timestamps.

1.2. Edge Semantics

Edges in the governance graph are typed and directional. Each edge type defines a specific relationship between two nodes. Edges are immutable after creation; the graph is append-only.

Edge TypeSourceTargetSemantics
DependsOnAnyAnyThe source node's validity depends on the target node's existence and validity.
EvaluatedByEventPolicyThe event was evaluated against this policy.
ProducedResultEventResultThe event evaluation produced this result.
SupersedesStateTransitionPolicyThe state transition replaces or modifies this policy.
CheckpointOfCheckpointAnyThe checkpoint captures the Merkle root that includes the target and all of its predecessors.
AnchoredByAnyAnchorThe node's commitment was published to a public chain via this anchor.
FederatedFromFederationExternalThe federation node references governance data from an external trust domain.

1.3. Hash Computation

Every node in the governance graph has a deterministic hash. The hash is computed as:

Node Hash Computation
node_hash = SHA3-256( domain_separator // "HATS:v1:node:" (14 bytes, UTF-8, no null) || node_type_id // 1 byte || canonical_payload // Variable length, BTreeMap-ordered fields || sorted_parent_hashes // 32 bytes each, lexicographic order )

The use of BTreeMap ordering ensures that field order is deterministic across implementations and programming languages. The root hash of the graph is computed as a binary Merkle tree over all leaf-node hashes, with lexicographic ordering at each level.

Frozen surface. The node schema, edge types, hash computation algorithm, and domain separator are frozen after v1.0 publication. Any change to these surfaces requires a major version increment, a published migration guide, and a minimum 12-month overlap window.

1.4. Graph Invariants

A valid governance graph MUST satisfy all of the following invariants at every state:

  1. Acyclicity. The graph contains no directed cycles. Verification of this property is required before any checkpoint is emitted.
  2. Referential integrity. Every edge target must exist in the graph. Dangling references are a fatal verification error.
  3. Deterministic ordering. For any set of nodes, the canonical traversal order is determined by lexicographic comparison of node hashes. Two implementations given the same graph MUST produce the same traversal sequence.
  4. Append-only. Nodes and edges are never deleted or modified. State transitions express change; they do not mutate prior state.
  5. Hash consistency. Recomputing any node's hash from its payload and parent hashes MUST produce the same digest as stored. A single inconsistency invalidates the entire graph from that node forward.

2. Replay Engine

The Replay Engine reconstructs historical governance state from the graph. Given a governance graph and a target timestamp, the engine deterministically produces the exact governance state that existed at that moment. This is not an approximation: it is a byte-identical canonical replay frame.

2.1. Determinism Guarantee

The replay engine's core invariant: same graph + same timestamp = identical output. This holds across implementations, hardware architectures, and time. The guarantee is quantified:

MetricValueTest Conditions
Replay Determinism Score100.0%50,000 operations, cross-implementation comparison
Divergence count0Zero byte-level differences across 50,000 replays
Replay latency (10K actions)2.5 msFull session reconstruction, Graviton4 96-vCPU
Replay latency (100K actions)18 msFull session reconstruction, Graviton4 96-vCPU

2.2. Replay Modes

The engine supports three replay modes, each producing a deterministic output frame:

Full Replay
Reconstructs the complete governance state at a target timestamp. Every node, edge, policy state, and evidence chain is materialized. This is the default mode and the one used for conformance testing.
Partial Replay
Reconstructs a subset of governance state. Three sub-modes are defined: policy-only (active policies at timestamp), memory-only (data-access events and their results), and tool-chain (tool invocations and their governance outcomes). Partial replay frames are strict subsets of the full replay frame.
Fork Replay
Reconstructs governance state under an alternate-path simulation. The caller supplies a set of hypothetical state transitions; the engine applies them to the graph and produces the governance state that would have existed. Fork replay frames are clearly marked as non-authoritative and carry a distinct domain separator (HATS:v1:fork:).

2.3. Canonical Replay Frame

A replay frame is the output of a replay operation. Its structure is frozen:

Replay Frame Structure
{ "frame_version": 2, "replay_mode": "full" | "partial:policy-only" | "partial:memory-only" | "partial:tool-chain" | "fork", "target_timestamp": "2026-05-18T14:30:00Z", "graph_root_hash": "a3f8c1d2...", // 32-byte hex "frame_hash": "b7e4d9f1...", // SHA3-256 of canonical frame bytes "node_count": 1847, "edge_count": 3214, "active_policies": [ ... ], // Deterministic BTreeMap order "evidence_chains": [ ... ], // Hash-linked, PQ-signed "checkpoint_ref": "c4a2b8e3...", // Nearest prior checkpoint hash "replay_integrity": "deterministic" // or "fork:non-authoritative" }

2.4. Replay Integrity Levels

Every replay frame carries an integrity classification:

LevelMeaningConditions
deterministicByte-identical reproduction guaranteedFull or partial mode, all inputs available, no fork modifications
checkpoint-boundedReplay is accurate from the nearest checkpoint forwardPre-checkpoint graph data unavailable; replay starts from checkpoint state
fork:non-authoritativeHypothetical state, not a record of what happenedFork replay mode with caller-supplied state transitions

3. Conformance Suite

The Conformance Suite is the set of canonical test vectors that define correct verifier behavior. A verifier implementation that passes all vectors is conformant. A verifier that fails any vector is non-conformant. There is no partial conformance.

3.1. Vector Count and Immutability

The suite contains 20 canonical test vectors at v1.0. Each vector has a unique identifier (HATS-VEC-001 through HATS-VEC-020), a frozen input, and a frozen expected output. Vectors are immutable after publication. New vectors receive new identifiers; existing vectors are never modified. A breaking change to any vector requires a transcript version increment.

3.2. Vector Categories

CategoryVector IDsTests
Valid receiptsVEC-001VEC-004Correctly formed receipts with all three PQ signature families. Verifier MUST return VERIFIED.
Tampered receiptsVEC-005VEC-008Receipts with one modified byte in the payload, signature, or chain link. Verifier MUST return specific failure codes.
Broken chainsVEC-009VEC-011Evidence chains with missing predecessors, reordered links, or duplicate entries. Verifier MUST detect the break.
Forged hashesVEC-012VEC-013Receipts where the commitment does not match the recomputed hash. Tests domain separator correctness.
Scope violationsVEC-014VEC-015Receipts that reference policies outside the attested scope. Verifier MUST reject out-of-scope references.
Exposure attestationsVEC-016VEC-017Receipts that attest data exposure events. Tests correct handling of negative proofs (proved non-exposure).
Replay determinismVEC-018VEC-020Full replay frame outputs. Verifier MUST produce byte-identical frames to the reference output.

3.3. Vector Structure

Each test vector is a self-contained JSON file with the following structure:

Test Vector Schema
{ "vector_id": "HATS-VEC-001", "version": 1, "category": "valid-receipt", "description": "Valid receipt with 3-family PQ signature bundle", "input": { "receipt_hex": "...", "h33_74_hex": "...", "chain_hex": "..." }, "expected": { "result": "VERIFIED", "error_codes": [], "frame_hash": null }, "frozen_at": "2026-05-22T00:00:00Z" }

Immutability rule. Once a vector is published, its input and expected fields never change. If a bug is found in a vector, a new corrected vector is published with a new ID, and the original is marked deprecated (but never deleted).

4. Verifier Model

The Verifier Model defines how independent parties verify HATS attestations without trusting the vendor. The model's core principle: the specification is the authority, not the vendor. Any party, with any implementation, at any time, given the same inputs, MUST reach the same verification result.

4.1. Independence Properties

PropertyRequirement
No API key requiredVerification MUST NOT require authentication with H33 or any vendor. The verification algorithm is fully public.
No network requiredOffline verification MUST be supported. All inputs necessary for verification (receipt, signatures, chain data) can be bundled for offline use.
No vendor trustA verifier does not need to trust H33. The specification defines the algorithm; any correct implementation reaches the same result.
Deterministic outputGiven identical inputs, every conformant verifier produces identical output. This is tested by the Conformance Suite.

4.2. Verification Procedure

The canonical verification procedure is a five-step pipeline. Each step is mandatory. Failure at any step terminates verification with a specific error code.

  1. Schema validation. Verify that the attestation receipt conforms to the Attestation Receipt Schema. Reject malformed receipts with HATS_ERR_SCHEMA.
  2. Hash recomputation. Serialize the receipt canonically. Prepend the domain separator. Compute SHA3-256. Compare to the stored commitment. Reject on mismatch with HATS_ERR_HASH.
  3. Chain integrity. If the receipt is part of an evidence chain, verify that its predecessor_hash matches the hash of the preceding receipt. Walk the chain backwards to a checkpoint or genesis. Reject broken chains with HATS_ERR_CHAIN.
  4. Signature verification. Verify all three PQ signature families (ML-DSA-65, FALCON-512, SLH-DSA-SHA2-128f) over the canonical receipt bytes. Each family uses its own public key from the signer's published key bundle. Reject if any signature fails with HATS_ERR_SIG_{family}.
  5. Replay determinism. If a replay frame is included, recompute the frame from the graph and compare to the provided frame. Reject on any byte-level difference with HATS_ERR_REPLAY.

4.3. Verifier Implementations

Three reference verification paths are supported:

CLI Verifier
Standalone command-line tool. Takes a receipt file, an optional chain data bundle, and produces a structured verification report. No network access required. Distributed as a static binary.
Web Verifier
Browser-based verification at /verify/receipt/. Runs entirely client-side (WASM). No data leaves the browser. Provides the same verification result as the CLI.
Library Verifier
Embeddable verification library for Rust, Python, and TypeScript. Exposes the five-step verification pipeline as a single function call. Published to crates.io, PyPI, and npm.
Example: CLI Verification
$ hats-verify \ --receipt governance-receipt.json \ --chain chain-bundle.json \ --offline Step 1: Schema validation [PASS] Step 2: Hash recomputation [PASS] a3f8c1d2e4b5... Step 3: Chain integrity [PASS] 47 links verified Step 4: Signature verification ML-DSA-65 [PASS] FALCON-512 [PASS] SLH-DSA-SHA2-128f [PASS] Step 5: Replay determinism [PASS] frame_hash matches Result: VERIFIED (5/5 steps passed, 0 warnings)

5. Evidence Chains

Evidence Chains are hash-linked sequences of governance events forming an immutable operational history. Each event in the chain references the hash of its predecessor. Any deletion, insertion, or reordering of events breaks the chain and is detectable by any verifier.

5.1. Chain Linking

Every receipt in a chain carries a predecessor_hash field: the SHA3-256 digest of the immediately preceding receipt's canonical serialization. The first receipt in a chain (the genesis receipt) has predecessor_hash set to 32 zero bytes (0x00...00). This structure makes evidence chains a cryptographic singly-linked list.

Chain Linking
Receipt[0]: predecessor_hash = 0x0000...0000 (genesis) receipt_hash = SHA3-256(domain || canonical_bytes) ↓ Receipt[1]: predecessor_hash = receipt_hash(Receipt[0]) receipt_hash = SHA3-256(domain || canonical_bytes) ↓ Receipt[2]: predecessor_hash = receipt_hash(Receipt[1]) receipt_hash = SHA3-256(domain || canonical_bytes) ↓ ... continues ...

5.2. Chain Types

The protocol defines five chain types, each scoped to a specific accountability domain:

Chain TypeScopeDescription
sessionSingle sessionAll governance events within one user or agent session. Bounded by session start and session end events.
agentSingle AI agentAll governance events produced by a specific agent identity across sessions. Enables agent-level accountability and lineage tracking.
governanceOrganizationAll policy changes, state transitions, and checkpoint events for an organization. The authoritative chain for governance audit.
approvalApproval workflowThe sequence of approvals, rejections, and escalations for a specific governance action. Used for multi-party authorization evidence.
exposureData exposureAll events related to sensitive data access, including non-exposure proofs. Supports "prove it wasn't exposed" verification.

5.3. Chain Integrity Properties

A valid evidence chain MUST satisfy:

  1. Predecessor consistency. Every non-genesis receipt's predecessor_hash exactly equals the computed hash of the immediately prior receipt.
  2. Temporal monotonicity. Timestamps MUST be non-decreasing within a chain. A receipt with a timestamp earlier than its predecessor's is invalid.
  3. PQ signing at every link. Every receipt in the chain is individually signed by all three PQ signature families. Chain integrity does not depend on any single signature; it depends on all of them at every link.
  4. No gaps. A chain with missing links (predecessor hash references a receipt not in the chain) is broken. Broken chains MUST be reported to the verifier with HATS_ERR_CHAIN_GAP.

Per-participant accountability. Evidence chains can be scoped to individual participants (human users, AI agents, service accounts). This enables fine-grained attribution: given a chain, a verifier can determine exactly which participant performed which governance-observable action, in what order, and under which policy.

6. Federation

Federation enables cross-organizational governance verification. Multiple independent trust domains, each operating their own HATS deployment, can produce interoperable evidence that a verifier can check without trusting any single organization.

6.1. Trust Domains

A trust domain is a self-contained HATS deployment: its own governance graph, its own signing keys, its own evidence chains. Federation does not merge trust domains. It creates verifiable links between them.

6.2. Federation Mechanism

When Organization A needs to reference a governance decision from Organization B:

  1. Organization B publishes its attestation receipt and chain data to a shared federation endpoint or provides it directly.
  2. Organization A creates a Federation node in its own governance graph. This node contains: the hash of B's receipt, B's public key bundle (for signature verification), and a timestamp of when the federation link was created.
  3. Organization A signs the federation node with its own three-family PQ signature bundle.
  4. A verifier can now trace governance evidence across both organizations by following the federation link and independently verifying each side.

6.3. Ordering and Equivocation

PropertyMechanism
Quorum-based orderingWhen two trust domains produce events with overlapping timestamps, a quorum of federation witnesses determines canonical order. A minimum of 3 witnesses is required; 2-of-3 agreement establishes order.
Equivocation detectionIf an organization publishes two conflicting governance states for the same timestamp, any federation peer can detect the conflict by comparing checkpoint hashes. Equivocation evidence is itself signed and published.
Federation checkpointsPeriodic cross-domain checkpoints that capture the Merkle roots of all participating trust domains at a synchronized time. Checkpoint intervals are configurable per federation agreement.
Honest-majority assumptionFederation ordering is secure under an honest-majority assumption among witnesses. If more than half of the quorum witnesses are compromised, ordering guarantees degrade.

6.4. Capability Profile Requirement

Federation is a Level 4 (Federation) capability. Implementations that do not support federation MUST NOT advertise Level 4 conformance. See Section 10: Capability Profiles.

7. Enforcement Semantics

Enforcement Semantics define how governance constraints are automatically enforced. Enforcement is not advisory logging; it is active constraint application with four progressive levels, deterministic triggers, and structured rejection records.

7.1. Enforcement Levels

LevelNameBehavior
0AuditOnlyViolations are logged and attested but operations proceed. Used during initial deployment and policy tuning.
1AdvisoryViolations generate warnings to the operator and are logged. Operations proceed but are flagged in evidence chains.
2EnforcedViolations block the operation. The operation is rejected with a deterministic rejection record. The rejection itself is attested and added to the evidence chain.
3CriticalLockdownViolations block the operation, freeze the session, and escalate to organizational governance. Requires explicit approval to resume. All lockdown events are PQ-signed.

7.2. Trigger Types

The protocol defines 10 enforcement trigger types:

TriggerDescription
PolicyViolationAn event violates an active policy constraint.
ScopeExceedanceAn operation attempts to access data or resources outside its authorized scope.
ChainBreakAn evidence chain integrity violation is detected.
SignatureFailureOne or more PQ signatures fail verification.
ReplayDivergenceA replay frame does not match the expected deterministic output.
TemporalAnomalyA timestamp violation (non-monotonic, future-dated, or outside tolerance window).
FederationConflictConflicting governance states detected across federated trust domains.
ExposureThresholdSensitive data access frequency exceeds a configured threshold within a time window.
ModelDriftAn AI model's behavior deviates from its attested baseline beyond the configured tolerance.
AuthorizationExpiryA time-bound authorization has expired and the operation attempts to proceed.

7.3. Action Types

The protocol defines 9 enforcement action types:

ActionDescription
LogRecord the violation in the evidence chain. No operational impact.
WarnSend a warning notification to the operator. Operation continues.
RejectBlock the operation. Produce a structured rejection record.
QuarantineIsolate the operation output for manual review before release.
FreezeSuspend the session. Require explicit approval to resume.
EscalateRoute the violation to a higher governance authority for decision.
RevokeInvalidate a prior authorization or credential.
RollbackReverse the governance state to the last valid checkpoint.
LockdownFull session lockdown. All operations blocked. Organizational escalation required.

7.4. Structured Rejection Semantics

When an operation is rejected, the enforcement engine produces a deterministic rejection record. This record is itself PQ-signed and appended to the evidence chain. Rejection records are first-class governance evidence.

Rejection Record Structure
{ "rejection_id": "rej-a3f8c1d2...", "trigger": "PolicyViolation", "enforcement_level": 2, "action": "Reject", "policy_id": "pol-7b3e9f21...", "event_hash": "e4b5f678...", "reason": "Data access exceeds authorized scope for this session", "timestamp": "2026-05-18T14:30:12Z", "signatures": { "ml_dsa_65": "...", "falcon_512": "...", "slh_dsa_128f": "..." } }

8. Transcript Semantics

Transcript Semantics define the versioned binding between governance state and verification rules. The transcript version is the single most critical compatibility indicator in the protocol: a transcript version increment signals a breaking change in the verification surface.

8.1. Current Version

The current transcript version is 2. This version defines the complete set of frozen surfaces that conformant verifiers must support.

8.2. Frozen Surfaces

The following surfaces are frozen at transcript version 2. They will not change without a version increment:

SurfaceDescriptionFrozen Since
Verifier schemaThe JSON structure of verification inputs and outputsv1
Error codesAll HATS_ERR_* and H74_ERR_* error identifiers and their semanticsv1
Severity levelsCritical, Warning, Infov1
Requirement IDsAll HATS-REQ-* identifiers in the specificationv1
Replay integrity levelsdeterministic, checkpoint-bounded, fork:non-authoritativev2
Ordering rulesBTreeMap field ordering, lexicographic hash comparison, temporal monotonicityv1
Hex encodingLowercase hex for all hash and key representationsv1
Whitespace rulesNo trailing whitespace, LF line endings, no BOM in canonical serializationv1
Proof profilesAlgorithm suites (see Section 11)v2
Domain separatorsAll HATS:v1:* and H33-74:v1:* prefix stringsv1

8.3. Version Increment Rules

A transcript version increment (MUST be sequential, no gaps) is required when:

  1. Any frozen surface is modified in a way that changes the verification output for any existing input.
  2. A new mandatory verification step is added to the pipeline.
  3. An error code's semantics are changed (as opposed to adding a new error code, which is additive and does not require an increment).
  4. The canonical serialization algorithm is modified.

Additive changes (new optional fields, new error codes, new capability profiles) do not require a version increment.

9. Proof Bundles

Proof Bundles are self-contained evidence packages for independent verification. A proof bundle contains everything a verifier needs to confirm a governance attestation without accessing any external system.

9.1. H33-74 Format

The primary proof bundle format is H33-74: a 74-byte fixed-width post-quantum attestation primitive. The format is split into two regions:

RegionSizeContents
On-chain commitment32 bytesSHA3-256 digest of the full attestation receipt. Published to a public ledger (Bitcoin, Solana, Ethereum, or L2).
Cached receipt42 bytesVersion, computation type, signature flags, chain target, timestamp delta, receipt locator, tenant ID, and CRC-16 checksum.

9.2. Signature Bundle

Every proof bundle references a signature bundle stored with the full receipt. The bundle contains three signatures computed over identical canonical receipt bytes:

FamilyAlgorithmHardness AssumptionSignature Size
Lattice (MLWE)ML-DSA-65 (FIPS 204)Module Learning With Errors3,309 bytes
Lattice (NTRU)FALCON-512Short Integer Solution over NTRU lattices690 bytes (avg)
Hash-basedSLH-DSA-SHA2-128f (FIPS 205)Second-preimage resistance of SHA-25617,088 bytes

Total signature bundle size: approximately 21,087 bytes. This is stored with the full receipt, not in the 74-byte primitive. The primitive carries only a 1-byte signature_flags field indicating which families are present.

9.3. Chain-Agnostic Anchoring

The 32-byte on-chain commitment can be anchored to any supported public ledger. The proof bundle format is chain-agnostic: the same 74-byte primitive works regardless of which chain carries the commitment.

ChainMethodIdentifier
BitcoinTaproot OP_RETURN (BIP-341)0x01
SolanaMemo Program instruction0x02
EthereumCalldata to anchor contract0x03
Arbitrum (L2)Calldata to L2 anchor contract0x04
UnanchoredNo chain publication0x00

9.4. Constant-Size Property

The H33-74 primitive is always exactly 74 bytes regardless of the complexity of the underlying governance operation. A simple data-access attestation and a complex multi-party federated governance decision both produce the same 74-byte primitive. Complexity is absorbed by the full receipt; the primitive is a constant-size commitment.

10. Capability Profiles

Capability Profiles define five progressive tiers of HATS conformance. Each higher profile is a strict superset of the one below it. An implementation claiming a profile MUST satisfy all requirements of that profile and all profiles below it.

10.1. Profile Definitions

LevelProfileRequirementsAdds
1 Core Governance graph construction, attestation receipt generation, H33-74 primitive production, evidence chain maintenance, three-family PQ signing, basic verification. Foundation: graph + receipts + verification
2 Replay All of Core, plus: deterministic replay engine (full and partial modes), canonical replay frames, 100.0% replay determinism score, replay integrity classification. Deterministic replay
3 Enforcement All of Replay, plus: automated policy enforcement (all 4 levels), structured rejection semantics, 10 trigger types, 9 action types, enforcement evidence chains. Policy enforcement
4 Federation All of Enforcement, plus: cross-domain governance links, quorum-based ordering, equivocation detection, federation checkpoints, inter-organizational evidence verification. Cross-domain governance
5 AI-Governance All of Federation, plus: agent lineage tracking, model attestation, inference audit chains, model drift detection, tool-use governance, prompt/response evidence chains. Agent lineage + model attestation

10.2. Profile Declaration

An implementation declares its capability profile in its attestation receipts via the capability_profile field. Verifiers MUST check that the declared profile is consistent with the features used in the receipt. A receipt that references federation data but declares Core profile is invalid.

10.3. Profile Advancement

Advancing from one profile to the next requires passing the Conformance Suite vectors for the target profile. Profile advancement is not self-declared; it is validated by the conformance testing infrastructure. There is no mechanism to skip levels.

Strict superset property. Level N conformance implies Level 1 through N-1 conformance. A Level 5 (AI-Governance) implementation is also a valid Level 1, 2, 3, and 4 implementation. There are no profile-specific exemptions.

11. Cryptographic Profiles

A Cryptographic Profile is a named algorithm suite that defines which cryptographic primitives are used for hashing, signing, and verification. The current production profile is defined below.

11.1. HATS-PROFILE-PQ-SHA3-256-v1

FunctionAlgorithmStandardHardness Assumption
HashingSHA3-256NIST FIPS 202Keccak sponge (quantum-resistant)
Lattice signatureML-DSA-65NIST FIPS 204Module Learning With Errors (MLWE)
NTRU signatureFALCON-512NIST Round 3 selectionShort Integer Solution over NTRU lattices
Hash-based signatureSLH-DSA-SHA2-128f-simpleNIST FIPS 205Second-preimage resistance of SHA-256

11.2. Three Independent Hardness Assumptions

The cryptographic profile is designed so that an attacker must simultaneously break three independent mathematical problems to forge an attestation:

  1. MLWE lattice problems (ML-DSA-65). Breaking this requires solving the Module Learning With Errors problem, believed hard for both classical and quantum computers.
  2. NTRU lattice problems (FALCON-512). Breaking this requires solving the Short Integer Solution problem over NTRU-structured lattices. This is a distinct mathematical problem from MLWE, providing diversity even within the lattice family.
  3. Second-preimage resistance (SLH-DSA-SHA2-128f). Breaking this requires finding second preimages in SHA-256-based hash chains. This is a purely hash-based construction with no algebraic structure, providing a fundamentally different security foundation from both lattice schemes.

Not "three Level 3 families." The current production profile uses ML-DSA-65 (NIST Level 3), FALCON-512 (NIST Level 1), and SLH-DSA-SHA2-128f-simple (NIST Level 1). The bundle's effective security is bounded at Level 1. The correct characterization is "three independent hardness assumptions," not "three Level 3 families."

11.3. Domain Separators

Every hash computation in the HATS protocol uses a domain separator to prevent cross-context collisions. Domain separators are UTF-8 strings with no null terminator, prepended to the hash input.

ContextDomain SeparatorLength
H33-74 commitmentH33-74:v1:commitment:21 bytes
Governance nodeHATS:v1:node:14 bytes
Evidence chainHATS:v1:chain:15 bytes
Replay frameHATS:v1:frame:15 bytes
Fork replayHATS:v1:fork:14 bytes
Rejection recordHATS:v1:reject:16 bytes
Federation linkHATS:v1:fed:13 bytes
CheckpointHATS:v1:checkpoint:20 bytes

12. Compatibility Guarantees

Compatibility Guarantees define the rules for protocol evolution. The HATS protocol is designed to evolve without breaking existing deployments. These guarantees are contractual commitments to implementers and operators.

12.1. Frozen Surfaces

A frozen surface is a protocol element that will never change without a major version increment. Once frozen, the surface is locked for the lifetime of the current major version. The complete list of frozen surfaces is enumerated in Section 8: Transcript Semantics.

12.2. Additive-Only Field Additions

New fields may be added to receipt schemas, graph nodes, and replay frames. Added fields MUST be optional. The hash computation for existing structures uses a conditional hash rule:

Conditional Hash Rule
// When a new optional field is added: // - If the field is None/absent: hash is identical to pre-addition hash // - If the field is present: field bytes are included in hash input hash_input = domain_separator || existing_field_1 || existing_field_2 || ... || IF new_optional_field IS PRESENT THEN new_optional_field_bytes // No bytes added if field is absent // This ensures: hash(old_receipt) == hash(new_receipt_with_none_fields)

This conditional hash rule ensures that adding a new optional field does not change the hash of any existing receipt where that field is absent. Existing verifiers that do not know about the new field will compute the same hash as updated verifiers.

12.3. Breaking Change Process

When a breaking change is unavoidable:

  1. Transcript version increment. The transcript version MUST be incremented (e.g., 2 to 3).
  2. Migration guide. A published migration guide detailing every change, its impact on existing verifiers, and the steps required to update.
  3. 12-month overlap window. Both the old and new transcript versions MUST be supported simultaneously for a minimum of 12 months after the new version's publication date.
  4. Conformance suite update. New conformance vectors MUST be published for the new transcript version. Old vectors remain valid for the old version.
  5. Deprecation notice. The old transcript version is formally deprecated (but still supported) during the overlap window. After the window closes, support may be removed.

12.4. Non-Breaking Changes

The following changes are non-breaking and do not require a version increment:

13. Component Dependency Matrix

The following matrix shows which components depend on which. A dependency means the dependent component consumes the depended-upon component's output or requires its invariants to hold. No component redefines the semantics of another.

Component Depends On
Governance GraphCryptographic Profiles (hashing, domain separators)
Replay EngineGovernance Graph, Transcript Semantics, Cryptographic Profiles
Conformance SuiteVerifier Model, Transcript Semantics, Capability Profiles
Verifier ModelGovernance Graph, Evidence Chains, Cryptographic Profiles, Proof Bundles
Evidence ChainsGovernance Graph, Cryptographic Profiles
FederationGovernance Graph, Evidence Chains, Cryptographic Profiles
Enforcement SemanticsGovernance Graph, Evidence Chains, Cryptographic Profiles
Transcript SemanticsCompatibility Guarantees (version rules)
Proof BundlesCryptographic Profiles, Evidence Chains
Capability ProfilesConformance Suite, all protocol components (progressive inclusion)
Cryptographic ProfilesNone (foundation layer)
Compatibility GuaranteesTranscript Semantics (frozen surface rules)

14. End-to-End Data Flow

The following diagram shows the data flow from a governance event through the protocol to a verified attestation:

Governance Event to Verified Attestation
Governance Event │ ▼ ┌──────────────────────┐ │ 1. Graph Insertion │ Event becomes a node in the governance graph. │ + Edge Creation │ Edges link it to policies, results, predecessors. └──────────────────────┘ │ ▼ ┌──────────────────────┐ │ 2. Policy Evaluation │ Event evaluated against active policies. │ + Enforcement │ Violations trigger enforcement actions. └──────────────────────┘ │ ▼ ┌──────────────────────┐ │ 3. Receipt Creation │ Canonical serialization of event + result. │ + Chain Linking │ predecessor_hash links to prior receipt. └──────────────────────┘ │ ▼ ┌──────────────────────┐ │ 4. PQ Signing │ Three signatures over canonical bytes: │ (3 families) │ ML-DSA-65, FALCON-512, SLH-DSA-128f. └──────────────────────┘ │ ▼ ┌──────────────────────┐ │ 5. H33-74 Primitive │ 32-byte commitment + 42-byte cached receipt. │ Generation │ 74 bytes total. Constant size. └──────────────────────┘ │ ▼ ┌──────────────────────┐ │ 6. Chain Anchoring │ 32-byte commitment published to Bitcoin, │ (optional) │ Solana, Ethereum, or L2. └──────────────────────┘ │ ▼ ┌──────────────────────┐ │ 7. Independent │ Any party, any time, offline or online. │ Verification │ 5-step pipeline. Same input = same result. └──────────────────────┘

15. References

15.1. Normative References

15.2. Informative References