Skip to main content

eth_call

POST

Execute a read-only contract method without creating or broadcasting a transaction. Primarily used to read the current state of a smart contract. No state changes occur as a result of the call.

🚧 Response taking too long? Response time may vary based on function complexity!

When executing a smart contract function at a specific state, response time can increase depending on the complexity of the function.

For faster responses, optimize the function being executed and minimize the execution result.

param[0]
callObjectobjectrequired
Call object for simulating a transaction. May include:
  • from: Sender address as a string.
  • to: Recipient address as a string.
  • gas: Gas limit as a hex string. Use 0x0 for smart contract calls.
  • gasPrice: Gas price per unit as a hex string.
  • value: Transaction value.
  • data: Method signature hash. See ABI for reference.
fromstring
The transaction sender (from) address as a string.
tostring
The transaction recipient (to) address as a string.
gasstring
The gas limit for the transaction as a hex string. For smart contract calls, use 0x0 since no gas is consumed.
gasPricestring
The gas price per unit as a hex string.
valuestring
The value (amount) for the transaction.
datastring
The method signature hash of the call. See ABI for reference.
param[1]
blockNumberOrHashOrTagstringrequired
Use one of block hash, block number, or block tag to specify a block.
  • Block number: hex string (ex. "0x1")
  • Block hash: 64-character hex string (ex. "0x39008d07edf93c03bb9d1cfc80598fcf63f441ec86e9de3733fa6a484980ca48")]
  • Block tag: enum string (ex. "latest", "earliest", "pending")
    • earliest: The oldest available block on the chain.
    • finalized: A recently finalized block that can no longer be changed. Primarily used in proof-of-stake (PoS) blockchains.
    • safe: A recent block considered safe by the network (immune to reorgs).
    • latest: The most recent block on the chain (may be subject to reorgs).
    • pending: The next block to be mined, including pending transactions in the mempool.
param[2]
stateOverrideSetobjectrequired
Override the balance, nonce, code, and state of the smart contract at call time without modifying the blockchain. May include:
  • balance: Hex string to override the account balance.
  • nonce: Hex string to override the account nonce.
  • code: Hex string of fake EVM bytecode to inject into the account.
  • state: Key-value pairs to override the account storage. Keys and values are hex strings.
  • stateDiff: Key-value pairs to override individual storage slots. Similar to state but for targeted slot changes.
Responses
codestringrequired
Code identifying the cause of the failed request.
messagestringrequired
Detailed message including the name and value of the invalid parameter.
{
"code": "ERROR_CODE",
"message": "Unauthorized"
}
cURL
curl -X POST 'https://polygon-mainnet.nodit.io' \
-H 'Content-Type: application/json' \
-H 'X-API-KEY: nodit-demo' \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "eth_call",
"params": [
{
"to": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
"data": "0x70a08231000000000000000000000000d8dA6BF26964aF9D7eEd9e03E53415D37aA96045"
},
"latest",
{}
]
}'