# State Commitments

URL: https://docs.nexart.io/docs/governed-execution/state-commitments

What a governed step&#x27;s stateHash proves and what it does not: an opaque producer commitment protected by the CER, never recomputed by the NexArt Node.

Definition. `stateHash` is a producer commitment to the producer&#x27;s private state at a step. The schema requires a lowercase 64-character hexadecimal string; anything else is a `SCHEMA_ERROR`.

- The producer defines the preimage and its scope.
- The Node treats the digest as opaque unless a future profile defines reproducible verification.
- The Node protects the submitted digest as part of the signed governed bundle.
- The Node does not possess or recompute the producer&#x27;s private state preimage.
- Therefore `stateHashVerification: "not-performed"` is expected, not a failure.
- Any mutation of the protected bundle, including `stateHash`, is detected through certificate integrity.

## Optional CAGE producer conventions (non-normative)

A producer may describe how it built the commitment in the open `metadata` or `signals` objects. `stateHashAlg`, `stateHashCanon` and `stateHashScope` are optional CAGE producer conventions. They are not part of the SDK 0.4.2 schema and the Node does not interpret them.

```
{
  "stateHashAlg": "sha256",
  "stateHashCanon": "RFC8785-JCS",
  "stateHashScope": "agentstate-pii-sanitized/v1"
}
```

They describe producer-side construction. They do not convert the commitment into a Node-verified fact.

MUST NOTDescribe `stateHash` as recomputed or verified by the Node.
