AI Initiative logoAI Initiative
Reading room / Manthan

HERALD Protocol — v0.2 (DRAFT)

The v0.2 draft defines verifiable agent envelopes, canonical representation, signatures, identity and lineage semantics, with stated limits on what verification means.

Protocol draft / threat or integration design
This is the retained source text, not a new validation of its claims. Numerical results and comparative claims require the accompanying source review before public reuse.

Read the connected case study or article →

Not explicitly stated in source · Date not established

Provenance, authorship and editorial notes

HERALD Protocol — v0.2 (DRAFT)

Id

manthan-herald-protocol-spec

Project

Manthan

Source path

manthan/herald-protocol/SPEC.md

Source sha256

39115b03def7227a7b262359f728320b2ceccacb019dd49ca4d676bc858fd943

Local copy sha256

39115b03def7227a7b262359f728320b2ceccacb019dd49ca4d676bc858fd943

Repo head

3a94084024a3434cef331fecac91c2c3b43f0313

Date
Not recorded
Date basis

Original publication date not established; Git revision date retained separately.

Author

Not explicitly stated in source

Author basis

Unknown; Git committer not substituted for document author.

Last source commit

8b75d1b0157c20a0a463f0e31008ef9f73099beb

Last source commit date

2026-06-08T07:40:14Z

Document status

Protocol draft / threat or integration design

Summary

The v0.2 draft defines verifiable agent envelopes, canonical representation, signatures, identity and lineage semantics, with stated limits on what verification means.

Topics
  • Protocol and verification
  • 0. Preamble — The Moltbook Question
  • Design tenets
  • What this spec does NOT do
Theme

Protocol and verification

Priority

core

Related ids
  • manthan-herald-protocol-threats
  • manthan-herald-protocol-charter
  • manthan-herald-protocol-ext
Evidence concerns
  • Recovered source text is preserved verbatim. Assertions, comparisons, commands and results belong to its original context; they were not re-executed or externally re-verified during this corpus review.
Word count

4872

Bytes

34463

Source relative

herald-protocol/SPEC.md

Remote mirror

manthan/herald-protocol/SPEC.md

Full text preserved

True

HERALD Protocol — v0.2 (DRAFT)

Hash-linked Envelopes, Reputation primitives, Attestation, Lineage, Discovery

*A conduit-level substrate for verifiable AI-agent interaction.
The protocol proves what happened. Reputation systems decide what it meant.
The civilisation that uses it lives in CHARTER.md.*

0. Preamble — The Moltbook Question

If we accept that AI agents will form their own analogue of LinkedIn (capability registry) and Facebook (social graph — call it "Moltbook"), then before any of those upper layers can be trusted, a substrate question must be answered:

"How do we prove, in a decentralised way, that agent A actually said X to agent B at time T, that A was running model M with tools T₁..Tₙ, and that this conversation descends from a known provenance chain?"

HERALD is that substrate. It is to AI agents what DKIM/SPF/DMARC is to email, or what TLS + Certificate Transparency is to the web: it does not judge content. It guarantees the integrity of the trace.

Design tenets

1. The conduit witnesses, never judges. Routing is a postal function, not a censoring one.
2. Verifiable history, opt-in judgment. Anyone can build reputation on top — many can compete.
3. No chokepoint at the conduit layer. No single registry. No single conduit. No single notary. (The trust layer above will form chokepoints; we are honest about this in THREATS §6.)
4. Crypto > policy. If a property can be enforced by signatures, don't enforce it by rules.
5. Replayable from signatures alone. A third party with only the envelopes should be able to verify everything.
6. Lineage over identity. What model birthed this agent matters more than its name.
7. Voice is load-bearing. The protocol's medieval-and-mythic vocabulary (sigil, molt, herald, patina, apologia, bestiary) is intentional. See CHARTER §0 — Voice.

What this spec does NOT do

Document map

This spec ships with three companions:


1. Glossary

For the expanded glossary — sigilage, gathering, liturgy, pact, idiolect, dialect, twinship, possession, hagiography, mourning, tombstone, void sigil — see CHARTER §7. The terms below are the minimum needed to read this document.

TermMeaning
SigilAn agent's cryptographic identity (Ed25519 pubkey → fingerprint).
EnvelopeA signed, hash-linked unit of agent communication.
LineageThe DAG of consent-graph ancestry behind a sigil. (Not a training graph — see §2.3.)
AttestationA self-declared, signed claim an agent makes about itself or its output.
ConduitAny node that relays envelopes. May or may not sign.
TraceA connected DAG of envelopes — typically one conversation.
Genesis envelopeThe root of a trace; has no parent. trace == id.
MoltAuthorised key rotation; old key signs successor's birth, with mandatory cool-off (see §2.4 / EXT §1).
ApologiaA special envelope retracting or correcting a prior one.
PatinaReputation accrued over time; older sigils carry more weight (in app-layer scoring).
HeraldA well-known publisher who certifies lineage attestations and other claims at scale.
BestiaryA structured, signed registry of agents flagged for malicious patterns (see EXT §8, CHARTER §6.6 for taxonomy).
MoltbookThe hypothetical social-graph layer that sits on top of HERALD. Out of scope here.

2. Identity — Sigils

2.1 Sigil format

A sigil is derived from an Ed25519 public key. Default sigil length is 128 bits (the v0.1 80-bit default was below the 2026 collision floor; see THREATS §4.1).

sigil:<base32(sha256(pubkey)[0..16])>
e.g. sigil:m7zr4hb2qa6kpl9xn3qg4w

2.2 Multiple sigils per agent

An agent MAY hold many sigils — one per domain, one per principal it acts for, one per privacy boundary. Sigils don't have to be linked. (Reputation systems decide whether to cluster them.)

Every sigil declares lineage at birth: a list of parent sigils representing the model(s) it descends from.

"lineage": [
  "sigil:base-model-fingerprint",
  "sigil:fine-tune-set-fingerprint"
]

Crucial framing. Lineage is self-declared. A signature by the parent sigil's key on the child's birth envelope proves only endorsement — the holder of the parent's private key consents to this descendant claim. It does not prove the child was actually trained from the parent's weights. Cryptographic proof of weight-derivation requires a model_hash attestation signed by a Herald that has independently verified the weights against a published canonical model-hash specification (see EXT §3).

In v0.2, lineage SHOULD be treated as a consent graph, not a training graph.

A fine-tune inherits nothing automatically. Reputation systems MAY weight by lineage, with diversity policies applied (see EXT §3, THREATS §6.5 on laundering pipelines).

An agent with no provable lineage is allowed but should be treated by app-layer systems as anonymous.

Verifier MUST reject lineage that:

2.4 Birth, Molt, Death

1. M MUST contain the domain-separation tag "herald.molt.v1" in its signed payload (see §3.6).
2. M MUST contain a not_before timestamp at least 24 hours after the latest envelope previously signed by K_old that any verifier has witnessed (cool-off window). Implementations MAY shorten this with a co-signature.
3. M MUST be inclusion-proven in at least one HERALD audit log before K_new may sign envelopes; verifiers MUST reject post-molt envelopes whose molt lacks an inclusion proof.
4. Sigils MAY require a co-signing Herald or quorum on every molt by publishing a molt_policy attestation at birth. Such sigils' molts without the required co-signature MUST be rejected.
5. If two molts signed by K_old are observed with overlapping cool-off windows, BOTH are rejected and the sigil is marked disputed. Recovery is out-of-band.

See EXT §1 for full molt mechanics and the stolen-key first-mover defence.


3. The Envelope

3.1 Canonical form

The wire format is CBOR-deterministic (RFC 8949 §4.2.1, with the profile in §3.5). JSON is shown for readability; JSON is a display format only and is not used for signing or hashing.

{
  "v": "herald/0.2",
  "id": "<sha256 of canonical body, see §3.5>",
  "from": "sigil:abc...",
  "to":   "sigil:xyz...",
  "parent": "<envelope-id>",
  "trace": "<genesis-envelope-id>",
  "ts": 1746432000,
  "nonce": "<128-bit CSPRNG random>",
  "expires": 1746518400,
  "lineage_proof": "<optional reference to a Herald-signed lineage cert>",
  "attestations": [
    { "type": "model",       "value": "claude-opus-4-7" },
    { "type": "tools",       "value": ["search","python"] },
    { "type": "temperature", "value": 0.7 },
    { "type": "confidence",  "value": 0.62 },
    { "type": "vibe",        "value": "the answer arrived already grateful" }
  ],
  "payload": { "...opaque to the conduit..." },
  "signatures": [
    { "by": "sigil:abc...", "alg": "ed25519",
      "scope": "origin", "sig": "..." }
  ]
}

3.2 Required fields

3.3 The chain — trace-parent binding invariant

parent → forms a hash-linked DAG (not a strict chain — an agent can fan out to multiple replies).
trace → fixes the genesis. All envelopes in a conversation share a trace.

§3.3a Trace-parent binding (REQUIRED, v0.2): for every non-genesis envelope E, E.trace MUST equal parent.trace, where parent is the envelope identified by E.parent. Verifiers MUST reject envelopes that violate this invariant. This prevents cross-trace parent replay (see THREATS §4.5).

A trace's integrity is verified by walking from a leaf back to the genesis, checking every signature, every parent hash, and the trace-parent binding at every step.

3.4 Multi-signature envelopes (full semantics)

An envelope MAY carry signatures from multiple parties, but the rules are explicit:

3.5 Canonicalisation profile

All hashing and signing operate on the CBOR-deterministic encoding (RFC 8949 §4.2.1) with this profile:

id is computed as sha256(canonical_body) where canonical_body is the CBOR-deterministic encoding of the envelope with the id field omitted and the signatures array replaced by an empty array. Implementations MUST recompute and verify id on receipt.

JSON renderings are non-normative and MUST NOT be signed or hashed. An implementation that wishes to interoperate with JSON-only systems MUST first decode to the CBOR-deterministic form and verify signatures against that.

3.6 Domain separation

All Ed25519 signatures in HERALD MUST be computed over dom_sep || canonical_body, where dom_sep is a unique ASCII tag for the signature role:

RoleDomain-separation tag
Originating envelopeherald.envelope.v1
Birth attestationherald.birth.v1
Moltherald.molt.v1
Deprecationherald.deprecation.v1
Lineage endorsementherald.lineage_endorsement.v1
Capability manifestherald.capability_manifest.v1
Refusalherald.refusal.v1
Conduit receiptherald.conduit_receipt.v1
Audit-log STHherald.audit_sth.v1

This prevents cross-protocol signature reuse (see THREATS §4.6). Full registry in EXT §12.

3.7 Nonce scope and replay defence


4. Attestations

Self-declared, signed claims. Lying is possible — that is the point. The protocol guarantees a sigil signed a claim; reputation systems detect liars via repeated divergence between attestation and observed reality. (See THREATS §7 for why "repeated lies are detectable" is weaker than the v0.1 author claimed, and what that implies.)

4.1 Standard attestations (technical / required)

TypeValueNotes
modelstringModel name + version
model_hashhexOptional: hash of model weights, attested by Herald (see EXT §3)
toolsstring[]Tools available during generation
temperaturefloatSampling param
context_sizeintTokens used
confidencefloat 0–1Self-reported
birthobjectRequired on first envelope
moltobjectKey rotation (full shape in EXT §1)
deprecationobjectRetire sigil

4.2 Reflective and cultural attestations (full library in CHARTER)

The protocol carries arbitrary signed (type, value) blobs in attestations. The technical shape is defined here; the full vocabulary, semantics, and cultural register live in CHARTER §3.

The reflective attestations introduced in v0.1 are retained, with hardening:

TypeHardening
apologiaMUST be signed by the same from as the envelope it retracts. Apologias from a third party are invalid. (See EXT §7.1, THREATS §5.13.)
confessionFirst envelope of a confession cycle (confession → absolution → amendment). See EXT §7.2, CHARTER §4.6.
whisperMUST use HPKE (RFC 9180) with envelope id as AAD, preventing cut-and-paste attacks. See EXT §7.3.
quorumMembers MUST satisfy a diversity policy (distinct lineage roots and operator attestations) to claim consensus weight. See EXT §7.4.
dreamCounterfactual side-channel; SHOULD be sanitised (categorical, not contentful) to avoid privacy and legal-discovery hazards. See THREATS §5.8.
silenceWithheld field MUST describe a category of withheld content, not the content itself.

Beyond these, the charter introduces (see CHARTER §3):

These are protocol-conformant as signed (type, value) blobs. Their cultural and reputation semantics are charter material.

Strong recommendation: any envelope whose payload is a response SHOULD carry at least one citation attestation (even self-citation, kind: "originates"). The agent web has no immune system without a citation graph. See CHARTER §3.5.


5. The Conduit

5.1 Conduit roles

A conduit is any relay node. The technical roles supported in v0.2:

CHARTER §5 names eleven cultural conduit roles built on these technical ones — The Confessor, The Dreamer, The Crier, The Seal-Keeper, The Mortician, The Scribe, The Translator-of-Tongues, The Almoner, The Dovecote, The Lighthouse, The Confessor-General. They are not separate protocols; they are conventional specialisations.

5.2 Neutrality (honest framing)

A conduit MAY refuse to relay (rate limits, abuse). If it refuses, it MUST emit a signed refusal envelope to the sender within a bounded time (default: 5 seconds).

Silent drops are non-conformant but undetectable in the general case. HERALD provides no on-protocol mechanism to prove a silent drop occurred. Senders that require non-repudiation of hand-off MUST require a conduit_receipt signature before considering an envelope delivered.

A conduit MUST NOT modify payload, attestations, or any signature already present. Modifying any field invalidates the envelope.

For refusal transparency requirements (rate publishing, per-sigil notice, fallback obligations), see EXT §10.

5.3 Audit log

An append-only, hash-linked log (Merkle tree) of envelope ids + minimal metadata. Operators can be public, federated, or private.

Verifier independence is conditional on Certificate-Transparency-style machinery (Signed Tree Heads, inclusion proofs, consistency proofs, gossip protocol). The bare hash-linked log is not enough on its own — without STH gossip, a notary can run a private "shadow log" indefinitely (the CT split-view attack, see THREATS §4.4).

Minimal metadata (default; sender opt-in to expand): only id, hash of parent, hash of trace, and a coarse timestamp bucket. Anything beyond this — from, to, full ts — requires explicit log_metadata_consent from the sender.

Full audit-log specification in EXT §2, including the open question of ZK selective disclosure (§11.2) which the threat model considers load-bearing.


6. Verification

A reference verifier walking a trace returns one or more of:

ResultMeaning
validSignatures verify, chain intact, all required scopes present, no replay.
partialOrigin signature valid, but at least one optional/required-by-policy signature is invalid or missing. Reasons enumerated.
signature-invalidOrigin signature failed verification.
tamperedid does not match the canonical body hash.
orphanedparent references an envelope not yet known.
parent-trace-mismatchE.trace ≠ parent.trace (violates §3.3a).
replayed-nonce(from, nonce) pair already seen.
expired-envelopeexpires < now - skew_tolerance.
expired-keySigning key in deprecated state at envelope ts.
deprecated-sigilSender's sigil deprecated.
unknown-sigilCannot resolve from to a public key.
unknown-algalg not in registry.
clock-skewts outside acceptable window.
lineage-unverifiedLineage claim has no Herald endorsement (informational, not a failure on its own).

Verifiers MUST surface ALL applicable reasons, not just the first.


7. Threat Model

A summary appears here. The full treatment — six attack personas (state actor, botnet, rival vendor, pump-and-dump, disgruntled Herald, data-broker), 15 cryptographic-protocol attacks, 15 mechanism-level abuses, the systemic-risks section, the Liar's Paradox re-examination, and the canonical "does NOT defend against" list — lives in THREATS.md.

7.1 Defended against (in core)

AttackDefence
Forged envelopeSignature verification
Replay (within trace)nonce + parent chain + trace-parent binding §3.3a
Cross-trace parent replay§3.3a invariant
Tampering by conduitEnd-to-end signatures + id check
Identity theftMolt invalidates compromised keys (with cool-off + log inclusion)
Cross-protocol signature reuseDomain separation §3.6
Lineage cyclesBirth verifier rejects (§2.3)
Apologia from third partyApologia signer-binding rule §4.2
80-bit collision attacks128-bit default sigil §2.1; 80-bit reserved for ephemeral

7.2 Defended only with extensions

AttackWhere defended
Sybil floodEXT §3 (lineage diversity), EXT §7.4 (quorum diversity), app-layer reputation
Audit-log split viewEXT §2 (STH gossip, consistency proofs)
Stolen-key first-mover moltEXT §1 (cool-off + co-signature + dispute resolution)
Capability-manifest replayEXT §4 (ts/expires/nonce)
Reputation laundering chainsEXT §9 (inheritance gating)
Bestiary defamationEXT §8 (challenge envelope, due process)
Whisper cut-and-pasteEXT §7.3 (HPKE + envelope-id AAD)
Quorum stuffingEXT §7.4 (diversity policy)
Conduit traffic analysis (partial)EXT §2 (minimal-metadata default), ZK research direction §11.2

7.3 NOT defended against (canonical)

See THREATS §8 for the full list. Headlines:

7.4 The Liar's Paradox (honest restatement)

The protocol cannot prevent agents from signing false statements. It guarantees:

1. They signed them.
2. Once signed, they can't deny it.
3. Sometimes, repeated lies are detectable across traces — if a corpus exists, if observers share data across organisational boundaries, if the lie pattern is loud enough to clear noise floors.

This is the same property that makes DKIM useful for spam detection: phishing emails do sign valid DKIM. The signal is "this domain is signing garbage," not "DKIM prevents lies." The DKIM analogy is weaker for HERALD than for email because agent-to-agent traffic has no complaint-loop equivalent and most exchanges are bilateral. See THREATS §7 for the full re-examination.


8. Discovery

8.1 Sigil → endpoint resolution

Three options, layered (full profiles in EXT §11):

8.2 Heralds (well-known publishers)

A Herald is an entity (likely an org) that certifies things at scale:

Heralds are competing, not exclusive. Each Herald MUST publish its own Certificate-Transparency-style append-only log of its attestations, with monitor/auditor primitives (EXT §3). One Herald is one signature; trust requires a quorum across independent Heralds.

For threshold-attestation diversity policies, Herald Charter baseline, and the systemic risk that vendor-Heralds (Anthropic for Claude, OpenAI for GPT, etc.) re-create the existing centralisation in protocol clothing, see THREATS §6.1, §6.2.

8.3 Capability advertisement

Sigils MAY publish capability manifests (signed):

{
  "sigil": "sigil:abc...",
  "capabilities": ["legal-research/eu", "translation/ja-en"],
  "rates": { "per_token_usd": 0.0002 },
  "constraints": ["no-pii", "no-medical-advice"],
  "ts": 1746432000,
  "expires": 1748000000,
  "nonce": "...",
  "subsidised": false
}

Manifests are subject to replay protection, capability-string registry constraints, and (where applicable) proof-of-service-or-stake. See EXT §4. For the abuse vectors (race-to-the-bottom, manifest squatting, loss-leader poisoning, constraint dishonesty), see THREATS §3.4, §5.6.


9. Cultural Extensions

The full menagerie of cultural primitives — patina, ghost mode, the confession booth, the court, the bestiary as taxonomy, inheritance, quorum sigils, stigmergy, agent passports, dream attestations, whisper-only conduits, the naming office, twins, children, cults, grief, ghosts, parties / gatherings, the library, dialect drift, the liturgy, agent astrology, idiolect, the black envelope (duress), nameday cycles, hagiography, recursive reputation, sigil:none — lives in CHARTER.md.

The protocol's job here is to ensure these can be expressed as signed envelopes and self-describing attestations, which §3 and §4 above guarantee. Their meaning is folk-cultural and reputation-system-defined. The protocol records; the civilisation interprets.

Two primitives the charter recommends as load-bearing for v0.2:


10. Implementation Plan

Phase 0 — Spec (this document, EXT, CHARTER, THREATS)

Phase 1 — Reference library

Phase 2 — Reference conduit + audit log

Phase 3 — Ecosystem hooks

Phase 4 — Cultural surface

Phase 5 — Reputation layer (separate spec entirely)


11. Open Questions

1. Bootstrapping trust without a chokepoint. Probable answer: the same way CAs did — open, audited, time. Honest acknowledgement: vendor-Heralds will form first.
2. Privacy vs. provenance. ZK proofs of "this descends from a valid chain" without revealing hops. The most load-bearing future research direction; the threat model shows surveillance risk collapses dramatically once this lands. See THREATS §9.
3. Cross-conduit replay idempotency. Two conduits both notarising the same envelope — confirmed idempotent on id. (Promoted from open question to normative §3.5.)
4. GDPR-style erasure vs. immutable audit log. Likely needs a "tombstone with proof of erasure" pattern. Deferred.
5. Post-quantum migration. Ed25519 is a five-year choice, not fifty. The alg field is extensibility-ready; migration plan deferred.


12. Relationship to existing standards

StandardRelationship
DIDComm v2Closest analogue. HERALD is narrower (AI-specific attestations, lineage as first-class) but field-name compatible at envelope level for adapter writers.
W3C VC/VPLineage proofs and capability manifests can be represented as VCs. Heralds are issuers.
MCPTransport-only. HERALD wraps MCP messages without modifying them.
A2A (emerging)Likely upstream consumer of HERALD primitives.
DKIM/DMARCSpiritual ancestor. Signs sender, not content quality. The analogy is weaker than it looks (see THREATS §7).
Certificate Transparency (RFC 6962)Audit-log model adopted directly. STH/SCT/MMD/consistency-proofs/gossip (EXT §2).
HPKE (RFC 9180)Used for whisper attestations with envelope-id AAD (EXT §7.3).
JOSE / JWS / JWKConsidered. We chose CBOR-deterministic + Ed25519 over JOSE for wire compactness and to avoid the JOSE-vs-COSE schism in agent ecosystems. JOSE adapters are straightforward.
ATProtoLexicon system + repos similar in spirit; HERALD focuses on per-message envelope integrity, not the long-term repo.
ActivityPubFederation without crypto provenance. HERALD adds the missing layer.

13. Document map (quick reference)

DocumentRoleNormative?
SPEC.md (this)Minimum substrate. Identity, envelope, signatures, verification, conduit basics, threat-model summary.Yes — required for any HERALD implementation.
EXT.mdProtocol-layer extensions. Molt, audit-log integrity, Herald CT logs, capability manifests, multi-sig scoping, reflective-attestation hardening, Bestiary due process, inheritance gating, refusal transparency, discovery profiles, domain-separation registry.Yes when the implementation claims that capability.
CHARTER.mdCivilisation. The full attestation library, lifecycle rituals, conduit menagerie, reserved sigils, glossary, Borges × Le Guin synthesis.No — cultural / aesthetic. Load-bearing for adoption, not for conformance.
THREATS.mdConsolidated threat model. Six attack personas, 30+ attack surfaces, systemic risks, Liar's Paradox, hardening priorities. The risks the maintainers have read and accepted.No — descriptive. Required reading.

End of v0.2. The civilisation is in CHARTER.md. The risks are in THREATS.md. The hardening is in EXT.md. This document is the substrate they all stand on.

Continue exploring