Transaction Proof
A Transaction Proof represents the verification of a specific transaction and its inclusion within a verified execution block.
Transaction Payload Root: The payload of the transaction is used to compute its SSZ hash tree root, establishing a deterministic reference to the transaction within the block.
Execution Payload Proof: An SSZ Merkle proof links the transactions field of the ExecutionPayload to the blockBodyRoot. The total proof depth for this structure is 29.
Consensus Reference: The BeaconBlockHeader is included in the proof to provide the slot information, which determines the sync committee period responsible for signing the corresponding block root.
Sync Committee Signature: The BLS aggregate signature from the sync committee of the following block is verified against the SignData containing the block hash. The signing domain is derived from the fork version and the Genesis Validator Root, ensuring that the transaction originates from a block that is part of the canonical chain.
The Transaction Proof confirms the inclusion and authenticity of a transaction without requiring full synchronization with the blockchain state.

This Proof is used for the following RPC-Methods:
EthTransactionProof
The main proof data for a single transaction.
The Type is defined in src/chains/eth/ssz/verify_proof_types.h.
Referenced Types
EthAccessListData
These masks control which optional fields are included in simulation results. They are used with the _optmask field in SSZ containers to enable/disable specific fields. Log field masks for ETH_SIMULATION_LOG anonymous field (i=1) inputs field (i=2) name field (i=3) raw field (i=4) all fields for testing only raw log data decodedInput field (i=1) decodedOutput field (i=2) from field (i=3) gas field (i=4) gasUsed field (i=5) input field (i=6) method field (i=7) output field (i=8) subtraces field (i=9) to field (i=10) traceAddress field (i=11) type field (i=12) value field (i=13) all fields for testing no trace fields (empty) blockNumber field (i=1) cumulativeGasUsed field (i=2) gasUsed field (i=3) logs field (i=4) logsBloom field (i=5) status field (i=6) trace field (i=7) type field (i=8) returnValue field (i=9) all fields for testing essential fields only clean output: gasUsed, logs, status, returnValue (no logsBloom, no type) Entry in the access list of a transaction or call.
The Type is defined in src/chains/eth/ssz/verify_data_types.h.
EthAuthorizationListData
Container type for access list entries Entry in the authorization list of a transaction or call.
The Type is defined in src/chains/eth/ssz/verify_data_types.h.
EthTxData
Container type for authorization list entries (EIP-7702) The transaction data as result of an eth_getTransactionByHash rpc-call. Supports all transaction types including Optimism Deposited Transactions (0x7E).
The Type is defined in src/chains/eth/ssz/verify_data_types.h.
Referenced Types
Last updated