Skip to main content
There are three common ways to run HDP workflows.

1) Run locally (developer loop)

Best for fast iteration on module logic. Core flow:
  1. hdp dry-run -m <compiled_module>.json --print_output
  2. hdp fetch-proofs
  3. hdp sound-run -m <compiled_module>.json --print_output
Example (from examples/eth_call/run.sh):
scarb build -p example_eth_call && \
hdp dry-run -m target/dev/example_eth_call_module.compiled_contract_class.json --print_output && \
hdp fetch-proofs --mmr-deployment-config examples/eth_call/mmr_deployment_config.json && \
hdp sound-run -m target/dev/example_eth_call_module.compiled_contract_class.json --print_output --cairo_pie ./pie.zip

2) Prove with Atlantic

Best when you want managed proving and verification pipelines. Atlantic can be used with different prover modes exposed in Atlantic docs (for example Stone/SHARP and S-two). This lets teams optimize for workflow needs without running prover infrastructure themselves. Typical flow:
  1. Produce trace/PIE from HDP run
  2. Submit Atlantic query
  3. Track query status and retrieve proof-related job details
  4. Verify on chosen target (for example L1, L2, or off-chain mode depending on workflow)
Start here:

3) Use HDP Server API (orchestrated path)

Best when you want API-driven scheduling and lifecycle management from your backend. This is not the same as State Server:
  • HDP Server API orchestrates HDP task execution lifecycle (/tasks, status, retries, outputs).
  • State Server provides injected-state trie read/write/proof endpoints used in injected-state workflows.
Key endpoints:
  • POST /tasks -> schedule a task
  • GET /tasks/{task_uuid}/status -> track task status
  • GET /tasks/{task_uuid}/details -> inspect execution metadata
  • POST /tasks/{task_uuid}/retry -> retry failed tasks
Start here:

Choosing the path

  • Use local HDP for module development and testing.
  • Use Atlantic for self-running but managed proving/verification.
  • Use HDP Server for full managed orchestration including proving/verification with Atlantic.
Most teams combine all three: local dev loop -> Atlantic/HDP Server in staging and production.