> ## Documentation Index
> Fetch the complete documentation index at: https://docs.uniblock.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# debug_traceCallMany

> Executes a list of bundles (a bundle is a collection of transactions), without creating transactions on the blockchain. Returns their traces.

### Parameters

<ParamField query="chainId" type="string" default="100" required>
  Unique identifier for a blockchain network.
</ParamField>

<ParamField body="id" type="number" default={1} required>
  Request identifier used to match responses.
</ParamField>

<ParamField body="jsonrpc" type="string" default="2.0" required>
  JSON-RPC version.
</ParamField>

<ParamField body="method" type="string" default="debug_traceCallMany" required>
  JSON-RPC method name.
</ParamField>

<ParamField body="params" type="object" default={[[],{},{},5000,{}]} placeholder="[[],{},{},5000,{}]" required>
  Parameters for debug\_traceCallMany. 1. Bundles (required): an array of bundles. Each bundle is an object with:    - transactions: an array of transaction objects (each with fields such as from, to, value, data),    - blockOverride (optional): an object with overrides (blockNumber, blockHash mapping, coinbase, timestamp, difficulty, gasLimit, baseFee). 2. Simulation context (required): an object with blockIdentifier (a hex block number or one of "latest", "earliest", "pending", "safe", "finalized") and transactionIndex (integer, default -1). 3. State overrides (optional): an object mapping addresses to state override objects (here, at least a balance override as a hex string). 4. Timeout (optional): integer timeout in milliseconds (default 5000). 5. Trace type (optional): an object with tracer (string, enum: callTracer, prestateTracer), tracerConfig (object), and onlyTopCall (boolean).

  Positional parameters for <code>debug\_traceCallMany</code>:

  <ul>
    <li><code>params\[0]</code>: List of bundles. Each bundle is an object with transactions and an optional blockOverride.</li>
    <li><code>params\[1]</code>: Simulation context. Contains blockIdentifier (a hex block number or tag) and transactionIndex (default -1).</li>
    <li><code>params\[2]</code>: Optional state overrides: a mapping from address to an override object (e.g. balance).</li>
    <li><code>params\[3]</code>: Simulation timeout in milliseconds.</li>
    <li><code>params\[4]</code>: Tracer configuration (optional). Contains tracer type, optional tracerConfig, and onlyTopCall flag.</li>
  </ul>
</ParamField>

### Returns

<ResponseField name="result" type="array">
  Array of trace responses corresponding to each simulated bundle. Each trace response is one of: callTracer response, prestateTracer response, or opcode (struct) response.

  <Expandable title="items">
    <ResponseField name="items[]" type="oneOf">
      CallTracer response.

      <Expandable title="variants">
        <ResponseField name="variant1" type="object">
          CallTracer response.

          <Expandable title="properties">
            <ResponseField name="type" type="string">
              Type of the call.
            </ResponseField>

            <ResponseField name="from" type="string">
              Sender address.
            </ResponseField>

            <ResponseField name="to" type="string">
              Recipient address.
            </ResponseField>

            <ResponseField name="gas" type="string">
              Gas provided by the sender.
            </ResponseField>

            <ResponseField name="transactionValue" type="string">
              Actual value deducted from the sender (per gas).
            </ResponseField>

            <ResponseField name="gasUsed" type="string">
              Total gas used by the call.
            </ResponseField>

            <ResponseField name="input" type="string">
              Input data (4-byte method selector).
            </ResponseField>

            <ResponseField name="output" type="string">
              Return value (hex).
            </ResponseField>

            <ResponseField name="error" type="string">
              Error message if execution failed.
            </ResponseField>

            <ResponseField name="calls" type="array">
              List of sub-calls (nested call frames).

              <Expandable title="items">
                <ResponseField name="items[]" type="object">
                  A nested call frame with additional details.
                </ResponseField>
              </Expandable>
            </ResponseField>

            <ResponseField name="revertReason" type="string">
              Revert reason, if available.
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="variant2" type="object">
          PrestateTracer response.

          <Expandable title="properties">
            <ResponseField name="contractAddress" type="string">
              Smart contract address associated with the result.
            </ResponseField>

            <ResponseField name="balance" type="string">
              Balance of the contract in wei (hex).
            </ResponseField>

            <ResponseField name="code" type="string">
              Bytecode of the contract (hex).
            </ResponseField>

            <ResponseField name="nonce" type="integer">
              Nonce of the contract account.
            </ResponseField>

            <ResponseField name="storage" type="object">
              Mapping of storage slots (hex keys and values).
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="variant3" type="object">
          Opcode (struct) trace response.

          <Expandable title="properties">
            <ResponseField name="failed" type="boolean">
              Indicates whether the execution failed.
            </ResponseField>

            <ResponseField name="gas" type="string">
              Total consumed gas (hex).
            </ResponseField>

            <ResponseField name="returnValue" type="string">
              Return value of the executed call (hex).
            </ResponseField>

            <ResponseField name="structLogs" type="array">
              Array of execution step logs.

              <Expandable title="items">
                <ResponseField name="items[]" type="object">
                  <Expandable title="properties">
                    <ResponseField name="pc" type="integer">
                      Program counter.
                    </ResponseField>

                    <ResponseField name="op" type="string">
                      Operation name.
                    </ResponseField>

                    <ResponseField name="gas" type="string">
                      Available gas at this step.
                    </ResponseField>

                    <ResponseField name="gasCost" type="string">
                      Gas cost of the operation.
                    </ResponseField>

                    <ResponseField name="depth" type="integer">
                      Call depth.
                    </ResponseField>

                    <ResponseField name="stack" type="array">
                      Stack values at this step.

                      <Expandable title="items">
                        <ResponseField name="items[]" type="string" />
                      </Expandable>
                    </ResponseField>

                    <ResponseField name="storage" type="object">
                      Storage state at this step.
                    </ResponseField>

                    <ResponseField name="refund" type="string">
                      Refund amount (hex).
                    </ResponseField>

                    <ResponseField name="error" type="string">
                      Error message, if any.
                    </ResponseField>

                    <ResponseField name="memory" type="array">
                      Memory snapshot at this step (array of hex strings).

                      <Expandable title="items">
                        <ResponseField name="items[]" type="string" />
                      </Expandable>
                    </ResponseField>
                  </Expandable>
                </ResponseField>
              </Expandable>
            </ResponseField>
          </Expandable>
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

<RequestExample>
  ```bash Curl theme={null}
  curl --request POST \
    --url https://api.uniblock.dev/uni/v1/json-rpc?chainId=100 \
    --header 'content-type: application/json' \
    --data '{
      "id": 1,
      "jsonrpc": "2.0",
      "method": "debug_traceCallMany",
      "params": [
        [],
        {},
        {},
        5000,
        {}
      ]
    }'
  ```
</RequestExample>

<ResponseExample>
  ```json Success theme={null}
  {
    "jsonrpc": "2.0",
    "id": 1,
    "result": []
  }
  ```
</ResponseExample>
