# eth_simulateV1：参数、返回值与 CU

> 原文地址: https://docs.blockvectra.com/zh/api/json-rpc/methods/eth_simulateV1/

## 用途

在指定区块状态上批量模拟执行调用或交易序列，无需广播上链。 ([官方文档](https://ethereum.github.io/execution-apis/api/methods/eth_simulateV1))

## 计算单位（CU）与价格

- 单次调用 CU: 20 CU
- 每百万次调用价格（USD）: $2.00

## 参数

| 参数名 | 类型 | 说明 |
| --- | --- | --- |
| `payload` | `object` | 模拟载荷对象：blockStateCalls（必填）为模拟区块数组，每个区块可含 blockOverrides（区块头字段覆盖）、stateOverrides（账户状态覆盖）与 calls（该区块要执行的调用或交易数组）；validation（布尔，默认 false）为 true 时执行与普通 EVM 相同的大部分校验，为 false 时按 eth_call 处理；traceTransfers（布尔，默认 false）为 true 时把 ETH 转账作为 ERC-20 Transfer 事件加入日志；returnFullTransactions（布尔）为 true 时返回完整交易对象，否则只返回哈希。 |
| `block` | `QUANTITY\|TAG\|HASH` | 可选，模拟所依据的区块号（0x 十六进制数量）、区块哈希或区块标签；默认 'latest'。 |

## 返回值

- **类型**: `ARRAY`
- **说明**: EthSimulateResult：模拟区块对象数组，每个区块包含 number、hash、parentHash、timestamp、gasLimit、gasUsed、baseFeePerGas、feeRecipient 等区块头字段以及 calls 数组；每个调用含 status（0x1 成功、0x0 失败）、returnData、gasUsed、maxUsedGas，成功时含 logs，失败时含 error。

## 注意事项

开放情况取决于链的方法策略（methods.allow）。未开启该方法的链将返回 -32601 方法未开放（不计费）。

## 请求示例

```bash
export BLOCKVECTRA_API_KEY=rgw_your_api_key

curl -X POST "https://api.blockvectra.com/v1/robinhood_mainnet" \
  -H 'Content-Type: application/json' \
  -H "x-api-key: $BLOCKVECTRA_API_KEY" \
  -d '{
    "jsonrpc": "2.0",
    "method": "eth_simulateV1",
    "params": [
      {
        "blockStateCalls": [
          {
            "calls": [
              {
                "to": "<toAddress>",
                "data": "<callData>"
              }
            ]
          }
        ]
      },
      "latest"
    ],
    "id": 1
  }'
```

## 可用链

除以下链外，其余支持链均可用：BNB Smart Chain (bsc_mainnet)、以太坊 (eth_mainnet)、Ethereum Sepolia (eth_sepolia)、HyperEVM (hyperevm_mainnet)。
