Task Hash

The task hash uniquely identifies an HDP computation. It matches the Solidity encoding used by the Satellite contracts.

Formula

task_hash = keccak(
    module_hash ||
    0x40 ||
    public_inputs_len ||
    public_inputs
)

0x40 is the Solidity dynamic array offset (64 bytes).

The hash uses only the public inputs provided to the module, not private inputs.

module_hash is the program hash of the compiled Cairo module.

Implementation

See calculate_task_hash in src/utils/utils.cairo.