# debug_traceCall: 매개변수, 반환값 및 CU

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

## 개요

지정된 블록 상태를 기반으로 eth_call을 실행하고 실행 트레이스(Trace)를 생성합니다. ([공식 문서](https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-debug#debugtracecall))

## 연산 단위(CU) 및 요금

- 호출당 CU: 100 CU
- 1M 호출당 가격(USD): $10.00

## 파라미터

| 파라미터 | 타입 | 설명 |
| --- | --- | --- |
| `call` | `object` | from, to, data, gas, gasPrice, value를 포함하는 트랜잭션 호출 객체. |
| `block` | `QUANTITY\|TAG\|HASH` | 추적 기준이 되는 블록 번호(0x 접두사 16진수 수량), 블록 해시 또는 'latest' / 'pending' 태그. safe, finalized 및 earliest는 -32011을 반환합니다. |
| `options` | `object` | 트레이스 옵션 객체(선택 사항): tracer는 callTracer, flatCallTracer, prestateTracer, 4byteTracer 또는 noopTracer이며, 생략 시 기본 struct 로거를 사용하고 다른 값은 -32602 tracer not allowed를 반환합니다. tracerConfig는 트레이서별 옵션을 전달합니다(예: callTracer의 onlyTopCall 및 withLog, prestateTracer의 diffMode). timeout은 최대 30초입니다. reexec는 트랜잭션을 재실행할 블록 번호를 설정합니다. stateOverrides, blockOverrides 및 txIndex도 지원됩니다. |

## 반환값

- **타입**: `OBJECT`
- **설명**: 요청된 트레이서와 일치하는 실행 트레이스 결과 객체(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).
