# debug_traceCall：参数、返回值与 CU

> 原文地址: https://docs.blockvectra.com/zh/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)。
