Skip to main content
Version: 2.1.0

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.

curl localhost:8545 \
-X POST \
-H "Content-Type: application/json" \
--data '{
"jsonrpc": "2.0",
"id": 0,
"method": "proof_call",
"params": [tx, blockParameter]
}'

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.

curl localhost:8545 \
-X POST \
-H "Content-Type: application/json" \
--data '{
"jsonrpc": "2.0",
"id": 0,
"method": "proof_getProofWithMeta",
"params": [accountAddress, storageKeys, blockParameter]
}'

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.

curl localhost:8545 \
-X POST \
-H "Content-Type: application/json" \
--data '{
"jsonrpc": "2.0",
"id": 0,
"method": "proof_getTransactionByHash",
"params": [txHash, includeHeader]
}'

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.

curl localhost:8545 \
-X POST \
-H "Content-Type: application/json" \
--data '{
"jsonrpc": "2.0",
"id": 0,
"method": "proof_getTransactionReceipt",
"params": [txHash, includeHeader]
}'