# Architecture Overview

{% hint style="info" %}
If you are unfamiliar with the concept of a blockchain oracle, reference the Ethereum Foundation's[ documentation on blockchain oracles. ](https://ethereum.org/en/developers/docs/oracles/)
{% endhint %}

The following is a brief overview of the core components that define the EO protocol, to contextualize the data aggregation process. <br>

<figure><img src="https://1662544235-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQvGCmsU8FIcbArIF7C8N%2Fuploads%2F1j7n010bfwKsfuftHbca%2Fimage.png?alt=media&#x26;token=af41ddf7-7e30-4ee8-a4b1-feb6174e38d5" alt=""><figcaption></figcaption></figure>

### &#x20;Ethereum Eigenlayer Integration&#x20;

A [set of smart contracts](https://github.com/eoracle/eoracle-middleware/) on Ethereum that help connect Ethereum validators to EO via [EigenLayer](https://docs.eo.app/docs/concepts/eigenlayer). These contracts manage the network's cryptographic identity, stake records, operator set and enable EO to slash validators.&#x20;

### EO-Chain&#x20;

Ideally, the best infrastructure for blockchain oracle operations would be Ethereum itself, but the high costs and latency of on-chain processes make this infeasible. To address this, the EO-chain is operated with a subset of the Ethereum validator set using the [eBFT consensus mechanism](https://docs.eo.app/docs/concepts/ebft)[.](https://docs.eo.app/docs/concepts/ebft) This chain is used to aggregate and produce cryptographically verifiable data. The EO-Chain is at the center of EO operations, offloading computation from the base layer, which reduces costs and latency. The EO-Chain creates immutable records of all EO activity. These records are used to cryptographically prove operator rewards and slashing.  &#x20;

Read more here:

{% content-ref url="../concepts/eo-chain" %}
[eo-chain](https://docs.eo.app/docs/concepts/eo-chain)
{% endcontent-ref %}

### Validator Clients&#x20;

[Data validators ](https://docs.eo.app/docs/concepts/data-validators)are responsible for observing real-world data, validating it, and reporting it to the EO chain. [Chain validators](https://docs.eo.app/docs/concepts/chain-validators) are responsible for maintaining the consensus of the EO chain. Together, these roles operate the EO protocol.&#x20;

### Aggregator Modules&#x20;

Smart contracts on the EO-chain that enable aggregation and verification of data submitted by validators. These smart contracts produce digitally signed, verifiable data by aggregating the signatures of [Data Validators](https://docs.eo.app/docs/concepts/data-validators), accounting for their respective voting power. &#x20;

### EO Endpoints&#x20;

EO provides [Websocket and REST API ](https://docs.eo.app/docs/understand-eo-1/broken-reference)to use EO data as a pull blockchain oracle. Coupled with the [EO Solidity SDK](https://docs.eo.app/docs/understand-eo-1/broken-reference) , dapps can automate their data usage with[ Python\Typescript](https://docs.eo.app/docs/understand-eo-1/broken-reference) or [other automation solutions. ](https://docs.eo.app/docs/understand-eo-1/broken-reference)

### Target Network Contracts

Smart contracts can be [permissionlessly deployed](https://docs.eo.app/docs/understand-eo/permissionless-deployment) on consumer blockchains to integrate EO data. These contracts can verify the validity of signatures produced by the EO protocol and enable dapps to read and use their desired data. &#x20;
