# eth_simulateV1

> For the complete documentation index, see [llms.txt](/docs/llms.txt).

POST https://opt-mainnet.g.alchemy.com/v2/{apiKey}

Enables simulation of complex transactions and state changes without modifying the blockchain.

Reference: https://www.alchemy.com/docs/chains/op-mainnet/op-mainnet-api-endpoints/eth-simulate-v-1

## Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| Simulation object | object | Yes | The object containing all simulation details such as calls, overrides, etc. |

## Result

**Simulation result** (object[]): The result of the simulation.

## Example

### Request

```json
{
  "jsonrpc": "2.0",
  "method": "eth_simulateV1",
  "params": [
    {
      "blockStateCalls": [
        {
          "blockOverrides": {
            "baseFeePerGas": "0x9"
          },
          "stateOverrides": {
            "0xc000000000000000000000000000000000000000": {
              "balance": "0x4a817c800"
            }
          },
          "calls": [
            {
              "from": "0xc000000000000000000000000000000000000000",
              "to": "0xc000000000000000000000000000000000000001",
              "maxFeePerGas": "0xf",
              "value": "0x1"
            },
            {
              "from": "0xc000000000000000000000000000000000000000",
              "to": "0xc000000000000000000000000000000000000002",
              "maxFeePerGas": "0xf",
              "value": "0x1"
            }
          ]
        }
      ],
      "validation": true,
      "traceTransfers": true
    },
    "latest"
  ],
  "id": 1
}
```

### Response

```json
{
  "jsonrpc": "2.0",
  "result": [
    {
      "baseFeePerGas": "0x9",
      "blobGasUsed": "0x0",
      "calls": [
        {
          "returnData": "0x",
          "logs": [
            {
              "address": "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
              "topics": [
                "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
                "0x000000000000000000000000c000000000000000000000000000000000000000",
                "0x000000000000000000000000c000000000000000000000000000000000000001"
              ],
              "data": "0x0000000000000000000000000000000000000000000000000000000000000001",
              "blockNumber": "0x1530a5e",
              "transactionHash": "0x40e61ffc135d1d280646e8951141828e0fad81fd330b1c1a75454163f8c8ca34",
              "transactionIndex": "0x0",
              "blockHash": "0x105b451ea332730fe2d316d983b9a406b6d4a022ee6e83e02bcae17a94f8c87b",
              "logIndex": "0x0",
              "removed": false
            }
          ],
          "gasUsed": "0x5208",
          "status": "0x1"
        },
        {
          "returnData": "0x",
          "logs": [
            {
              "address": "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
              "topics": [
                "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
                "0x000000000000000000000000c000000000000000000000000000000000000000",
                "0x000000000000000000000000c000000000000000000000000000000000000002"
              ],
              "data": "0x0000000000000000000000000000000000000000000000000000000000000001",
              "blockNumber": "0x1530a5e",
              "transactionHash": "0x204d575c2f68b43a32423bc05491e8dafa71913e3e6d223aa5128cbd23562ecd",
              "transactionIndex": "0x1",
              "blockHash": "0x105b451ea332730fe2d316d983b9a406b6d4a022ee6e83e02bcae17a94f8c87b",
              "logIndex": "0x1",
              "removed": false
            }
          ],
          "gasUsed": "0x5208",
          "status": "0x1"
        }
      ],
      "difficulty": "0x0",
      "excessBlobGas": "0x3b80000",
      "extraData": "0x",
      "gasLimit": "0x22550dd",
      "gasUsed": "0xa410",
      "hash": "0x105b451ea332730fe2d316d983b9a406b6d4a022ee6e83e02bcae17a94f8c87b",
      "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
      "miner": "0x1f9090aae28b8a3dceadf281b0f12828e676c326",
      "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
      "nonce": "0x0000000000000000",
      "number": "0x1530a5e",
      "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
      "parentHash": "0x513a0aa73024f294cdbcb0312af0c920850035f0552d7349ebb30717de30b1cc",
      "receiptsRoot": "0x75308898d571eafb5cd8cde8278bf5b3d13c5f6ec074926de3bb895b519264e1",
      "sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
      "size": "0x29c",
      "stateRoot": "0x65ea44c8bd5f9edbf269b6446b460b3e7378abb25c78fd5d70f0e2ef59296b25",
      "timestamp": "0x67f43327",
      "transactions": [
        "0x40e61ffc135d1d280646e8951141828e0fad81fd330b1c1a75454163f8c8ca34",
        "0x204d575c2f68b43a32423bc05491e8dafa71913e3e6d223aa5128cbd23562ecd"
      ],
      "transactionsRoot": "0xd6902f31ae9d2169b77cd88611c6afd691ea5a7e604e44c71f663fda0c5d1c28",
      "uncles": [],
      "withdrawals": [],
      "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"
    }
  ],
  "id": 1
}
```

## Code Examples

### cURL

```bash
curl --request POST \
  --url https://opt-mainnet.g.alchemy.com/v2/docs-demo \
  --header 'Content-Type: application/json' \
  --data '{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "eth_simulateV1",
  "params": [
    {
      "blockStateCalls": [
        {
          "blockOverrides": {
            "baseFeePerGas": "0x9"
          },
          "stateOverrides": {
            "0xc000000000000000000000000000000000000000": {
              "balance": "0x4a817c800"
            }
          },
          "calls": [
            {
              "from": "0xc000000000000000000000000000000000000000",
              "to": "0xc000000000000000000000000000000000000001",
              "maxFeePerGas": "0xf",
              "value": "0x1"
            },
            {
              "from": "0xc000000000000000000000000000000000000000",
              "to": "0xc000000000000000000000000000000000000002",
              "maxFeePerGas": "0xf",
              "value": "0x1"
            }
          ]
        }
      ],
      "validation": true,
      "traceTransfers": true
    }
  ]
}'
```

### JavaScript

```javascript
const options = {
  method: 'POST',
  headers: {'Content-Type': 'application/json'},
  body: JSON.stringify({
    jsonrpc: '2.0',
    id: 1,
    method: 'eth_simulateV1',
    params: [
      {
        blockStateCalls: [
          {
            blockOverrides: {baseFeePerGas: '0x9'},
            stateOverrides: {'0xc000000000000000000000000000000000000000': {balance: '0x4a817c800'}},
            calls: [
              {
                from: '0xc000000000000000000000000000000000000000',
                to: '0xc000000000000000000000000000000000000001',
                maxFeePerGas: '0xf',
                value: '0x1'
              },
              {
                from: '0xc000000000000000000000000000000000000000',
                to: '0xc000000000000000000000000000000000000002',
                maxFeePerGas: '0xf',
                value: '0x1'
              }
            ]
          }
        ],
        validation: true,
        traceTransfers: true
      }
    ]
  })
};

fetch('https://opt-mainnet.g.alchemy.com/v2/docs-demo', options)
  .then(res => res.json())
  .then(res => console.log(res))
  .catch(err => console.error(err));
```

### Python

```python
import requests

url = "https://opt-mainnet.g.alchemy.com/v2/docs-demo"

payload = {
    "jsonrpc": "2.0",
    "id": 1,
    "method": "eth_simulateV1",
    "params": [
        {
            "blockStateCalls": [
                {
                    "blockOverrides": { "baseFeePerGas": "0x9" },
                    "stateOverrides": { "0xc000000000000000000000000000000000000000": { "balance": "0x4a817c800" } },
                    "calls": [
                        {
                            "from": "0xc000000000000000000000000000000000000000",
                            "to": "0xc000000000000000000000000000000000000001",
                            "maxFeePerGas": "0xf",
                            "value": "0x1"
                        },
                        {
                            "from": "0xc000000000000000000000000000000000000000",
                            "to": "0xc000000000000000000000000000000000000002",
                            "maxFeePerGas": "0xf",
                            "value": "0x1"
                        }
                    ]
                }
            ],
            "validation": True,
            "traceTransfers": True
        }
    ]
}
headers = {"Content-Type": "application/json"}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
```

### Go

```go
package main

import (
	"fmt"
	"strings"
	"net/http"
	"io"
)

func main() {

	url := "https://opt-mainnet.g.alchemy.com/v2/docs-demo"

	payload := strings.NewReader("{\n  \"jsonrpc\": \"2.0\",\n  \"id\": 1,\n  \"method\": \"eth_simulateV1\",\n  \"params\": [\n    {\n      \"blockStateCalls\": [\n        {\n          \"blockOverrides\": {\n            \"baseFeePerGas\": \"0x9\"\n          },\n          \"stateOverrides\": {\n            \"0xc000000000000000000000000000000000000000\": {\n              \"balance\": \"0x4a817c800\"\n            }\n          },\n          \"calls\": [\n            {\n              \"from\": \"0xc000000000000000000000000000000000000000\",\n              \"to\": \"0xc000000000000000000000000000000000000001\",\n              \"maxFeePerGas\": \"0xf\",\n              \"value\": \"0x1\"\n            },\n            {\n              \"from\": \"0xc000000000000000000000000000000000000000\",\n              \"to\": \"0xc000000000000000000000000000000000000002\",\n              \"maxFeePerGas\": \"0xf\",\n              \"value\": \"0x1\"\n            }\n          ]\n        }\n      ],\n      \"validation\": true,\n      \"traceTransfers\": true\n    }\n  ]\n}")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("Content-Type", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(string(body))

}
```

### Java

```java
HttpResponse<String> response = Unirest.post("https://opt-mainnet.g.alchemy.com/v2/docs-demo")
  .header("Content-Type", "application/json")
  .body("{\n  \"jsonrpc\": \"2.0\",\n  \"id\": 1,\n  \"method\": \"eth_simulateV1\",\n  \"params\": [\n    {\n      \"blockStateCalls\": [\n        {\n          \"blockOverrides\": {\n            \"baseFeePerGas\": \"0x9\"\n          },\n          \"stateOverrides\": {\n            \"0xc000000000000000000000000000000000000000\": {\n              \"balance\": \"0x4a817c800\"\n            }\n          },\n          \"calls\": [\n            {\n              \"from\": \"0xc000000000000000000000000000000000000000\",\n              \"to\": \"0xc000000000000000000000000000000000000001\",\n              \"maxFeePerGas\": \"0xf\",\n              \"value\": \"0x1\"\n            },\n            {\n              \"from\": \"0xc000000000000000000000000000000000000000\",\n              \"to\": \"0xc000000000000000000000000000000000000002\",\n              \"maxFeePerGas\": \"0xf\",\n              \"value\": \"0x1\"\n            }\n          ]\n        }\n      ],\n      \"validation\": true,\n      \"traceTransfers\": true\n    }\n  ]\n}")
  .asString();
```

### C#

```csharp
using RestSharp;


var options = new RestClientOptions("https://opt-mainnet.g.alchemy.com/v2/docs-demo");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddJsonBody("{\n  \"jsonrpc\": \"2.0\",\n  \"id\": 1,\n  \"method\": \"eth_simulateV1\",\n  \"params\": [\n    {\n      \"blockStateCalls\": [\n        {\n          \"blockOverrides\": {\n            \"baseFeePerGas\": \"0x9\"\n          },\n          \"stateOverrides\": {\n            \"0xc000000000000000000000000000000000000000\": {\n              \"balance\": \"0x4a817c800\"\n            }\n          },\n          \"calls\": [\n            {\n              \"from\": \"0xc000000000000000000000000000000000000000\",\n              \"to\": \"0xc000000000000000000000000000000000000001\",\n              \"maxFeePerGas\": \"0xf\",\n              \"value\": \"0x1\"\n            },\n            {\n              \"from\": \"0xc000000000000000000000000000000000000000\",\n              \"to\": \"0xc000000000000000000000000000000000000002\",\n              \"maxFeePerGas\": \"0xf\",\n              \"value\": \"0x1\"\n            }\n          ]\n        }\n      ],\n      \"validation\": true,\n      \"traceTransfers\": true\n    }\n  ]\n}", false);
var response = await client.PostAsync(request);

Console.WriteLine("{0}", response.Content);

```


## OpenRPC Method Specification

```yaml
name: eth_simulateV1
description: Enables simulation of complex transactions and state changes without modifying the blockchain.
params:
  - name: Simulation object
    required: true
    description: The object containing all simulation details such as calls, overrides, etc.
    schema:
      type: object
      description: One item in the eth_simulateV1 params array.
      properties:
        object:
          description: The main simulation data (overrides, calls, etc.).
          type: object
          properties:
            blockOverrides:
              type: object
              description: Overrides for block-level parameters.
              properties:
                baseFeePerGas:
                  title: hex encoded unsigned integer
                  type: string
                  pattern: ^0x([1-9a-f]+[0-9a-f]*|0)$
                  description: Hexadecimal value for the base fee per gas for the block.
                feeRecipient:
                  title: hex encoded address
                  type: string
                  pattern: ^0x[0-9a-fA-F]{40}$
                  description: Address of the fee recipient for the block proposal.
                gasLimit:
                  title: hex encoded unsigned integer
                  type: string
                  pattern: ^0x([1-9a-f]+[0-9a-f]*|0)$
                  description: Hexadecimal value that represents the maximum amount of gas that transactions are allowed to consume.
                number:
                  title: hex encoded unsigned integer
                  type: string
                  pattern: ^0x([1-9a-f]+[0-9a-f]*|0)$
                  description: Hexadecimal block number.
                prevRandao:
                  title: 32 byte hex value
                  type: string
                  pattern: ^0x[0-9a-f]{64}$
                  description: The previous value of randomness, which is used as a source of randomness for various protocol operations.
                time:
                  title: hex encoded unsigned integer
                  type: string
                  pattern: ^0x([1-9a-f]+[0-9a-f]*|0)$
                  description: Hexadecimal value representing the Unix epoch time in seconds.
            stateOverrides:
              type: object
              description: An object to override account states, keyed by address.
              additionalProperties:
                type: object
                properties:
                  balance:
                    description: Hexadecimal value representing the account balance.
                    title: hex encoded 256 bit unsigned integer
                    type: string
                    pattern: ^0x([1-9a-f]+[0-9a-f]{0,31})|0$
                  nonce:
                    title: hex encoded unsigned integer
                    type: string
                    pattern: ^0x([1-9a-f]+[0-9a-f]*|0)$
                    description: Hexadecimal temporary nonce value for the call execution.
                  code:
                    title: hex encoded bytes
                    type: string
                    pattern: ^0x[0-9a-f]*$
                    description: Bytecode to inject into the account.
                  state:
                    type: object
                    description: Storage slot overrides (bytes32 => bytes32).
                    additionalProperties:
                      title: 32 hex encoded bytes
                      type: string
                      pattern: ^0x[0-9a-f]{64}$
                  stateDiff:
                    type: object
                    description: Individual storage slot overrides (bytes32 => bytes32).
                    additionalProperties:
                      title: 32 hex encoded bytes
                      type: string
                      pattern: ^0x[0-9a-f]{64}$
                  movePrecompileToAddress:
                    title: hex encoded address
                    type: string
                    pattern: ^0x[0-9a-fA-F]{40}$
                    description: Address of precompile to relocate to this account's address
            calls:
              type: array
              description: An array of transaction call objects.
              items:
                type: object
                description: A transaction call object used during simulation.
                properties:
                  from:
                    title: hex encoded address
                    type: string
                    pattern: ^0x[0-9a-fA-F]{40}$
                    description: The sender of the transaction.
                  to:
                    title: hex encoded address
                    type: string
                    pattern: ^0x[0-9a-fA-F]{40}$
                    description: The recipient of the transaction.
                  gas:
                    title: hex encoded unsigned integer
                    type: string
                    pattern: ^0x([1-9a-f]+[0-9a-f]*|0)$
                    description: Gas limit for the transaction execution.
                  gasPrice:
                    title: hex encoded unsigned integer
                    type: string
                    pattern: ^0x([1-9a-f]+[0-9a-f]*|0)$
                    description: Gas price per unit in wei.
                  maxFeePerGas:
                    title: hex encoded unsigned integer
                    type: string
                    pattern: ^0x([1-9a-f]+[0-9a-f]*|0)$
                    description: Maximum total fee per gas the sender is willing to pay.
                  maxPriorityFeePerGas:
                    title: hex encoded unsigned integer
                    type: string
                    pattern: ^0x([1-9a-f]+[0-9a-f]*|0)$
                    description: Maximum priority fee per gas the sender is willing to pay.
                  value:
                    title: hex encoded unsigned integer
                    type: string
                    pattern: ^0x([1-9a-f]+[0-9a-f]*|0)$
                    description: Value to send with the transaction in wei.
                  data:
                    title: hex encoded bytes
                    type: string
                    pattern: ^0x[0-9a-f]*$
                    description: Transaction data.
                  input:
                    title: hex encoded bytes
                    type: string
                    pattern: ^0x[0-9a-f]*$
                    description: Transaction input data (alias for data).
            validation:
              type: boolean
              description: Whether to perform validation checks.
            traceTransfers:
              type: boolean
              description: Whether to trace value transfers.
        quantity:
          title: Block number or tag
          oneOf:
            - title: Block number
              type: string
              pattern: ^0x([1-9a-f]+[0-9a-f]*|0)$
            - title: Block tag
              type: string
              enum:
                - earliest
                - finalized
                - safe
                - latest
                - pending
              description: '`earliest`: The lowest numbered block the client has available; `finalized`: The most recent crypto-economically secure block, cannot be re-orged outside of manual intervention driven by community coordination; `safe`: The most recent block that is safe from re-orgs under honest majority and certain synchronicity assumptions; `latest`: The most recent block in the canonical chain observed by the client, this block may be re-orged out of the canonical chain even under healthy/normal conditions; `pending`: A sample next block built by the client on top of `latest` and containing the set of transactions usually taken from local mempool. Before the merge transition is finalized, any call querying for `finalized` or `safe` block MUST be responded to with `-39001: Unknown block` error'
          description: The block number or tag on which to execute the simulation.
result:
  name: Simulation result
  description: The result of the simulation.
  schema:
    type: array
    description: The top-level array returned by eth_simulateV1, containing one or more simulated blocks.
    items:
      type: object
      description: A simulated “block-like” object containing the results of the calls plus standard block fields.
      properties:
        baseFeePerGas:
          title: hex encoded unsigned integer
          type: string
          pattern: ^0x([1-9a-f]+[0-9a-f]*|0)$
        blobGasUsed:
          title: hex encoded unsigned integer
          type: string
          pattern: ^0x([1-9a-f]+[0-9a-f]*|0)$
        calls:
          type: array
          items:
            type: object
            description: The result of a single call within the block simulation.
            properties:
              returnData:
                title: hex encoded bytes
                type: string
                pattern: ^0x[0-9a-f]*$
              logs:
                type: array
                items:
                  title: log
                  type: object
                  required:
                    - transactionHash
                  additionalProperties: false
                  properties:
                    removed:
                      title: removed
                      type: boolean
                    logIndex:
                      title: log index
                      type: string
                      pattern: ^0x([1-9a-f]+[0-9a-f]*|0)$
                    transactionIndex:
                      title: transaction index
                      type: string
                      pattern: ^0x([1-9a-f]+[0-9a-f]*|0)$
                    transactionHash:
                      title: transaction hash
                      type: string
                      pattern: ^0x[0-9a-f]{64}$
                    blockHash:
                      title: block hash
                      type: string
                      pattern: ^0x[0-9a-f]{64}$
                    blockNumber:
                      title: block number
                      type: string
                      pattern: ^0x([1-9a-f]+[0-9a-f]*|0)$
                    address:
                      title: address
                      type: string
                      pattern: ^0x[0-9a-fA-F]{40}$
                    data:
                      title: data
                      type: string
                      pattern: ^0x[0-9a-f]*$
                    topics:
                      title: topics
                      type: array
                      items:
                        title: 32 hex encoded bytes
                        type: string
                        pattern: ^0x[0-9a-f]{64}$
              gasUsed:
                title: hex encoded unsigned integer
                type: string
                pattern: ^0x([1-9a-f]+[0-9a-f]*|0)$
              status:
                title: hex encoded unsigned integer
                type: string
                pattern: ^0x([1-9a-f]+[0-9a-f]*|0)$
        difficulty:
          title: hex encoded unsigned integer
          type: string
          pattern: ^0x([1-9a-f]+[0-9a-f]*|0)$
        excessBlobGas:
          title: hex encoded unsigned integer
          type: string
          pattern: ^0x([1-9a-f]+[0-9a-f]*|0)$
        extraData:
          title: hex encoded bytes
          type: string
          pattern: ^0x[0-9a-f]*$
        gasLimit:
          title: hex encoded unsigned integer
          type: string
          pattern: ^0x([1-9a-f]+[0-9a-f]*|0)$
        gasUsed:
          title: hex encoded unsigned integer
          type: string
          pattern: ^0x([1-9a-f]+[0-9a-f]*|0)$
        hash:
          title: 32 byte hex value
          type: string
          pattern: ^0x[0-9a-f]{64}$
        logsBloom:
          title: hex encoded bytes
          type: string
          pattern: ^0x[0-9a-f]*$
        miner:
          title: hex encoded address
          type: string
          pattern: ^0x[0-9a-fA-F]{40}$
        mixHash:
          title: 32 byte hex value
          type: string
          pattern: ^0x[0-9a-f]{64}$
        nonce:
          title: 8 hex encoded bytes
          type: string
          pattern: ^0x[0-9a-f]{16}$
        number:
          title: hex encoded unsigned integer
          type: string
          pattern: ^0x([1-9a-f]+[0-9a-f]*|0)$
        parentBeaconBlockRoot:
          title: 32 byte hex value
          type: string
          pattern: ^0x[0-9a-f]{64}$
        parentHash:
          title: 32 byte hex value
          type: string
          pattern: ^0x[0-9a-f]{64}$
        receiptsRoot:
          title: 32 byte hex value
          type: string
          pattern: ^0x[0-9a-f]{64}$
        sha3Uncles:
          title: 32 byte hex value
          type: string
          pattern: ^0x[0-9a-f]{64}$
        size:
          title: hex encoded unsigned integer
          type: string
          pattern: ^0x([1-9a-f]+[0-9a-f]*|0)$
        stateRoot:
          title: 32 byte hex value
          type: string
          pattern: ^0x[0-9a-f]{64}$
        timestamp:
          title: hex encoded unsigned integer
          type: string
          pattern: ^0x([1-9a-f]+[0-9a-f]*|0)$
        transactions:
          type: array
          items:
            title: 32 byte hex value
            type: string
            pattern: ^0x[0-9a-f]{64}$
        transactionsRoot:
          title: 32 byte hex value
          type: string
          pattern: ^0x[0-9a-f]{64}$
        uncles:
          type: array
          items:
            title: 32 byte hex value
            type: string
            pattern: ^0x[0-9a-f]{64}$
        withdrawals:
          type: array
          items:
            type: object
            properties:
              index:
                title: hex encoded unsigned integer
                type: string
                pattern: ^0x([1-9a-f]+[0-9a-f]*|0)$
              validatorIndex:
                title: hex encoded unsigned integer
                type: string
                pattern: ^0x([1-9a-f]+[0-9a-f]*|0)$
              address:
                title: hex encoded address
                type: string
                pattern: ^0x[0-9a-fA-F]{40}$
              amount:
                title: hex encoded unsigned integer
                type: string
                pattern: ^0x([1-9a-f]+[0-9a-f]*|0)$
        withdrawalsRoot:
          title: 32 byte hex value
          type: string
          pattern: ^0x[0-9a-f]{64}$
examples:
  - name: eth_simulateV1 example
    params:
      - name: Simulation object
        value:
          blockStateCalls:
            - blockOverrides:
                baseFeePerGas: '0x9'
              stateOverrides:
                '0xc000000000000000000000000000000000000000':
                  balance: '0x4a817c800'
              calls:
                - from: '0xc000000000000000000000000000000000000000'
                  to: '0xc000000000000000000000000000000000000001'
                  maxFeePerGas: '0xf'
                  value: '0x1'
                - from: '0xc000000000000000000000000000000000000000'
                  to: '0xc000000000000000000000000000000000000002'
                  maxFeePerGas: '0xf'
                  value: '0x1'
          validation: true
          traceTransfers: true
      - name: Block
        value: latest
    result:
      name: Simulation result
      value:
        - baseFeePerGas: '0x9'
          blobGasUsed: '0x0'
          calls:
            - returnData: 0x
              logs:
                - address: '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee'
                  topics:
                    - '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef'
                    - '0x000000000000000000000000c000000000000000000000000000000000000000'
                    - '0x000000000000000000000000c000000000000000000000000000000000000001'
                  data: '0x0000000000000000000000000000000000000000000000000000000000000001'
                  blockNumber: '0x1530a5e'
                  transactionHash: '0x40e61ffc135d1d280646e8951141828e0fad81fd330b1c1a75454163f8c8ca34'
                  transactionIndex: '0x0'
                  blockHash: '0x105b451ea332730fe2d316d983b9a406b6d4a022ee6e83e02bcae17a94f8c87b'
                  logIndex: '0x0'
                  removed: false
              gasUsed: '0x5208'
              status: '0x1'
            - returnData: 0x
              logs:
                - address: '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee'
                  topics:
                    - '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef'
                    - '0x000000000000000000000000c000000000000000000000000000000000000000'
                    - '0x000000000000000000000000c000000000000000000000000000000000000002'
                  data: '0x0000000000000000000000000000000000000000000000000000000000000001'
                  blockNumber: '0x1530a5e'
                  transactionHash: '0x204d575c2f68b43a32423bc05491e8dafa71913e3e6d223aa5128cbd23562ecd'
                  transactionIndex: '0x1'
                  blockHash: '0x105b451ea332730fe2d316d983b9a406b6d4a022ee6e83e02bcae17a94f8c87b'
                  logIndex: '0x1'
                  removed: false
              gasUsed: '0x5208'
              status: '0x1'
          difficulty: '0x0'
          excessBlobGas: '0x3b80000'
          extraData: 0x
          gasLimit: '0x22550dd'
          gasUsed: '0xa410'
          hash: '0x105b451ea332730fe2d316d983b9a406b6d4a022ee6e83e02bcae17a94f8c87b'
          logsBloom: '0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
          miner: '0x1f9090aae28b8a3dceadf281b0f12828e676c326'
          mixHash: '0x0000000000000000000000000000000000000000000000000000000000000000'
          nonce: '0x0000000000000000'
          number: '0x1530a5e'
          parentBeaconBlockRoot: '0x0000000000000000000000000000000000000000000000000000000000000000'
          parentHash: '0x513a0aa73024f294cdbcb0312af0c920850035f0552d7349ebb30717de30b1cc'
          receiptsRoot: '0x75308898d571eafb5cd8cde8278bf5b3d13c5f6ec074926de3bb895b519264e1'
          sha3Uncles: '0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347'
          size: '0x29c'
          stateRoot: '0x65ea44c8bd5f9edbf269b6446b460b3e7378abb25c78fd5d70f0e2ef59296b25'
          timestamp: '0x67f43327'
          transactions:
            - '0x40e61ffc135d1d280646e8951141828e0fad81fd330b1c1a75454163f8c8ca34'
            - '0x204d575c2f68b43a32423bc05491e8dafa71913e3e6d223aa5128cbd23562ecd'
          transactionsRoot: '0xd6902f31ae9d2169b77cd88611c6afd691ea5a7e604e44c71f663fda0c5d1c28'
          uncles: []
          withdrawals: []
          withdrawalsRoot: '0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421'
```
