How it works in AgenID
Canonicalize the manifest with RFC 8785, hash the UTF-8 bytes with SHA-256 and encode the result as lowercase hex. Canonicalization matters: the same content in a different member order produces identical bytes and the same digest. A verifier recomputes the digest before any signature math, and a mismatch fails with manifest_digest_mismatch.
The specification's worked example produces a digest any reader can reproduce with a conformant library, which is how implementers confirm their canonicalization before signing anything real. The verification guide walks through the same check on a live agent.
Why it matters
The digest stops an old verification being reused against a new claim. A verification assertion names the digest it was issued for; if the operator edits the manifest, the assertion stays validly signed but is reported as assertion_not_applicable_to_current_manifest, which is precise rather than alarming. It also lets many signed objects point at one manifest without re-signing it. On the Verification Card, the digest is what connects the manifest you read to the signature beneath it.
What it does not mean
A matching digest shows the manifest is the one that was signed. It says nothing about whether its contents are true, or about what the agent is allowed to do. Assertions that would reuse it need a root authority key that has not been created yet, so today the digest is bound only by the operator's ManifestProof, at up to L1_REGISTERED.