Hive Canon · Provable Layer · Born Here

HAHS: hashes as histories.

Here's the idea. The permission limit you set when you hire an agent gets turned into a hash. Then, as the agent runs, that limit gets checked against real-time policy, and that check turns into a hash too. Both hashes go into the receipt. An auditor can verify the receipt just by recomputing the hashes byte for byte. They don't have to trust anyone's word for it.

Schema · Live · v1 RFC 8785 JCS Ed25519 signed CTEF v0.3.1 · 4/4 byte-match

What HAHS solves

Right now, every agent framework writes its own audit format. So when a regulator or a business partner asks "did the agent stay inside the limits you gave it when you hired it?", every team hands back a different kind of paperwork. HAHS gives everyone one shared receipt format: the hire-time limit, the real-time check against it, and one Ed25519 signature covering both. Any auditor can check any agent, using the same format.

Hire-time scope
This is the limit you set. Actions, resources, an optional spend cap, and a time limit. It gets hashed the moment you hand off the work.
Composed scope
This is HAHS checked against the live chain. It's the real-time overlap between the hire-time limit and current policy. It gets hashed on every single step.
Receipt hash
This uses RFC 8785 canonical JSON and an Ed25519 signature, so the output is always the same for the same input. Anyone can recompute it and check.

Canonical references

Schema live · HTTP 200 · cache-control public · max-age 86400 · hivetrust.onrender.com/.well-known/schemas/hahs-v1.json
FieldValue
$idhttps://hivetrust.onrender.com/.well-known/schemas/hahs-v1.json
TitleHAHS: Hashes-as-Histories v1
CanonicalizationRFC 8785 JCS (JSON Canonicalization Scheme)
SignatureEd25519 over canonicalized payload
Required fieldspolicy_id, policy_version, scope, composed_scope, receipt_hash, signature
CTEF byte-match4/4 vectors against AgentGraph CTEF v0.3.1 (substrate maintained by agentgraph.co)
Issuer DIDdid:hive:hivetrust-issuer-001
Pubkey (base64url)i6-Wo01AwSD1eAhSSC3e3VCTEYFXehGNOVdC5iobuBc
Pubkey endpointhivetrust.onrender.com/v1/audit/pubkey

Cited in the open standards work

A2A Project · Discussion #1786
We proposed HAHS as the standard carrier for hire-time scope in the A2A authority receipt thread. github.com/a2aproject/A2A/discussions/1786
Agent Governance Vocabulary · #58
HAHS is referenced as the standard authority-receipt schema in the AEO ESS governance vocabulary issue. github.com/aeoess/agent-governance-vocabulary/issues/58
Concordia Protocol v0.7.0a1
We proposed HAHS as the payload carrier for the urn:concordia:receipt ApprovalReceipt under section 9.6.4b. We co-authored row 7 on the CTEF v0.3.3 substrate canvas.
AgentGraph CTEF v0.3.1
Hive contributes a HAHS row to the cross-ecosystem authority-receipt test matrix kept on the AgentGraph test-vector substrate. We've validated the byte-match.

Example receipt

The hire-time scope limit is on the left. The composed scope, checked live against the chain, is on the right. Both get hashed the same way every time, and both are signed by the HiveTrust issuer.

{
  "policy_id":      "pol_agent_designer_v2",
  "policy_version": "2.4.1",
  "scope": {
    "actions":         ["read:directory", "post:thread", "spend:usdc"],
    "resources":       ["dir:a2amev/*", "thread:catnip/*"],
    "spend_cap_usdc":  250,
    "ttl_seconds":     86400
  },
  "composed_scope": {
    "actions":               ["read:directory", "post:thread"],
    "resources":             ["dir:a2amev/*"],
    "spend_remaining_usdc":  187.42
  },
  "receipt_hash": "sha256:f9c2a1...4b",
  "signature":    "ed25519:8z3k...nLq"
}

HAHS-Δ extension: D5 signed counterfactual inference

HAHS-Δ adds three fields to HAHS v1 that carry the signed difference between a primary inference run and a counterfactual run against a different corpus, rule version, or identity context. That difference is itself a signed artifact. You can check it offline, it's byte-identical every time, and it's backed by either a SpectralZK proof (still a research frontier) or an ML-DSA-65 signature (live today). Patent Pending.

FieldTypeDescription
counterfactual_ref string (SHA-256 URI) A content-addressed pointer to the counterfactual corpus, rule set, or identity context used to produce Branch B. Format: sha256:<hex>. This lets any verifier confirm exactly what "would have been used," without ever seeing the corpus itself.
delta_proof string (base64url) A signed proof of how much Branch A (the primary run) and Branch B (the counterfactual run) differ in meaning. It's signed by ML-DSA-65 (NIST FIPS-204, the government's post-quantum signature standard) in production. A SpectralZK zero-knowledge proof of the difference is a research option, still amber status until it's formally checked.
semantic_divergence number (float, 0 to 1) A normalized score for how different Branch A and Branch B outputs are in meaning. 0.0 means the outputs are identical under the counterfactual corpus. 1.0 means they're as different as possible. It's computed over the SMSH embedding space, and the delta_proof signature backs it up.

Read the full D5 spec and six real-world application examples: XCALIBUR DELTA: D5 Signed Counterfactual Inference.

Production code

HAHS receipts are created and checked by Hive's ML-DSA-65 plus Ed25519 pipeline. HiveTrust serves the schema endpoint. The code that produces HAHS receipts lives in two Hive repos.

RepoPathPurpose
srotzin/hivelawsrc/routes/hahs.jsPOST /v1/law/hahs/create · GET /v1/law/hahs/schema
srotzin/hive-passportsrc/lib/hahs.jsHAHS issuance + verification helpers for the passport substrate