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: string (transaction type)
-
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: integerdata: objectmessage: string
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: objectcount: 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: integernodeLookups: 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: string (hex data)
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. Returns null when the transaction is unknown, or when the block it is stored against cannot be resolved or no longer carries it.
- 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: string (transaction type)
txProof: array of string (hex data)
result may be null in a successful response.
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. Returns null when the transaction is unknown, when the block it is stored against cannot be resolved or no longer carries it, or when the block's stored receipts do not include one for it.
- 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: string (transaction type)
receiptProof: array of string (hex data)txProof: array of string (hex data)
result may be null in a successful response.