> For the complete documentation index, see [llms.txt](https://docs.chainrpc.io/chainrpc/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.chainrpc.io/chainrpc/networks/ethereum/json-rpc-methods/eth_call.md).

# eth\_call

Executes a new message call immediately without creating a transaction on the block chain.

{% hint style="warning" %}
To prevent API abuse, the `gas` parameter in [`eth_estimateGas`](broken://pages/YPZtPjpGxmgxdQO9V6cb) and [`eth_call`](broken://pages/TJoPcq7M2OaKW7DktRjq) is capped at 10x (1000%) the current block gas limit. You can recreate this behavior in your local test environment (Ganache, Besu, Geth, or other client) via the `rpc.gascap` command-line option.
{% endhint %}

### REQUEST

```
POST https://<network>.chainrpc.io/v3/YOUR-API-KEY
```

#### HEADERS

```
Content-Type: application/json
```

#### REQUEST PAYLOAD

* `TRANSACTION CALL OBJECT` *\[required]*
  * `from`: 20 Bytes - The address the transaction is sent from.
  * `to`: 20 Bytes - The address the transaction is directed to.
  * `gas`: *\[optional]* hexadecimal value of the gas provided for the transaction execution. `eth_call` consumes zero gas, but this parameter may be needed by some executions.
  * `gasPrice`: *\[optional]* hexadecimal value of the gasPrice used for each paid gas.
  * `maxPriorityFeePerGas`: *\[optional]* Maximum fee, in Wei, the sender is willing to pay per gas above the base fee. See [EIP-1559 transactions](broken://pages/aUFKFlNvRU6UyYoTAWv2#eip-1559-transactions).
  * `maxFeePerGas`: *\[optional]* Maximum total fee (base fee + priority fee), in Wei, the sender is willing to pay per gas. See [EIP-1559 transactions](broken://pages/aUFKFlNvRU6UyYoTAWv2#eip-1559-transactions).
  * `value`: *\[optional]* hexadecimal value of the value sent with this transaction.
  * `data`: *\[optional]* Hash of the method signature and encoded parameters. See the [Ethereum contract ABI specification](https://docs.soliditylang.org/en/latest/abi-spec.html).
* `BLOCK PARAMETER` *\[required]* - a hexadecimal block number, or the string "latest", "earliest" or "pending". See the [default block parameter](https://github.com/ethereum/wiki/wiki/JSON-RPC#the-default-block-parameter).

#### EXAMPLE

```bash
## JSON-RPC over HTTPS POST
## Replace YOUR-API-KEY with an API key from your chainRPC Dashboard
## You can also replace mainnet with a different supported network
curl https://eth.chainrpc.io/v3/YOUR-API-KEY \
    -X POST \
    -H "Content-Type: application/json" \
    -d '{"jsonrpc":"2.0","method":"eth_call","params": [{"from": "0xb60e8dd61c5d32be8058bb8eb970870f07233155","to": "0xd46e8dd67c5d32be8058bb8eb970870f07244567","gas": "0x76c0","gasPrice": "0x9184e72a000","value": "0x9184e72a","data": "0xd46e8dd67c5d32be8d46e8dd67c5d32be8058bb8eb970870f072445675058bb8eb970870f072445675"}, "latest"],"id":1}'

## JSON-RPC over WSS
## Replace YOUR-API-KEY with an API key from your Infura Dashboard
## You can also replace mainnet with a different supported network
wscat -c wss://eth.chainrpc.io/v3/YOUR-API-KEY
>{"jsonrpc":"2.0","method":"eth_call","params": [{"from": "0xb60e8dd61c5d32be8058bb8eb970870f07233155","to": "0xd46e8dd67c5d32be8058bb8eb970870f07244567","gas": "0x76c0","gasPrice": "0x9184e72a000","value": "0x9184e72a","data": "0xd46e8dd67c5d32be8d46e8dd67c5d32be8058bb8eb970870f072445675058bb8eb970870f072445675"}, "latest"],"id":1}
```

### RESPONSE

#### RESULT FIELDS

* `RETURN VALUE` - the return value of the executed contract method.

#### BODY

```json
{
    "jsonrpc": "2.0",
    "id": 1,
    "result": "0x"
}
```

On Mainnet, Rinkeby, Ropsten and Goerli, if this call causes the EVM to execute a `REVERT` operation, an error response of the following form is returned, with the revert reason pre-decoded as a string:

```json
{
    "jsonrpc": "2.0",
    "id": 1,
    "error": {
        "code": 3,
        "message": "execution reverted: Dai/insufficient-balance",
        "data": "0x08c379a0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000184461692f696e73756666696369656e742d62616c616e63650000000000000000"
    }
}
```

On Kovan, the actual revert reason is instead returned encoded as part of the `data` field in the response.

```json
{
    "jsonrpc": "2.0",
    "id": 1,
    "error": {
        "code": -32015,
        "data": "Reverted 0x08c379a0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000204f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572",
        "message": "VM execution error."
    }
}
```
