> For the complete documentation index, see [llms.txt](https://corpus-core.gitbook.io/specification-colibri-stateless/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://corpus-core.gitbook.io/specification-colibri-stateless/specifications/ethereum/proofs/receipt-proof.md).

# Receipt Proof

A **Receipt Proof** verifies a transaction receipt and its inclusion in a verified execution block.

1. **Execution Block:** The execution block is verified via `ETH_EL_PROOF_UNION` (`c4_verify_block`). This yields a verified RLP EL header and its keccak `blockHash`.
2. **Receipt Inclusion:** A Patricia Merkle proof against the header's `receiptsRoot` delivers the raw receipt as the leaf.
3. **Transaction Binding:** A Patricia Merkle proof against the header's `transactionsRoot` delivers the raw transaction (used for `transactionHash` and sender recovery).

![](https://1306347641-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhWyjkndFSkqQ8UEoWFD1%2Fuploads%2Fgit-blob-d296e6e0f83f85d463dd443675db98b56740d5c9%2Fmermaid_5eeadbe8.png?alt=media)

This Proof is used for the following RPC-Methods:

* [eth\_getTransactionReceipt](https://www.alchemy.com/docs/node/ethereum/ethereum-api-endpoints/eth-get-transaction-receipt)
* [eth\_getTransactionReceipt](https://www.alchemy.com/docs/node/op-mainnet/op-mainnet-api-endpoints/eth-get-transaction-receipt)

## EthReceiptProof

The main proof data for a receipt.

The Type is defined in [src/chains/eth/ssz/verify\_proof\_types.h](https://github.com/corpus-core/colibri-stateless/blob/v3.0.2/src/chains/eth/ssz/verify_proof_types.h#L441).

```python
class EthReceiptProof(Container):
    transactionIndex : Uint32                # the index of the transaction in the block
    transactionProof : ProgList [bytesList]  # the Patricia Merkle Proof of the transaction, the leaf contains the raw transaction.
    receiptProof     : ProgList [bytes_1024] # the Patricia Merkle Proof of the receipt, the leaf contains the raw receipt.
    elProof          : Union [               # the proof for the execution block containing the transaction
        Bytes32,                             # 0: cached: verifier already holds this verified EL header
        EthClHeaderProof,                    # 1: full consensus-layer proof of the EL header
        EthSequencerProof,                   # 2: sequencer-signed execution payload (OP-Stack)
        EthWitnessHeaderProof]               # 3: reserved; c4_verify_block rejects until ecrecover+allow-list exist
```

**Referenced Types**

* [EthClHeaderProof](/specification-colibri-stateless/specifications/ethereum/proofs/consensus-layer-header-proof.md#ethclheaderproof)
* [EthSequencerProof](/specification-colibri-stateless/specifications/ethereum/proofs/execution-layer-header-proof.md#ethsequencerproof)
* [EthWitnessHeaderProof](/specification-colibri-stateless/specifications/ethereum/proofs/execution-layer-header-proof.md#ethwitnessheaderproof)

## EthReceiptData

Container type for log entries in transaction receipts The transaction receipt data as returned by eth\_getTransactionReceipt.

The Type is defined in [src/chains/eth/ssz/verify\_data\_types.h](https://github.com/corpus-core/colibri-stateless/blob/v3.0.2/src/chains/eth/ssz/verify_data_types.h#L156).

```python
class EthReceiptData(Container):
    _optmask              : Uint32                       # bitmask defining the properties shown in json
    blockHash             : Bytes32                      # the blockHash of the execution block containing the transaction
    blockNumber           : Uint64                       # the number of the execution block containing the transaction
    transactionHash       : Bytes32                      # the hash of the transaction
    transactionIndex      : Uint32                       # the index of the transaction in the block
    type                  : Uint8                        # the type of the transaction
    from                  : Address                      # the sender of the transaction
    to                    : NullableBytes[20]            # the target of the transaction
    cumulativeGasUsed     : Uint64                       # the cumulative gas used in the block up to and including this transaction
    gasUsed               : Uint64                       # the gas used by this transaction alone
    logs                  : ProgList [EthReceiptDataLog] # the logs of the transaction
    logsBloom             : ByteVector [256]             # the bloom filter of the logs
    status                : Uint8                        # the status of the transaction
    effectiveGasPrice     : Uint64                       # the effective gas price of the transaction
    depositNonce          : Uint64                       # the deposit nonce of the transaction
    depositReceiptVersion : Uint32                       # the deposit receipt version of the transaction
    contractAddress       : NullableBytes[20]            # address of the created contract (contract-creation only)
    blobGasUsed           : Uint64                       # blob gas used by the transaction (EIP-4844, type-3 only)
    blobGasPrice          : Uint64                       # blob gas price paid by the transaction (EIP-4844, type-3 only)
```

**Referenced Types**

* [EthReceiptDataLog](/specification-colibri-stateless/specifications/ethereum/proofs/logs-proof.md#ethreceiptdatalog)
