> **Can't find what you're looking for?** Use `search_docs` on the docs MCP server at `https://www.getfoundry.sh/api/mcp` to find what you need.
>
> **Have feedback?** Use `submit_feedback` on the same MCP server.

*Generated from `cast safe simulate --help`; see [CLI reference versions](/reference/versions). Regenerate this page instead of editing it directly.*

## cast safe simulate

Simulate a proposed Safe transaction without requiring owner signatures.

This simulates the inner CALL or DELEGATECALL in the Safe's context. It does not
validate
the Safe nonce, owner signatures, threshold, or guard hooks. Reimbursed
transactions
(`gasPrice > 0`) are rejected because SimulateTxAccessor does not enforce
`safeTxGas`.

:::terminal
```bash
$ cast safe simulate --help
```

```txt
Usage: cast safe simulate [OPTIONS] --from <ADDRESS> <SAFE> <SAFE_TX_HASH>

Arguments:
  <SAFE>
          Safe account address

  <SAFE_TX_HASH>
          Safe transaction hash from the Transaction Service

Options:
      --from <ADDRESS>
          Address that will execute the Safe transaction. Used as the
          simulation's tx.origin

          [env: ETH_FROM=]

      --accessor <ACCESSOR>
          SimulateTxAccessor address

          [default: 0x3d4BA2E0884aa488718476ca2FB8Efc291A46199]

      --service-url <SERVICE_URL>
          Safe Transaction Service URL. Inferred from the RPC chain ID when
          omitted. The `/api` suffix is optional

          [env: SAFE_TRANSACTION_SERVICE_URL=]

      --api-key <API_KEY>
          Safe Transaction Service API key

          [env: SAFE_API_KEY=]

  -h, --help
          Print help (see a summary with '-h')

  -j, --threads <THREADS>
          Number of threads to use. Specifying 0 defaults to the number of
          logical cores

          [alias: --jobs]

      --profile <PROFILE>
          The configuration profile to use

Rpc options:
  -r, --rpc-url <URL>
          The RPC endpoint

          [alias: --fork-url]

  -k, --insecure
          Allow insecure RPC connections (accept invalid HTTPS certificates).

          When the provider's inner runtime transport variant is HTTP, this
          configures the reqwest client to accept invalid certificates.

      --rpc-timeout <RPC_TIMEOUT>
          Timeout for the RPC request in seconds.

          The specified timeout will be used to override the default timeout for
          RPC requests.

          Default value: 45

          [env: ETH_RPC_TIMEOUT=]

      --no-proxy
          Disable automatic proxy detection.

          Use this in sandboxed environments (e.g., Cursor IDE sandbox, macOS
          App Sandbox) where system proxy detection causes crashes. When
          enabled, HTTP_PROXY/HTTPS_PROXY environment variables and system proxy
          settings will be ignored.

      --compute-units-per-second <CUPS>
          Sets the number of assumed available compute units per second for this
          provider.

          default value: 330

          See also
          [https://docs.alchemy.com/reference/compute-units#what-are-cups-compute-units-per-second](https://docs.alchemy.com/reference/compute-units#what-are-cups-compute-units-per-second)

      --no-rpc-rate-limit
          Disables rate limiting for this node's provider.

          See also
          [https://docs.alchemy.com/reference/compute-units#what-are-cups-compute-units-per-second](https://docs.alchemy.com/reference/compute-units#what-are-cups-compute-units-per-second)

          [alias: --no-rate-limit]

      --flashbots
          Use the Flashbots RPC URL with fast mode
          ([https://rpc.flashbots.net/fast](https://rpc.flashbots.net/fast)).

          This shares the transaction privately with all registered builders.

          See:
          [https://docs.flashbots.net/flashbots-protect/quick-start#faster-transactions](https://docs.flashbots.net/flashbots-protect/quick-start#faster-transactions)

      --jwt-secret <JWT_SECRET>
          JWT Secret for the RPC endpoint.

          The JWT secret will be used to create a JWT for an RPC. For example,
          the following can be used to simulate a CL `engine_forkchoiceUpdated`
          call:

          cast rpc --jwt-secret <JWT_SECRET> engine_forkchoiceUpdatedV2
          '["0x6bb38c26db65749ab6e472080a3d20a2f35776494e72016d1e339593f21c59bc",
          "0x6bb38c26db65749ab6e472080a3d20a2f35776494e72016d1e339593f21c59bc",
          "0x6bb38c26db65749ab6e472080a3d20a2f35776494e72016d1e339593f21c59bc"]'

          [env: ETH_RPC_JWT_SECRET=]

      --rpc-headers <RPC_HEADERS>
          Specify custom headers for RPC requests

          [env: ETH_RPC_HEADERS=]

      --curl
          Print the equivalent curl command instead of making the RPC request

Display options:
      --color <COLOR>
          The color of the log messages

          Possible values:
          - auto:   Intelligently guess whether to use color output (default)
          - always: Force color output
          - never:  Force disable color output

      --json
          Format log messages as JSON

      --md
          Format log messages as Markdown

  -q, --quiet
          Do not print log messages

  -v, --verbosity...
          Verbosity level of the log messages.

          Pass multiple times to increase the verbosity (e.g. -v, -vv, -vvv).

          Depending on the context the verbosity levels have different meanings.

          For example, the verbosity levels of the EVM are:
          - 2 (-vv): Print logs for all tests.
          - 3 (-vvv): Print execution traces for failing tests.
          - 4 (-vvvv): Print execution traces for all tests, and setup traces
          for failing tests.
          - 5 (-vvvvv): Print execution and setup traces for all tests,
          including storage changes and
            backtraces with line numbers.
```
:::
