How H2A works

A visual walkthrough of the protocol, in the order the pieces come into play. Each diagram is a picture of a rule stated normatively elsewhere — follow the links to the authoritative text. Colour is consistent throughout: green is a pass / permitted path, red is a fail / refused one, and blue marks informational or neutral machinery.

The four objects

Everything in H2A hangs off one object, the Grant. Three records bind back to it, and it points forward to the artefact that can revoke it.

The Grant is the hub: an Attestation, Decision Record, and the Media / Memory profiles each bind back to it by grant_id, while the Grant itself points at its Status List by status.uri and status.index.

Full definitions live in the core specification and the generated schema reference.

What a grant carries

A grant is only valid if two independent parties have signed it — the subject (or their custodian) consents, and the issuer issues. Neither signature implies the other.

Every grant binds two independent signatures — consent from the subject (or custodian) and issuance from the issuer. Both are required; a grant missing either is refused at gate 1.

See authorization (ADR-004).

Delegation only narrows

A grant can be delegated, but never widened. A child is always a subset of its parent, so the whole chain stays at least as revocable as its slowest link.

Delegation only narrows. Each child grant is a subset of its parent; revocation responsiveness of the whole chain is bounded by its slowest link.

How a use is verified

At the point of use, a conformant verifier runs the same five gates everywhere, in order, failing closed at the first failure. This is the heart of the protocol.

H2A verification runs the same five gates everywhere, in order, failing closed at the first failure. Green is the single pass path; any gate can branch to a red REFUSED_* decision, labelled with the reason code the reference verifier emits.

The normative sequence is How it verifies and SPEC-CORE §4; the executable form is the reference verifier.

Who can revoke

Gate 3 above fetches a signed status list. The signature matters because it encodes who is allowed to revoke: revocation authority is custody of the signing key. The issuer holds it; an implementer only fetches and verifies, and fails closed.

ADR-009 — revocation authority is custody of the status-list signing key. The issuer signs and revokes; the implementer only fetches and verifies the signed list and fails closed. It has no revoke endpoint and serves no list of its own.

This is ADR-009, refining ADR-005 and ADR-006.

Evidence, not enforcement

H2A does not stop a third-party executor. When a transmission happens outside conformance, that fact is recorded — explicitly, and then anchored — so it stands as admissible evidence rather than being silently lost.

H2A evidences; it does not enforce. A transmission outside conformance is recorded explicitly as a signed Decision Record, then anchored with a qualified timestamp (RFC 3161 / eIDAS) and an independent witness co-signature so it stands as admissible evidence.

See evidence, not enforcement (ADR-006) and anchoring (ADR-005).

What a deployment can claim

Conformance is honest by construction: each level claims only what it can prove. A deployment sits at the highest rung it fully implements — and no higher.

Conformance is honest by construction — each level claims only what it can prove. L1 verifies, L2 attests against a signed status list, L3 anchors externally. L3 is underwriter-grade.

Full detail on the Conformance page.