Skip to main content
After sound run, HDP produces three core outputs:
  1. task_hash
  2. output_root
  3. mmr_metas
These values are designed for verification and settlement workflows. See also Verification model.

task_hash

task_hash uniquely identifies the computation for the module + public inputs. Formula:
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

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)