EigenLayer is a set of smart contracts deployed on Ethereum that enable restaking of assets to secure new services (AVSs).
See CONTRIBUTING. Contributions that do not follow our fork base PR practices will be automatically immediately closed and deleted, preventing branch pollution, keeping our repository clean, tidy, more readable and searchable.
Branches we use:
main
: The canonical, most up-to-date branch, containing the work-in-progress code for upcoming releasesVx.y.z
: Release branch with versionx.y.z
that matches a release of EigenLayer, release branch is always cut frommain
via cherry-pickingrelease-dev/xxx
: A development branch for a large feature to be released, the branch should eventually be deleted after merge tomain
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:
The most up-to-date and technical documentation can be found in /docs. If you're a shadowy super coder, this is a great place to get an overview of the contracts before diving into the code.
To get an idea of how users interact with these contracts, check out our integration tests: /src/test/integration.
The deployments on mainnet
, holesky
, and sepolia
are on the below versions:
Environment | Version |
---|---|
Mainnet Ethereum | v0.5.4 |
Testnet Holesky | v1.4.1 |
Testnet Sepolia | v1.3.0 |
Mainnet Ethereum
Anyone can deploy and whitelist strategies for standard ERC20s by using the StrategyFactory
deployed to the address below (see docs). Strategies deployed from the StrategyFactory
are deployed using the beacon proxy pattern:
Name | Proxy | Implementation | Notes |
---|---|---|---|
StrategyFactory |
0x5e4c39ad7a3e881585e383db9827eb4811f6f647 |
0x3e07...5c74 |
Proxy: [email protected] |
StrategyBase |
0x0ed6703C298d28aE0878d1b28e88cA87F9662fE9 |
0xe9fa...7827 |
- Beacon: BeaconProxy - Strategies: UpgradeableBeacon |
The following strategies were originally deployed and whitelisted outside of the StrategyFactory
:
The following strategies differ significantly from the other strategies deployed/used above:
Name | Proxy | Implementation | Notes |
---|---|---|---|
EigenStrategy (EIGEN) |
0xaCB55C530Acdb2849e6d4f36992Cd8c9D50ED8F7 |
0x27e7...0428 |
Proxy: [email protected] |
Beacon Chain ETH |
0xbeaC0eeEeeeeEEeEeEEEEeeEEeEeeeEeeEEBEaC0 |
- | - Used for Beacon Chain ETH shares - Not a real contract! |
Name | Proxy | Implementation | Notes |
---|---|---|---|
EigenPod (beacon) |
0x5a2a4F2F3C18f09179B6703e63D9eDD165909073 |
0x6D22...6430 |
- Beacon: BeaconProxy - Pods: UpgradeableBeacon |
Name | Proxy | Implementation | Notes |
---|---|---|---|
Eigen |
0xec53bf9167f50cdeb3ae105f56099aaab9061f83 |
0x17f5...26A0 |
Proxy: [email protected] |
Backing Eigen |
0x83E9115d334D248Ce39a6f36144aEaB5b3456e75 |
0xF2b2...9b17 |
Proxy: [email protected] |
SignedDistributor |
- | 0x035b...ad02 |
- |
Testnet Holesky
You can view the deployed contract addresses below, or check out the code itself on the testnet-holesky
branch.
Anyone can deploy and whitelist strategies for standard ERC20s by using the StrategyFactory
deployed to the address below (see docs). Strategies deployed from the StrategyFactory
are deployed using the beacon proxy pattern:
Name | Proxy | Implementation | Notes |
---|---|---|---|
StrategyFactory |
0x9c01252B580efD11a05C00Aa42Dd3ac1Ec52DF6d |
0x62e3...7aDE |
Proxy: [email protected] |
StrategyBase |
0xd3c6C6BA4E40dB9288c6a2077e5635344F8aFA4F |
0xcaF7...C7E2 |
- Beacon: BeaconProxy - Strategies: UpgradeableBeacon |
The following strategies were originally deployed and whitelisted outside of the StrategyFactory
:
The following strategies differ significantly from the other strategies deployed/used above:
Name | Proxy | Implementation | Notes |
---|---|---|---|
EigenStrategy (EIGEN) |
0x43252609bff8a13dFe5e057097f2f45A24387a84 |
0x917F...8Fd0 |
Proxy: [email protected] |
Beacon Chain ETH |
0xbeaC0eeEeeeeEEeEeEEEEeeEEeEeeeEeeEEBEaC0 |
- | - Used for Beacon Chain ETH shares - Not a real contract! |
Name | Proxy | Implementation | Notes |
---|---|---|---|
EigenPod (beacon) |
0x7261C2bd75a7ACE1762f6d7FAe8F63215581832D |
0x68bd...6D37 |
- Beacon: BeaconProxy - Pods: UpgradeableBeacon |
Name | Proxy | Implementation | Notes |
---|---|---|---|
Eigen |
0x3B78576F7D6837500bA3De27A60c7f594934027E |
0x01cb...3050 |
Proxy: [email protected] |
Backing Eigen |
0x275cCf9Be51f4a6C94aBa6114cdf2a4c45B9cb27 |
0x05ad...E05c |
Proxy: [email protected] |
Name | Proxy | Implementation | Notes |
---|---|---|---|
PauserRegistry |
- | 0x41Db...ec1D |
|
OZ: TimelockController |
- | 0x5e83...F6fD |
|
OZ: Proxy Admin |
- | 0xDB02...A6cf |
Testnet Sepolia
Anyone can deploy and whitelist strategies for standard ERC20s by using the StrategyFactory
deployed to the address below (see docs). Strategies deployed from the StrategyFactory
are deployed using the beacon proxy pattern:
Name | Proxy | Implementation | Notes |
---|---|---|---|
StrategyFactory |
0x066cF95c1bf0927124DFB8B02B401bc23A79730D |
0xEE41...ca1A |
Proxy: [email protected] |
StrategyBase |
0x427e627Bc7E83cac0f84337d3Ad94230C32697D3 |
0x9E05...7C5c |
- Beacon: BeaconProxy - Strategies: UpgradeableBeacon |
StETH Strategy |
0x8b29d91e67b013e855EaFe0ad704aC4Ab086a574 |
0x9E05...7C5c |
Strategy Factory deployed |
WETH Strategy |
0x424246eF71b01ee33aA33aC590fd9a0855F5eFbc |
0x9E05...7C5c |
Strategy Factory deployed |
The following strategies differ significantly from the other strategies deployed/used above:
Name | Proxy | Implementation | Notes |
---|---|---|---|
EigenStrategy (EIGEN) |
0x8E93249a6C37a32024756aaBd813E6139b17D1d5 |
0x46CF...16db |
Proxy: [email protected] |
Beacon Chain ETH |
0xbeaC0eeEeeeeEEeEeEEEEeeEEeEeeeEeeEEBEaC0 |
- | - Used for Beacon Chain ETH shares - Not a real contract! |
NOTE: Due to the permissioned validator set on Sepolia, all EigenPod functionality is PAUSED.
Name | Proxy | Implementation | Notes |
---|---|---|---|
EigenPod (beacon) |
0x0e19E56E41D42137d00dD4f51EC2F613E50cAcf4 |
0xd85d...6bCf |
- Beacon: BeaconProxy - Pods: UpgradeableBeacon |
Name | Proxy | Implementation | Notes |
---|---|---|---|
Eigen |
0x0011FA2c512063C495f77296Af8d195F33A8Dd38 |
0xF83a...8725 |
Proxy: [email protected] |
Backing Eigen |
0xc5B857A92245f64e9D90cCc5b096Db82eB77eB5c |
0x1298...3173 |
Proxy: [email protected] |
Name | Proxy | Implementation | Notes |
---|---|---|---|
PauserRegistry |
- | 0x63AA...20f3 |
|
OZ: TimelockController |
- | 0x1BEF...1b5B |
|
OZ: Proxy Admin |
- | 0x56E8...6Fa1 |