/eigenlayer-middleware

Primary LanguageSolidityOtherNOASSERTION

EigenLayer Middleware

EigenLayer is a set of smart contracts deployed on Ethereum that enable restaking of assets to secure new services called AVSs (actively validated services). The core contracts that enable these features can be found in the eigenlayer-contracts repo.

Getting Started

Branching

The main branches we use are:

  • dev (default): The most up-to-date branch, containing the work-in-progress code for upcoming releases
  • testnet-holesky: Our current testnet deployment
  • mainnet: Our current mainnet deployment

Documentation

Basics

To get a basic understanding of EigenLayer, check out You Could've Invented EigenLayer. Note that some of the document's content describes features that do not exist yet (like the Slasher). To understand more about how restakers and operators interact with EigenLayer, check out these guides:

Most of this content is intro-level and describes user interactions with the EigenLayer core contracts, but it should give you a good enough starting point.

Deep Dive

For shadowy super-coders:

  • The most up-to-date technical documentation can be found in /docs.
  • To get an idea of how users interact with these contracts, check out the integration tests: /test/integration
  • To explore the EigenLayer core contracts, check out the core repo technical docs here.

Building and Running Tests

This repository uses Foundry. See the Foundry docs for more info on installation and usage. If you already have foundry, you can build this project and run tests with these commands:

foundryup

forge build
forge test

Deployments

The contracts in this repo are meant to be deployed by each AVS that wants to use them. The addresses listed below refer to EigenDA's deployment, and are included as an example.

Current Mainnet Deployment

The current mainnet deployment is from our M2 mainnet release. You can view the deployed contract addresses below, or check out the code itself on the mainnet branch.

Name Proxy Implementation Notes
RegistryCoordinator 0x0baac79acd45a023e19345c352d8a7a83c4e5656 0xd3e0...EECF Proxy: TUP@4.7.1
StakeRegistry 0x006124ae7976137266feebfb3f4d2be4c073139d 0x1C46...dd96 Proxy: TUP@4.7.1
IndexRegistry 0xbd35a7a1cdef403a6a99e4e8ba0974d198455030 0x1ae0...a14c Proxy: TUP@4.7.1
BLSApkRegistry 0x00a5fd09f6cee6ae9c8b0e5e33287f7c82880505 0x5d0B...eD2b Proxy: TUP@4.7.1
OperatorStateRetriever - 0xD5D7...8C31
ServiceManagerRouter - 0x518D...09eA
ProxyAdmin - 0x8247...2E99
eigenda/EigenDAServiceManager 0x870679e138bcdf293b7ff14dd44b70fc97e12fc0 0xF5fD...899e Proxy: TUP@4.7.1

Current Testnet Deployment

The current testnet deployment is on holesky, is from our M2 beta release. You can view the deployed contract addresses below, or check out the code itself on the testnet-holesky branch.

Name Proxy Implementation Notes
RegistryCoordinator 0x53012C69A189cfA2D9d29eb6F19B32e0A2EA3490 0xC908...bfa0 Proxy: TUP@4.7.1
StakeRegistry 0xBDACD5998989Eec814ac7A0f0f6596088AA2a270 0xa8d2...98E5 Proxy: TUP@4.7.1
IndexRegistry 0x2E3D6c0744b10eb0A4e6F679F71554a39Ec47a5D 0x889B...420d Proxy: TUP@4.7.1
BLSApkRegistry 0x066cF95c1bf0927124DFB8B02B401bc23A79730D 0x885C...e064 Proxy: TUP@4.7.1
OperatorStateRetriever - 0xB4ba...6C67
ServiceManagerRouter - 0x4463...5a37
ProxyAdmin - 0xB043...5c15
eigenda/EigenDAServiceManager 0xD4A7E1Bd8015057293f0D0A557088c286942e84b 0xa722...67f3 Proxy: TUP@4.7.1