# HDP Primitives
## TaskEnvelope
The `TaskEnvelope` definition is used as an input for the `pre-processor`. There are two different types of `TaskEnvelope` definitions:
- **DatalakeCompute**: This is a higher-level interface. HDP supports two types of Datalake interfaces: "Block Sampled Data Lake" and "Transactions In Block Data Lake". Users can submit requests using this defined interface and specify a predefined function tag as an aggregate function.
- **Module**: This is a more customized interface. It involves passing a contract hash and input bytes. During the Cairo runtime, the necessary values will be fetched without the need to adhere to a predefined interface.
Both task interfaces can be committed on-chain as a `bytes32` type.