For more details check Atlantic Steps section which describes in details:

For all queries, you need to send apiKey in query parameters and declaredJobSize in the request body.

Job size determines what machine will be used to run trace generation. It also affects the cost of the query. You should choose job size based on number of steps you expect the program execution to have.

Number of steps [millions]SizeCost
0 - 13S70
13 - 30M120
>30L220

Input: Cairo Program (e.g., programFile.json)

  1. Generate trace (pie.zip file)

    • Inputs:
      • programFile
      • inputFile (optional) - available only for Cairo1 and Cairo0 with Rust VM
      • layout (can be set to auto)
      • cairoVersion
      • result = TRACE_GENERATION
    • pieFile must be left empty
    • Output: Trace file (pie.zip)
  2. Generate proof file (proof.json)

    • Inputs:
      • programFile
      • inputFile (optional) - available only for Cairo1 and Cairo0 with Rust VM
      • layout (can be set to auto)
      • cairoVersion
      • result = PROOF_GENERATION
    • pieFile must be left empty
    • Output: Proof file (proof.json)
  3. Generate proof and verify on Layer 1 (L1)

    • Inputs:
      • programFile
      • inputFile (optional) - available only for Cairo1 and Cairo0 with Rust VM
      • layout (can be set to auto)
      • cairoVersion
      • result = PROOF_VERIFICATION_ON_L1
    • pieFile must be left empty
    • Output: Trace, proof, and L1 verification
  4. Generate proof and verify on Layer 2 (L2)

    • Inputs:
      • programFile
      • inputFile (optional) - available only for Cairo1 and Cairo0 with Rust VM
      • layout (can be set to auto)
      • cairoVersion
      • result = PROOF_VERIFICATION_ON_L2
    • pieFile must be left empty
    • Output: Trace, proof, and L2 verification

Input: Trace File (pie.zip)

  1. Generate proof file (proof.json)

    • Inputs:
      • pieFile
      • layout (can be set to auto)
      • result = PROOF_GENERATION
    • Output: Proof file (proof.json)
  2. Generate proof and verify on Layer 1 (L1)

    • Inputs:
      • pieFile
      • layout (can be set to auto)
      • result = PROOF_VERIFICATION_ON_L1
    • Output: Proof and L1 verification
  3. Generate proof and verify on Layer 2 (L2)

    • Inputs:
      • pieFile
      • layout (can be set to auto)
      • result = PROOF_VERIFICATION_ON_L2
    • Output: Proof and L2 verification