# debug_traceCall：參數、傳回值與 CU

> Source: https://docs.blockvectra.com/zh-hant/api/json-rpc/methods/debug_traceCall/

## 用途

在指定區塊狀態上模擬執行呼叫，並產生該呼叫的執行追蹤（Trace）資料。 ([官方文件](https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-debug#debugtracecall))

## 計算單位（CU）與價格

- 單次呼叫 CU: 100 CU
- 每百萬次呼叫價格（USD）: $10.00

## 參數

| 參數名 | 類型 | 說明 |
| --- | --- | --- |
| `call` | `object` | 交易呼叫物件，包含 from、to、data、gas、gasPrice、value 等欄位。 |
| `block` | `QUANTITY\|TAG\|HASH` | 執行追蹤所依據的區塊號（0x 十六進位數量）、區塊雜湊，或標籤 'latest' / 'pending'；使用 safe、finalized、earliest 回傳 -32011。 |
| `options` | `object` | 追蹤選項物件（可選）：tracer 為 callTracer、flatCallTracer、prestateTracer、4byteTracer 或 noopTracer，省略則使用預設 struct logger，其他值回傳 -32602 tracer not allowed；tracerConfig 傳入該 tracer 的設定（如 callTracer 的 onlyTopCall、withLog，prestateTracer 的 diffMode）；timeout 最長 30s；reexec 指定重放交易時覆蓋的區塊號；另支援 stateOverrides、blockOverrides 與 txIndex。 |

## 傳回值

- **類型**: `OBJECT`
- **說明**: 執行追蹤結果物件，格式取決於所選 tracer（使用 callTracer 時為 CallFrame 呼叫樹）。

## 注意事項

目標區塊須在鏈的狀態保留視窗（state_window_blocks）內，超出視窗回傳 -32011（不計費）。

## 請求範例

```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": "debug_traceCall",
    "params": [
      {
        "to": "<toAddress>",
        "data": "<callData>"
      },
      "latest",
      {
        "tracer": "callTracer"
      }
    ],
    "id": 1
  }'
```

## 可用鏈

除以下鏈外，其餘支援鏈均可用：Base (base_mainnet)、BNB Smart Chain (bsc_mainnet)、Ethereum Sepolia (eth_sepolia)、HyperEVM (hyperevm_mainnet)。
