# Transaction Proof

Represents the proof for a single transaction, verifying its inclusion in a block. For preconfirmation blocks, the transaction proof may be empty since the full execution payload is available.

This Proof is used for the following RPC-Methods:

* [eth\_getTransactionByHash](https://www.alchemy.com/docs/node/op-mainnet/op-mainnet-api-endpoints/eth-get-transaction-by-hash)
* [eth\_getTransactionByBlockHashAndIndex](https://www.alchemy.com/docs/node/op-mainnet/op-mainnet-api-endpoints/eth-get-transaction-by-block-hash-and-index)
* [eth\_getTransactionByBlockNumberAndIndex](https://www.alchemy.com/docs/node/op-mainnet/op-mainnet-api-endpoints/eth-get-transaction-by-block-number-and-index)

## OpTransactionProof

Container type for a block containing multiple transaction log proofs The main proof data for a single transaction.

The Type is defined in [src/chains/op/ssz/op\_proof\_types.h](https://github.com/corpus-core/colibri-stateless/blob/dev/src/chains/op/ssz/op_proof_types.h#L109).

```python
class OpTransactionProof(Container):
    tx_proof         : List [bytes_1024, 64] # the Merkle Patricia Proof of the transaction (empty for preconf blocks since full execution payload is available)
    transactionIndex : Uint32                # the index of the transaction in the block
    block_proof      : Union [               # proof for the right block hash
        OpPreconf]                           # preconfirmation proof (sequencer-signed execution payload)
```

**Referenced Types**

* [OpPreconf](https://corpus-core.gitbook.io/specification-colibri-stateless/specifications/op-stack/..#oppreconf)
