Roots and receipts

Domain-separated roots bind encoded state to an explicit purpose. The digest domain is knolo:<domain>:v1 with SHA-256 over canonical CBOR, unless a later contract names a different preimage. A stored root field is not part of its own preimage. Composition uses the same rule for compositionRoot, excerptRoot, attestationRoot, and signatureRoot.

RootBinds
stateRootThe V5 image identity
Commit rootsParent, objects, events, view, schema, policy, runtime, sequence
Query plan and result rootsA bounded EQL execution against that image
knowledgeRootKAR's digest of the image. Not stateRoot
KARRootThe KAR evaluation
compositionRootA composition record body
traceRoot, answerRoot, evidenceRootA Cortex trace

Receipts preserve an inspectable chain from artifact state to the operation: migration receipts, query receipts, KAR certificates, composition attestations, Cortex traces, and Evidence Gate certificates.

A matching root means the operation is bound to those bytes. It does not promote the operation into a truth verdict. Hub attested: true is a listing flag and is not an attestation root.