# Architecture overview

### Fossil components

* L1 -> L2 messages sender
* L1 -> L2 messages receiver
* L1 Headers store
* Facts registry
* TWAP

### Intro

Fossil is a set of smart contracts deployed on both ethereum L1 and Starknet L2.

In order to access data from Ethereum, Fossil's L2 contracts must be provided with an L1 `blockhash` which is enough to recreate data till the genesis block on Ethereum.

Once a `blockhash` is provided and written in the L2 smart contract storage it's corresponding block can be recreated by validating a submitted header.

Ethereum block headers contain trie roots and parent hashes, such data allows to access the provided block's state, transactions, receipts and repeat that process for the next block and so recursively till genesis.

### L1 -> L2 messages sender

This contract is responsible for sending block hashes from L1.&#x20;


---

# 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.oiler.network/oiler-network/products/fossil/architecture-overview.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.
