> ## Documentation Index
> Fetch the complete documentation index at: https://docs.herodotus.cloud/llms.txt
> Use this file to discover all available pages before exploring further.

# Output Model

> task_hash, output_root, and mmr_metas produced by HDP

After sound run, HDP produces three core outputs:

1. **task\_hash**
2. **output\_root**
3. **[mmr\_metas](/data-processor/verification)**

These values are designed for verification and settlement workflows.
See also [Verification model](/data-processor/verification).

## task\_hash

`task_hash` uniquely identifies the computation for the module + public inputs.

Formula:

```text theme={null}
task_hash = keccak(module_hash || 0x40 || public_inputs_len || public_inputs)
```

## output\_root

`output_root` is a Merkle commitment over module results (`retdata`), using an OpenZeppelin StandardMerkleTree-style approach with double-hashed leaves.

This lets consumers verify result inclusion against a compact root.

## mmr\_metas

`mmr_metas` contains metadata for header commitments used during verification.

* Poseidon entries: `(id, size, chain_id, root)`
* Keccak entries: `(id, size, chain_id, root_low, root_high)`

## Output segment layout

```text theme={null}
task_hash_low
task_hash_high
output_root_low
output_root_high
poseidon_len
keccak_len
poseidon_metas (4 felts each)
keccak_metas (5 felts each)
```
