Workflows

Simulate a workflow without persisting it

Changed on

Run a workflow definition end-to-end against the engine (Tenderly simulation for chain-writing nodes) and return the full Execution. Nothing is persisted. Requires a user Bearer JWT; partner assertion alone is not sufficient.

Grant preflight fails fund-moving steps unless authorizationMode is report. Report mode returns authorization and lets the simulation proceed so a test screen can show "it works" and "needs permission" as two results. maxExecution, startAt, and expiredAt size that verdict to the schedule. They do not change the simulated run.

post/workflows:simulate

Request

  • Base URL
    https://api.avaprotocol.org/api/v1
  • Auth
    HTTP bearer

Request body

chainIdinteger

Numeric chain ID (e.g. 11155111 for Sepolia, 8453 for Base). On chain-aware trigger/node configs this is required and must be a configured chain; on query/filter params it is optional.

inputVariablesInputVariables required

Free-form key-value bag of values used to resolve {{variable.path}} template references inside trigger and node configs. Conventional well-known keys: settings.runner (smart wallet address), settings.chainId (chain id). camelCase keys; back-compat support for snake_case keys exists during the migration window.

authorizationMode'enforce' | 'report'

enforce when omitted. Grant preflight fails the step, which is what one-shot Auto paths read as SESSION_POLICY_TARGET_NOT_ALLOWED. report does not fail steps for a missing or short grant, and the execution includes authorization. A storage lookup failure still fails the step.

maxExecutioninteger

Runs this workflow may still make. With a cron trigger and expiredAt, the requirement uses whichever allows fewer runs.

startAtinteger

Unix milliseconds. Schedule window start, same clock as create.

expiredAtinteger

Unix milliseconds. Schedule window end, same clock as create.

Example request

{
  "chainId": 11155111,
  "trigger": {
    "config": {
      "chainId": 11155111
    }
  },
  "nodes": [
    {
      "config": {
        "destination": "0x82F2Dd9a552a69f2ceD7Ff2D05c43aB8430158FB",
        "chainId": 11155111
      }
    }
  ]
}

Response

Simulated execution.

object required

Changes

    • info

      added the new optional request property ////////

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status