# eth_simulateV1 : paramètres, retours et CU

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

## Aperçu

Simule une séquence d'appels ou de transactions sur l'état d'un bloc sans les diffuser sur le réseau. ([Documentation officielle](https://ethereum.github.io/execution-apis/api/methods/eth_simulateV1))

## Unités de calcul (CU) et tarification

- CU par appel: 20 CU
- Prix par million d'appels (USD): $2.00

## Paramètres

| Paramètre | Type | Description |
| --- | --- | --- |
| `payload` | `object` | Objet de charge utile de simulation : blockStateCalls (obligatoire) est un tableau de blocs simulés, chacun avec des champs facultatifs blockOverrides (remplacements d'en-tête de bloc), stateOverrides (remplacements d'état de compte) et calls (appels ou transactions à exécuter dans ce bloc) ; validation (booléen, défaut false) exécute la plupart des vérifications standard d'une EVM normale lorsqu'il vaut true et se comporte comme eth_call lorsqu'il vaut false ; traceTransfers (booléen, défaut false) ajoute les transferts d'ETH aux logs sous forme d'événements Transfer ERC-20 ; returnFullTransactions (booléen) renvoie les objets de transaction complets lorsqu'il vaut true, ou seulement les hachages sinon. |
| `block` | `QUANTITY\|TAG\|HASH` | Numéro de bloc facultatif (quantité hexadécimale préfixée par 0x), hachage de bloc ou balise de bloc sur lequel la simulation s'exécute ; valeur par défaut : 'latest'. |

## Valeur de retour

- **Type**: `ARRAY`
- **Description**: EthSimulateResult : tableau d'objets de bloc simulés, chacun contenant des champs d'en-tête tels que number, hash, parentHash, timestamp, gasLimit, gasUsed, baseFeePerGas et feeRecipient ainsi qu'un tableau calls ; chaque appel contient status (0x1 succès, 0x0 échec), returnData, gasUsed et maxUsedGas, avec logs en cas de succès ou error en cas d'échec.

## Remarques

La disponibilité dépend de la politique de méthodes de la chaîne (methods.allow). Les chaînes n'activant pas cette méthode renvoient -32601 method not available (non facturé).

## Exemple de requête

```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
  }'
```

## Chaînes prises en charge

Disponible sur toutes les chaînes prises en charge sauf : BNB Smart Chain (bsc_mainnet), Ethereum (eth_mainnet), Ethereum Sepolia (eth_sepolia), HyperEVM (hyperevm_mainnet).
