trace_callMany RPC Method
Executes a call like eth_call
but returns traces. In trace_callMany
you can specify multiple trace_call
objects and execute them on the same block.
Returns
array
- The list of trace objectsoutput
- The output (return value) of the callstateDiff
- The state changes that would happen due to the transaction in the given eth_calltrace
- The trace of the callaction
- The action to be performedfrom
- The address of the sendercallType
- The type of method such as call, delegatecallgas
- The gas provided by the senderinput
- The input data of the call or delegatecallto
- The address of the receivervalue
- The amount of ETH sent with this transaction
result
- The result of the transactiongasUsed
- Gas used by the transactionoutput
- The return value of the call. Can be empty.
subtraces
- The traces of internal transactions (calls made by the contract)traceAddress
- The list of addresses where the call was executed, the address of the parents and the order of the current sub calltype
- The value of the method such as call or create
vmTrace
- The full trace of the virtual machine's state during execution of the given eth_call, including any sub-calls
Need RPC API keys?
Get 12.5M archival requests for free today.
Parameters
1.ARRAY OF TRACE CALL PARAM ARRAYS
[required]
The individual objects are similar to eth_call
. The difference to trace_call
is that you provide an array of trace_call
params and get a response for each trace.
1st inner param of the array
object
- The eth_call data
from
[optional] - The address from which the transaction is sent.to
- The address where the transaction is sent to.gas
[optional] - Integer of the gas provided for the transaction execution. Althougheth_call
consumes zero gas, this parameter may still be needed by some executions.gasPrice
[optional] - Integer of the gasPrice used for each paid gas as hexadecimal.value
[optional] - Interger of the value sent with a stated transactiondata
[optional] - Hash of the method signature and encoded parameters. More info 👉 Ethereum Contract ABI (opens in a new tab)
2nd inner param of the array
array
- The type of traces to includevmTrace
- Include the full trace of the virtual machine during the transactiontrace
- Include the basic trace of the transactionstateDiff
- Include state changes caused by the transaction
2.Block number or Tag
[required]
Hexadecimal block number or a Tag
"latest", "earliest", "pending", "safe" or "finalized".
"Safe" and "finalized" are only availible on Ethereum and Arbitrum One chains. Read block parameter description in Ethereum documentation (opens in a new tab).
Request
POST https://<network>.chainnodes.org/YOUR-API-KEY
Example
Confusing? Ask blockchain developers in Chainnodes Telegram Chat (opens in a new tab)
- HTTPS POST Request with a JSON RPC call in the body
- Replace YOUR-API-KEY with the API key from your Chainnodes.org Dashboard
- You can use a different supported network by replacing
mainnet
curl https://mainnet.chainnodes.org/YOUR-API-KEY \
-X POST \
-H "Content-Type: application/json" \
-d '{"method":"trace_callMany","params":[[[{"from":null,"to":"0x6b175474e89094c44da98b954eedeac495271d0f","data":"0x70a082310000000000000000000000006E0d01A76C3Cf4288372a29124A26D4353EE51BE"},["stateDiff"]],[{"from":null,"to":"0x6b175474e89094c44da98b954eedeac495271d0f","data":"0x70a082310000000000000000000000006E0d01A76C3Cf4288372a29124A26D4353EE51BE"},["trace"]]],"latest"],"id":1,"jsonrpc":"2.0"}'
Body
{
"jsonrpc": "2.0",
"id": 1,
"result": [
{
"output": "0x0000000000000000000000000000000000000000000000000858898f93629000",
"stateDiff": {
"0x0000000000000000000000000000000000000000": {
"balance": {
"*": {
"from": "0x2722f4b4a37258f501e",
"to": "0x2722f48efd391fff7da"
}
},
"code": "=",
"nonce": {
"*": {
"from": "0x0",
"to": "0x1"
}
},
"storage": {}
}
},
"trace": [],
"vmTrace": null
},
{
"output": "0x0000000000000000000000000000000000000000000000000858898f93629000",
"stateDiff": null,
"trace": [
{
"action": {
"from": "0x0000000000000000000000000000000000000000",
"callType": "call",
"gas": "0x2fa9cc8",
"input": "0x70a082310000000000000000000000006e0d01a76c3cf4288372a29124a26d4353ee51be",
"to": "0x6b175474e89094c44da98b954eedeac495271d0f",
"value": "0x0"
},
"result": {
"gasUsed": "0xa2a",
"output": "0x0000000000000000000000000000000000000000000000000858898f93629000"
},
"subtraces": 0,
"traceAddress": [],
"type": "call"
}
],
"vmTrace": null
}
]
}