# eth_simulateV1: parâmetros, retornos e CU

> Source: https://docs.blockvectra.com/pt-br/api/json-rpc/methods/eth_simulateV1/

## Visão geral

Simule uma sequência de chamadas ou transações no estado de um bloco sem transmiti-las à rede. ([Documentação oficial](https://ethereum.github.io/execution-apis/api/methods/eth_simulateV1))

## Unidades de computação (CU) e preços

- CU por chamada: 20 CU
- Preço por 1M de chamadas (USD): $2.00

## Parâmetros

| Parâmetro | Tipo | Descrição |
| --- | --- | --- |
| `payload` | `object` | Objeto de payload da simulação: blockStateCalls (obrigatório) é um array de blocos simulados, cada um com blockOverrides opcionais (substituições de cabeçalho de bloco), stateOverrides (substituições de estado de conta) e calls (as chamadas ou transações a executar nesse bloco); validation (booleano, padrão false) executa a maioria das validações padrão da EVM quando true e comporta-se como eth_call quando false; traceTransfers (booleano, padrão false) adiciona transferências de ETH aos logs como eventos Transfer ERC-20; returnFullTransactions (booleano) retorna objetos completos de transação quando true, ou apenas hashes caso contrário. |
| `block` | `QUANTITY\|TAG\|HASH` | Número de bloco opcional (quantidade hexadecimal com prefixo 0x), hash de bloco ou tag de bloco contra o qual a simulação é executada; o padrão é 'latest'. |

## Retornos

- **Tipo**: `ARRAY`
- **Descrição**: EthSimulateResult: um array de objetos de bloco simulados, cada um contendo campos de cabeçalho como number, hash, parentHash, timestamp, gasLimit, gasUsed, baseFeePerGas e feeRecipient, além de um array calls; cada chamada possui status (0x1 sucesso, 0x0 falha), returnData, gasUsed e maxUsedGas, com logs em caso de sucesso ou error em caso de falha.

## Observações

A disponibilidade depende da política de métodos da rede (methods.allow). Redes onde este método não está ativado retornam -32601 method not available (não cobrado).

## Exemplo de requisição

```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": "eth_simulateV1",
    "params": [
      {
        "blockStateCalls": [
          {
            "calls": [
              {
                "to": "<toAddress>",
                "data": "<callData>"
              }
            ]
          }
        ]
      },
      "latest"
    ],
    "id": 1
  }'
```

## Redes suportadas

Disponível em todas as redes compatíveis, exceto: BNB Smart Chain (bsc_mainnet), Ethereum (eth_mainnet), Ethereum Sepolia (eth_sepolia), HyperEVM (hyperevm_mainnet).
