Simulator

Create a simulation draft

Store a Simulator setup (one call or a multi-call bundle, including state overrides, funded balances, and edited contract source) as a draft and receive an ID for a shareable link. Opening the link only prefills the Simulator form; nothing runs until the recipient clicks Simulate.

Put the returned resource_id in a dashboard link:

https://dashboard.tenderly.co/simulator/new?draftId={resource_id}

Visibility

  • shared: false (default): the draft is scoped to the project in the URL. Only members of that project can open it, and the dashboard redirects them straight into the project's Simulator.
  • shared: true: any signed-in Tenderly user can open the draft in a project of their choice (the dashboard shows a project picker first). Use it for links aimed outside your organization, for example a governance UI that prefills a proposal simulation.

Payload handling

The payload is stored as received. The API enforces only the 256 KB size limit; the payload structure is validated when the draft opens in the dashboard, and a malformed payload is rejected there with an empty form. The dashboard itself creates drafts through this endpoint with shared: false.

Drafts expire automatically. Learn more about Simulator draft links.

post/v2/account/{accountSlug}/project/{projectSlug}/simulation-drafts

Path parameters

accountSlugstring required

Account slug of the user

projectSlugstring required

Project slug of the account

Request body

sharedboolean

false (default) scopes the draft to the project in the URL: only its members can open it. true makes the draft openable by any signed-in Tenderly user in a project of their choice.

Example request

{
  "payload": {
    "v": 2,
    "network": {
      "id": "1"
    },
    "rows": [
      {
        "contractAddress": "0xdac17f958d2ee523a2206206994597c13d831ec7",
        "inputDataType": "raw",
        "rawFunctionInput": "0xa9059cbb000000000000000000000000ab5801a7d398351b8be11c439e05c5b3259aec9b00000000000000000000000000000000000000000000000000000000000f4240",
        "contractFunction": {
          "name": "transfer",
          "selector": "0xa9059cbb",
          "signature": "transfer(address,uint256)"
        },
        "from": "0xab5801a7d398351b8be11c439e05c5b3259aec9b",
        "stateOverrides": [
          {
            "contractAddress": "0x6b175474e89094c44da98b954eedeac495271d0f"
          }
        ],
        "fundAddress": {
          "targetAddress": "0xab5801a7d398351b8be11c439e05c5b3259aec9b",
          "tokens": [
            {
              "tokenAddress": "0x0000000000000000000000000000000000000000",
              "amount": "1000000000000000000"
            }
          ]
        }
      }
    ]
  }
}

Response

The draft was stored.

resource_idstring uuid required

ID of the stored draft. Use it as the draftId query parameter of the dashboard link: https://dashboard.tenderly.co/simulator/new?draftId={resource_id}.

Example response

{
  "resource_id": "3f2a6c1e-8f1b-4c8e-9a2d-6b1e0f7c4d21"
}

Changes