proof namespace
proof_call
Executes a call against the state at the given block (analogous to eth_call) and returns the call output together with the execution witness — flat lists of state-trie node RLP, loaded contract bytecode, accessed keys, and RLP-encoded block headers emitted in ascending block-number order (any block whose hash was read via the BLOCKHASH opcode comes first, and the executed-against header is always the last entry). The witness is sufficient for a stateless verifier to independently re-execute the call.
- Parameters
- Request
- Response
-
tx: objectblockHash: string (hash)blockNumber: string (hex integer)blockTimestamp: string (hex integer)gas: string (hex integer)hash: string (hash)transactionIndex: string (hex integer)type: integer
-
blockParameter: string (block number or hash or either ofearliest,finalized,latest,pending, orsafe)
curl localhost:8545 \
-X POST \
-H "Content-Type: application/json" \
--data '{
"jsonrpc": "2.0",
"id": 0,
"method": "proof_call",
"params": [tx, blockParameter]
}'
{
"jsonrpc": "2.0",
"id": 0,
"result": result
}
result: object
error: objectcode: string (hex integer)data: objectmessage: stringsuppressWarning: boolean
result: string (hex data)witness: objectcodes: array of string (hex data)headers: array of string (hex data)keys: array of string (hex data)state: array of string (hex data)
proof_getProofWithMeta
Returns the same payload as eth_getProof plus per-call diagnostics: nodeLookups (total trie-node fetches), cacheHits (of those, served from the in-process trie store cache), and maxDepth (deepest level reached in the account or any storage trie, in nibbles). Useful as a client-agnostic proxy for the work an EL does to serve a proof. The proof field has the same shape and content as eth_getProof's result; duplicate storageKeys are deduplicated, matching the existing eth_getProof behaviour.
- Parameters
- Request
- Response
-
accountAddress: string (address) -
storageKeys: array of string (hex integer) -
blockParameter: string (block number or hash or either ofearliest,finalized,latest,pending, orsafe)
curl localhost:8545 \
-X POST \
-H "Content-Type: application/json" \
--data '{
"jsonrpc": "2.0",
"id": 0,
"method": "proof_getProofWithMeta",
"params": [accountAddress, storageKeys, blockParameter]
}'
{
"jsonrpc": "2.0",
"id": 0,
"result": result
}
result: object
meta: objectcacheHits: string (hex integer)maxDepth: string (hex integer)nodeLookups: string (hex integer)
proof: objectaddress: string (address)balance: string (hex integer)codeHash: string (hash)nonce: string (hex integer)proof: array of string (hex data)storageProofs: array of objectkey: stringproof: array of string (hex data)value: objecthasValue: booleanvalue: objectisEmpty: booleanlength: string (hex integer)span: objectisEmpty: booleanitem: objectlength: string (hex integer)
storageRoot: string (hash)
proof_getTransactionByHash
Returns the same data as eth_getTransactionByHash plus a Merkle-Patricia proof of the transaction's inclusion in the block's transactionsRoot. When includeHeader is true, the RLP-encoded block header is also returned, allowing the proof to be verified against the block's transactionsRoot.
- Parameters
- Request
- Response
-
txHash: string (hash) -
includeHeader: boolean
curl localhost:8545 \
-X POST \
-H "Content-Type: application/json" \
--data '{
"jsonrpc": "2.0",
"id": 0,
"method": "proof_getTransactionByHash",
"params": [txHash, includeHeader]
}'
{
"jsonrpc": "2.0",
"id": 0,
"result": result
}
result: object
blockHeader: string (hex data)transaction: objectblockHash: string (hash)blockNumber: string (hex integer)blockTimestamp: string (hex integer)gas: string (hex integer)hash: string (hash)transactionIndex: string (hex integer)type: integer
txProof: array of string (hex data)
proof_getTransactionReceipt
Returns the same data as eth_getTransactionReceipt plus Merkle-Patricia proofs of the transaction's inclusion in the block's transactionsRoot and of the receipt's inclusion in the block's receiptsRoot. When includeHeader is true, the RLP-encoded block header is also returned, allowing proofs to be verified against the block's roots.
- Parameters
- Request
- Response
-
txHash: string (hash) -
includeHeader: boolean
curl localhost:8545 \
-X POST \
-H "Content-Type: application/json" \
--data '{
"jsonrpc": "2.0",
"id": 0,
"method": "proof_getTransactionReceipt",
"params": [txHash, includeHeader]
}'
{
"jsonrpc": "2.0",
"id": 0,
"result": result
}
result: object
blockHeader: string (hex data)receipt: objectblobGasPrice: string (hex integer)blobGasUsed: string (hex integer)blockHash: string (hash)blockNumber: string (hex integer)contractAddress: string (address)cumulativeGasUsed: string (hex integer)effectiveGasPrice: string (hex integer)from: string (address)gasUsed: string (hex integer)logs: array of objectaddress: string (address)blockHash: string (hash)blockNumber: string (hex integer)blockTimestamp: string (hex integer)data: string (hex data)logIndex: string (hex integer)removed: booleantopics: array of string (hash)transactionHash: string (hash)transactionIndex: string (hex integer)
logsBloom: string (hex data)root: string (hash)status: string (hex integer)to: string (address)transactionHash: string (hash)transactionIndex: string (hex integer)type: integer
receiptProof: array of string (hex data)txProof: array of string (hex data)