# debug_traceTransaction: parameters, returns and CU

> Original page: https://docs.blockvectra.com/en/api/json-rpc/methods/debug_traceTransaction/

## Summary

Reconstruct and replay the execution of a transaction to produce an execution trace. ([Official documentation](https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-debug#debugtracetransaction))

## Compute units (CU) and pricing

- CU per call: 100 CU
- Price per 1M calls (USD): $10.00

## Parameters

| Parameter | Type | Description |
| --- | --- | --- |
| `transactionHash` | `HASH` | 32-byte transaction hash to trace as 0x-prefixed hex. |
| `options` | `object` | Trace options object (optional): tracer is callTracer, flatCallTracer, prestateTracer, 4byteTracer or noopTracer, omitted uses the default struct logger, and any other value returns -32602 tracer not allowed; tracerConfig passes tracer-specific options (such as onlyTopCall and withLog for callTracer, diffMode for prestateTracer); timeout is at most 30s; reexec sets the block number to re-execute the transaction at. |

## Returns

- **Type**: `OBJECT`
- **Description**: Execution trace result object matching the requested tracer (CallFrame tree for callTracer, or struct logs by default).

## Notes

The target transaction's block must be within the chain's state window (state_window_blocks); out-of-window requests return -32011 (not billed).

## Request example

```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_traceTransaction",
    "params": [
      "<transactionHash>",
      {
        "tracer": "callTracer"
      }
    ],
    "id": 1
  }'
```

## Supported chains

Available on all supported chains except: Base (base_mainnet), BNB Smart Chain (bsc_mainnet), Ethereum Sepolia (eth_sepolia), HyperEVM (hyperevm_mainnet).
