# Block Receipts Proof

A **Block Receipts Proof** verifies all transaction receipts of a given block. Instead of proving a single receipt via Patricia Merkle Proof, the proof includes **all** raw serialized receipts and the full transactions list from the execution payload.

1. **Receipt Trie Verification:** The verifier builds the complete Patricia Merkle Trie from all serialized receipts and computes the `receiptsRoot`, comparing it against the value in the ExecutionPayload.
2. **Transactions Verification:** The raw transactions list is included so the verifier can compute each `transactionHash` and verify `transactionIndex` for every receipt.
3. **Execution Payload Proof:** An SSZ multi-Merkle proof connects `blockNumber`, `blockHash`, `receiptsRoot`, and the `transactions` hash tree root to the `blockBodyRoot`.
4. **Consensus Reference:** The BeaconBlockHeader provides the `slot` for sync committee identification.
5. **Sync Committee Signature:** The BLS aggregate signature from the sync committee confirms canonical chain membership.

## EthBlockReceiptsProof

The main proof data for all receipts of a block.

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

```python
class EthBlockReceiptsProof(Container):
    transactions  : List [transactionsBytes, 1048576] # all transactions from the execution payload
    receipts      : List [bytesList, 65536]           # all RLP-serialized receipts of the block
    blockNumber   : Uint64                            # the number of the execution block
    blockHash     : Bytes32                           # the blockHash of the execution block
    baseFeePerGas : Uint256                           # for effectiveGasPrice when building receipt data in verifier
    block_proof   : List [bytes32, 64]                # the multi proof of transactions, receiptsRoot, blockNumber, blockHash and baseFeePerGas
    header        : BeaconBlockHeader                 # the header of the beacon block
    header_proof  : Union [                           # the proof for the correctness of the header
        EthSignatureBlockProof,                       # proof fby provding signature of the sync_committee
        EthHistoricBlockProof,                        # proof for a historic block using the state_root of a current block.
        EthHeadersBlockProof]                         # proof block giving headers up to a verifyable header.
```

**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/blob/main/specification/specifications/ethereum/historic-block-proof.md#ethhistoricblockproof)
* [EthHeadersBlockProof](https://github.com/corpus-core/colibri-stateless-doc/blob/main/specification/specifications/ethereum/historic-block-proof.md#ethheadersblockproof)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://corpus-core.gitbook.io/specification-colibri-stateless/specifications/ethereum/block-receipts-proof.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
