# eth_simulateV1：參數、傳回值與 CU

> Source: https://docs.blockvectra.com/zh-hant/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)。
