> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tenderly.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Simulator UI

> Build single-transaction simulations or stateful bundles in the Tenderly dashboard with decoded traces, gas estimates, balance changes, and cheatcodes.

<Frame caption="Simulator landing: single-transaction and simulation bundle entry point with feature summary.">
  <img src="https://mintcdn.com/tenderly/XsEZlaGXYskrtN68/images/simulator-ui/14-project-simulator.webp?fit=max&auto=format&n=XsEZlaGXYskrtN68&q=85&s=67beaab414cb36050158bf19d0ed9be2" alt="Tenderly Simulator landing page showing the Simulate transaction button and three feature cards: Unlock the blockchain, Inspect and debug errors, Integrate in your dapp" width="1600" height="1000" data-path="images/simulator-ui/14-project-simulator.webp" />
</Frame>

The Tenderly Simulator lets you run transactions against live mainnet or testnet state without broadcasting anything. You can simulate as any sender, override contract storage, fund addresses, and manipulate block context, all from the dashboard.

The builder is the same whether you run one transaction or five. A **single simulation** is a one-step bundle. A **[simulation bundle](/simulator-ui/simulation-bundles)** is up to five steps that share state: each step sees the state changes made by the step before it.

## Layout

The builder has three regions:

**Session strip** runs across the top. It holds defaults that apply to every step: Network, Block (defaults to `Pending`), and a default From address. Click **Configure** to set default gas, gas price, and value.

**Bundle rail** is the left column. Each step card shows a step number, a label (`New call` until a contract is chosen, then `ContractName · functionName`), and a status badge after a run. Click a step to focus it. Drag to reorder. Use `C` to add a step, `J`/`K` to move between steps, and `F` to toggle focus mode.

**Focused step view** is the right column. Before running, it shows the step editor. After running, it shows that step's result: decoded output, gas used, events, state changes, and token transfers.

## Single simulations

To run a single simulation, work with the one step that opens by default.

**Decoded mode** lets you pick a contract and function by name:

| Field          | Notes                                                                                                      |
| -------------- | ---------------------------------------------------------------------------------------------------------- |
| **From**       | Defaults to the session From. Override per step.                                                           |
| **Contract**   | Project contracts surface first. Also matches public contracts and top tokens by name, symbol, or address. |
| **Function**   | Filtered to non-event, non-constructor methods.                                                            |
| **Parameters** | One typed input per ABI argument.                                                                          |

**Raw mode** takes a target address and a `0x`-prefixed hex payload directly. This is useful when you have calldata from an existing transaction or a manual encode.

Click **Simulate** (or press `⌘↵`) to run. The right panel fills with the result: function call summary, gas used, decoded output, and tabs for Events, State Changes, Fund Flow, and Gas Profiler.

You can also start from an existing transaction: click **Re-Simulate** on any transaction detail page to load its inputs into the builder. The simulation runs on the block and timestamp of the original by default.

To share a pre-filled form (for example from CI or a test report), click **Copy draft link** in the page header, or build the link yourself. See [Prefill the Simulator with a draft link](/simulator-ui/draft-links).

## Simulation bundles

A bundle runs up to **five steps** in sequence, sharing state. Use a bundle when the outcome of one transaction depends on a previous one, for example, an approval that enables a later transfer. Steps are added and reordered in the rail, each with its own From override and cheatcodes, and the whole bundle executes with one click of **Simulate**.

See [Simulation Bundles](/simulator-ui/simulation-bundles) for building, reordering, result badges, and how bundles appear in the simulation history.

<Frame caption="New Simulation form: session strip at top (Network, Block), transaction parameters on the left, and cheatcode sections below.">
  <img src="https://mintcdn.com/tenderly/XsEZlaGXYskrtN68/images/simulator-ui/18-new-simulation-form.webp?fit=max&auto=format&n=XsEZlaGXYskrtN68&q=85&s=45969741ec81c6596930bf3482cc2afb" alt="New Simulation builder showing session strip with network and block selectors, transaction parameters (From, Contract, Function), and collapsed cheatcode sections for Override gas, Fund address, Increase block, Override timestamp, State overrides, and Optional Access Lists" width="1600" height="1000" data-path="images/simulator-ui/18-new-simulation-form.webp" />
</Frame>

## Cheatcodes

Each step has a set of cheatcodes (add-ons that run immediately before the step executes). They apply to both single simulations (as step-level controls) and each step in a bundle.

| Cheatcode                 | What it does                                                                                                  |
| ------------------------- | ------------------------------------------------------------------------------------------------------------- |
| **Override gas & value**  | Set a custom gas limit and ETH value for this step.                                                           |
| **Fund address**          | Credit any address with token balances before this step runs. Add multiple entries per step.                  |
| **Increase block**        | Advance the block number by a fixed amount before this step.                                                  |
| **Override timestamp**    | Set a custom block timestamp for this step.                                                                   |
| **State overrides**       | Override contract storage slots, balance, or bytecode before this step. Add overrides for multiple contracts. |
| **Optional Access Lists** | Attach an EIP-2930 access list for gas efficiency on multi-contract calls.                                    |

<Frame caption="A step with Fund address, Override timestamp, and State overrides expanded. State overrides here sets a DAI ward storage slot to let the mint succeed.">
  <img src="https://mintcdn.com/tenderly/XsEZlaGXYskrtN68/images/simulator-ui/sim-bundle-cheatcodes-expanded.webp?fit=max&auto=format&n=XsEZlaGXYskrtN68&q=85&s=79591d61108ff410c2944c9f78adf7d3" alt="Step editor showing Fund address, Override timestamp, and State overrides cheatcodes expanded" width="1600" height="1000" data-path="images/simulator-ui/sim-bundle-cheatcodes-expanded.webp" />
</Frame>

For a detailed walkthrough of state overrides, including storage slot calculation, see [Simulation with State Overrides](/simulator-ui/state-overrides).

## See also

* [Simulation Bundles](/simulator-ui/simulation-bundles): multi-step simulations with shared state, including the 3-step DAI mint, approve, and transferFrom guide.
* [Simulation Mode](/simulator-ui/simulation-mode): persistent wallet impersonation that follows you across the dashboard and accumulates state across runs.
* [Simulation with State Overrides](/simulator-ui/state-overrides): how to override storage, balance, and bytecode.
* [Simulation Parameters](/simulator-ui/parameters): full reference for session defaults, block and transaction index selection, From addresses, and cheatcode fields.
* [Prefill the Simulator with a draft link](/simulator-ui/draft-links): build a base64url URL that opens the Simulator with a pre-filled form, for sharing from CI or tooling.
* [Editing Contract Source](/simulator-ui/editing-contract-source): test a bug fix by running a simulation against modified source code.
* [Bundled Simulations (API)](/simulations/bundled-simulations): run bundles programmatically via the `simulate-bundle` endpoint.
* [Virtual Environments](/virtual-environments/overview): when you need a full persistent RPC environment instead of a stateless bundle.
