# Hybrid Proof Types

Hybrid proofs embed verified `ETH_BLOCK_HEADER_DATA` (14 fields, \~540 bytes) directly instead of full consensus-layer proofs. The verifier trusts this data because the local prover already verified it (hybrid mode = same process). These proofs are significantly smaller than their full counterparts.

## EthHybridAccountProof

Hybrid account proof: MPT proof + verified header data (stateRoot from header\_data)

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#L722).

```python
class EthHybridAccountProof(Container):
    accountProof : List [bytes_1024, 256]
    address      : Address
    storageProof : List [EthStorageProof, 256]
    header_data  : EthBlockHeaderData
```

**Referenced Types**

* [EthStorageProof](/specification-colibri-stateless/specifications/ethereum/account-proof.md#ethstorageproof)
* [EthBlockHeaderData](/specification-colibri-stateless/specifications/ethereum/block-proof.md#ethblockheaderdata)

## EthHybridCallProof

Hybrid call proof: accounts + verified header data (stateRoot, feeRecipient, etc.)

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#L730).

```python
class EthHybridCallProof(Container):
    accounts    : List [EthCallAccount, 256]
    header_data : EthBlockHeaderData
```

**Referenced Types**

* [EthCallAccount](/specification-colibri-stateless/specifications/ethereum/call-proof.md#ethcallaccount)
* [EthBlockHeaderData](/specification-colibri-stateless/specifications/ethereum/block-proof.md#ethblockheaderdata)

## EthHybridTransactionProof

Hybrid transaction proof: tx + SSZ Merkle proof against embedded SSZ transactionsRoot

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#L736).

```python
class EthHybridTransactionProof(Container):
    transaction      : Bytes[1073741824]
    transactionIndex : Uint32
    txProof          : List [bytes32, 64]
    header_data      : EthBlockHeaderData
```

**Referenced Types**

* [EthBlockHeaderData](/specification-colibri-stateless/specifications/ethereum/block-proof.md#ethblockheaderdata)

## EthHybridReceiptProof

Hybrid receipt proof: raw tx + SSZ Merkle proof for tx + Patricia proof for receipt + header\_data

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#L744).

```python
class EthHybridReceiptProof(Container):
    transaction      : Bytes[1073741824]
    transactionIndex : Uint32
    txProof          : List [bytes32, 64]
    receipt_proof    : List [bytes_1024, 64]
    header_data      : EthBlockHeaderData
```

**Referenced Types**

* [EthBlockHeaderData](/specification-colibri-stateless/specifications/ethereum/block-proof.md#ethblockheaderdata)

## EthHybridLogsBlock

Hybrid logs block: header\_data + SSZ multi-merkle proof for txs + Patricia receipt proofs

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#L753).

```python
class EthHybridLogsBlock(Container):
    header_data : EthBlockHeaderData
    txProof     : List [bytes32, 256]
    txs         : List [EthLogsTx, 256]
```

**Referenced Types**

* [EthBlockHeaderData](/specification-colibri-stateless/specifications/ethereum/block-proof.md#ethblockheaderdata)
* [EthLogsTx](/specification-colibri-stateless/specifications/ethereum/logs-proof.md#ethlogstx)

## EthHybridBlockReceiptsProof

Hybrid block receipts proof: transactions + receipts + header\_data (no multi-merkle proof needed)

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#L762).

```python
class EthHybridBlockReceiptsProof(Container):
    transactions : List [transactionsBytes, 1048576]
    receipts     : List [bytesList, 65536]
    header_data  : EthBlockHeaderData
```

**Referenced Types**

* [EthBlockHeaderData](/specification-colibri-stateless/specifications/ethereum/block-proof.md#ethblockheaderdata)

## EthHybridBlockProof

Hybrid block proof: full execution payload (no merkle proof against bodyRoot needed)

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#L769).

```python
class EthHybridBlockProof(Container):
    executionPayload : Union [ 
        DenepExecutionPayload,  # DenepExecutionPayload
        GnosisExecutionPayload] # GnosisExecutionPayload
```

**Referenced Types**

* [DenepExecutionPayload](https://ethereum.github.io/consensus-specs/specs/deneb/beacon-chain/#executionpayload)
* GnosisExecutionPayload

## EthHybridBlockHeaderProof

Hybrid block header proof: header\_data alone serves as trusted proof for eth\_getBlockHeader / eth\_blobBaseFee / eth\_blockNumber

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#L774).

```python
class EthHybridBlockHeaderProof(Container):
    header_data : EthBlockHeaderData
```

**Referenced Types**

* [EthBlockHeaderData](/specification-colibri-stateless/specifications/ethereum/block-proof.md#ethblockheaderdata)


---

# 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/hybrid-proof-types.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.
