# Introduction

<figure><img src="https://1694265157-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F3TBwtPMEVIGQI1B6u4Ii%2Fuploads%2FlD7zwhzbswx8CtbVp8hj%2Fimage.png?alt=media&#x26;token=9cc17d73-8ee1-42b8-bfe2-819b03ede9ab" alt="" width="563"><figcaption></figcaption></figure>

Herodotus is a powerful data access middleware that provides smart contracts with synchronous access to current and historical on-chain data across Ethereum layers.&#x20;

Our solutions enable smart contracts to access:

* L1 states from L2s
* L2 states from both L1s and other L2s
* L3/App-Chain states to L2s and L1s

## Our Products and Services

<table data-view="cards"><thead><tr><th></th><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><strong>Storage Proofs</strong></td><td>Combination of inclusion proofs, which confirm data's presence, and proofs of computation which validate the execution of a multi-step workflow to attest the validity of elements in a large dataset (e.g. Ethereum blockchain or a rollup).</td><td></td><td><a href="developers/storage-proofs">storage-proofs</a></td></tr><tr><td><strong>Storage Proof API</strong></td><td><p>Easily integrate storage proofs into your app by utilizing the Storage Proof API. <br></p><p>No need to understand cryptography, zero-knowledge proofs, or how to write circuits.</p></td><td></td><td><a href="developers/storage-proof-api">storage-proof-api</a></td></tr><tr><td><strong>Turbo</strong></td><td><p>A smart contract interface for the Storage Proof API. </p><p></p><p>Herodotus Turbo enables trustless interoperability between Ethereum Layers by writing only one line of code!</p></td><td></td><td><a href="developers/turbo">turbo</a></td></tr></tbody></table>


---

# 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.herodotus.dev/herodotus-docs/readme.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.
