> 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/receipt-proof.md).

# Receipt Proof

A **Receipt Proof** represents the cryptographic verification of a transaction receipt and its inclusion within the canonical blockchain structure.

1. **Receipt Merkle Proof:** All transaction receipts of an execution block are serialized into a **Patricia Merkle Trie**. A Merkle proof is generated for the requested receipt, demonstrating its inclusion in the block’s `receiptsRoot`.
2. **Transaction–Receipt Association:** The **payload of the transaction** is used to compute its **SSZ hash tree root** derived from the corresponding **BeaconBlock**. This step ensures that the receipt is cryptographically linked to the correct transaction hash.
3. **Execution Payload Proof:** An **SSZ multi–Merkle proof** is then created, connecting the `transactions`, `receipts`, `blockNumber`, and `blockHash` fields within the **ExecutionPayload** to the `blockBodyRoot`. The total proof depth for this structure is **29**.
4. **Consensus Reference:** The **BeaconBlockHeader** is included in the proof to provide the `slot` information. This slot determines which sync committee is responsible for signing the corresponding block root.
5. **Sync Committee Signature:** Finally, the **BLS aggregate signature** from the sync committee of the **following block** is verified. The signature covers the block root as part of the `SignData`, with the signing domain derived from the fork version and the **Genesis Validator Root**. Successful signature verification confirms that the block—and thus the contained receipt—is part of the canonical chain.

![](/files/hduNRQEN6DHJoUNyDzTA)

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)

## 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/v2.0.2/src/chains/eth/ssz/verify_proof_types.h#L194).

```python
class EthReceiptProof(Container):
    transaction      : Bytes[1073741824]     # the raw transaction payload
    transactionIndex : Uint32                # the index of the transaction in the block
    blockNumber      : Uint64                # the number of the execution block containing the transaction
    blockHash        : Bytes32               # the blockHash of the execution block containing the transaction
    receipt_proof    : List [bytes_1024, 64] # the Merkle Patricia Proof of the transaction receipt ending in the receipt root
    block_proof      : List [bytes32, 64]    # the multi proof of the transaction, receipt_root,blockNumber and blockHash
    header           : BeaconBlockHeader     # the header of the beacon block
    header_proof     : Union [               # the proof for the correctness of the header
        EthSignatureBlockProof,              # proof by providing the signature of the sync committee
        EthHistoricBlockProof,               # proof for a historic block using the state_root of a current block
        EthHeadersBlockProof,                # proof block giving a chain of headers up to a verifiable header
        EthCheckpointProof]                  # WSP anchor via LightClientBootstrap (currentSyncCommittee branch)
```

**Referenced Types**

* [BeaconBlockHeader](https://ethereum.github.io/consensus-specs/specs/phase0/beacon-chain/#beaconblockheader)
* [EthSignatureBlockProof](/specification-colibri-stateless/specifications/ethereum/header-proof.md#ethsignatureblockproof)
* [EthHistoricBlockProof](https://github.com/corpus-core/colibri-stateless-doc/tree/main/specification/specifications/ethereum/historic-block-proof.md#ethhistoricblockproof)
* [EthHeadersBlockProof](https://github.com/corpus-core/colibri-stateless-doc/tree/main/specification/specifications/ethereum/historic-block-proof.md#ethheadersblockproof)
* [EthCheckpointProof](/specification-colibri-stateless/specifications/ethereum/header-proof.md#ethcheckpointproof)

## 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/v2.0.2/src/chains/eth/ssz/verify_data_types.h#L150).

```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                  : List [EthReceiptDataLog, 256] # 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
```

**Referenced Types**

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