# OP Stack Chains

Storage Proofs can enable historical and cross-chain data access for OP Stack chains like Optimism, Base, and Zora, the process leverages the unique architecture of these Layer 2 (L2) solutions. This page explains how Storage Proofs work in the context of OP Stack chains.

## Optimism Bedrock

The first crucial step in the Storage Proof Workflow is accessing the block hash. For OP Stack chains, we need to understand how L2 data gets committed to Layer 1 (L1).

### Block Hash Commitment

Since the launch of Optimism Bedrock, the block hash of an L2 block is committed to L1. Importantly, the structure of the block header on Optimism Bedrock mirrors that of the Ethereum Virtual Machine (EVM).

### L2OutputOracle Contract

The L2OutputOracle contract plays a pivotal role in this process. It emits `OutputProposed` events when new L2 outputs are proposed. The event structure is as follows:

```solidity
event OutputProposed(
    bytes32 indexed outputRoot,
    uint256 indexed l2OutputIndex,
    uint256 indexed l2BlockNumber,
    uint256 l1Timestamp
);
```

### Accessing L2 Output

To retrieve the L2 output, call the `getL2Output` read method using the `l2OutputIndex`. The returned output is the pre-image of the `outputRoot`, composed of:

```
version, l2_block_state_root, l2_withdrawals_storage_root, l2_block_hash
```

The `l2_block_hash` can be extracted from this pre-image and utilized in the Storage Proof process.

### OP Stack Indexer

To facilitate the indexing of OP Stack events, we've developed the OP Stack Indexer:

* **GitHub Repository**: <https://github.com/HerodotusDev/opstack_indexer>
* **Purpose**: Monitors Ethereum for all OP Stack events
* **Functionality**: Indexes Output Roots in a database
* **Supported Rollups**: Optimism, Base, Zora, and other OP Stack-based rollups

## Cross-Chain Workflow Examples

### Ethereum Data on OP Stack

To access Ethereum data from an OP Stack chain:

1. Access the Ethereum block hash.
2. Send the block hash to the Commitments Inbox, Headers Store, and Facts Registry smart contracts deployed on the OP Stack chain.
3. Proceed with the standard Storage Proof Workflow.

### OP Stack Data on Another OP Stack Chain

To access data from one OP Stack chain on another:

1. Use the OP Stack Indexer to index the block header (pre-image) of the source OP Stack block hash that has settled on L1.
2. Send the indexed block hash to the Commitments Inbox, Headers Store, and Facts Registry smart contracts deployed on the destination OP Stack chain.
3. Proceed with the standard Storage Proof Workflow.

### OP Stack Data on Starknet

To access OP Stack data from Starknet:

1. Use the OP Stack Indexer to index the block header (pre-image) of the OP Stack block hash that has settled on L1.
2. Send the indexed block hash to the Commitments Inbox, Headers Store, and Facts Registry smart contracts deployed on Starknet.
3. Proceed with the standard Storage Proof Workflow.

## Conclusion

The Storage Proof system for OP Stack chains leverages the L2 output commitment process to enable secure cross-chain data access. By understanding and utilizing the L2OutputOracle contract and the OP Stack Indexer, developers can create powerful cross-chain applications that maintain the security guarantees of both L1 and L2 networks.


---

# 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://docs.storageproofs.com/architecture/cross-chain-storage-proofs/op-stack-chains.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.
