> ## Documentation Index
> Fetch the complete documentation index at: https://daehan-base.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# eth_simulateV1

> 현재 사전 확인된 Flashblock 상태를 기준으로 하나 이상의 트랜잭션 번들을 시뮬레이션합니다. Flashblocks 엔드포인트에서만 사용할 수 있습니다.

현재 사전 확인된 Flashblock 상태를 기준으로 하나 이상의 트랜잭션 번들을 시뮬레이션합니다. 상태 오버라이드, 멀티블록 시뮬레이션, 선택적 전송 추적을 지원합니다.

<Info>
  Flashblocks 엔드포인트에서만 사용할 수 있습니다: `https://mainnet-preconf.base.org` / `https://sepolia-preconf.base.org`.
</Info>

## 파라미터

<ParamField body="simulationPayload" type="object" required>
  시뮬레이션 설정입니다.

  <Expandable title="시뮬레이션 payload 필드">
    <ParamField body="blockStateCalls" type="array" required>
      블록 상태 호출 객체 배열입니다. 각 객체는 시뮬레이션할 블록 하나를 나타냅니다.

      <Expandable title="블록 상태 호출 필드">
        <ParamField body="calls" type="array">
          이 블록 안에서 시뮬레이션할 트랜잭션 호출 객체 배열입니다.
        </ParamField>

        <ParamField body="stateOverrides" type="object">
          시뮬레이션 전에 적용할 주소별 상태 오버라이드입니다(예: balance, nonce, code, storage). 선택 사항입니다.
        </ParamField>

        <ParamField body="blockOverrides" type="object">
          블록 수준 오버라이드입니다(예: `number`, `timestamp`). 선택 사항입니다.
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField body="traceTransfers" type="boolean">
      `true`이면 ETH 전송 이벤트를 결과의 로그에 포함합니다. 기본값은 `false`입니다.
    </ParamField>

    <ParamField body="validation" type="boolean">
      `true`이면 트랜잭션 검증(nonce, balance)을 강제합니다. 기본값은 `false`입니다.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="blockParameter" type="string" required>
  현재 Flashblock 상태를 기준으로 시뮬레이션하려면 `"pending"`을 사용합니다.
</ParamField>

## 반환값

<ResponseField name="result" type="array">
  `blockStateCalls`의 각 항목에 대응하는 시뮬레이션 블록 결과 배열입니다.

  <Expandable title="블록 결과 필드">
    <ResponseField name="calls" type="array">
      개별 호출 결과 배열입니다.

      <Expandable title="호출 결과 필드">
        <ResponseField name="status" type="string">성공이면 `"0x1"`, 실패이면 `"0x0"`입니다.</ResponseField>
        <ResponseField name="gasUsed" type="string">16진수 정수 형태의 사용 가스량입니다.</ResponseField>
        <ResponseField name="returnData" type="string">16진수로 인코딩된 반환 데이터입니다.</ResponseField>
        <ResponseField name="logs" type="array">발생한 로그입니다(`traceTransfers`가 `true`이면 ETH 전송 로그 포함).</ResponseField>
        <ResponseField name="error" type="string">호출이 실패한 경우의 revert 사유입니다. 선택 사항입니다.</ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

## 예시

<CodeGroup>
  ```bash cURL theme={null}
  curl https://sepolia-preconf.base.org \
    -X POST \
    -H "Content-Type: application/json" \
    -d '{
      "jsonrpc": "2.0",
      "method": "eth_simulateV1",
      "params": [
        {
          "blockStateCalls": [
            {
              "calls": [{"to": "0x...", "data": "0x..."}],
              "stateOverrides": {}
            }
          ],
          "traceTransfers": true,
          "validation": true
        },
        "pending"
      ],
      "id": 1
    }'
  ```

  ```json Response theme={null}
  {
    "jsonrpc": "2.0",
    "id": 1,
    "result": [
      {
        "calls": [
          {
            "status": "0x1",
            "gasUsed": "0x5208",
            "returnData": "0x",
            "logs": []
          }
        ]
      }
    ]
  }
  ```
</CodeGroup>
