Skip to content

Layr-Labs/eigenlayer-contracts

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2,607 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EigenLayer

EigenLayer is a protocol built on Ethereum that introduces Restaking, a primitive for app and service builders to make verifiable commitments to their users.

EigenLayer brings together Restakers, Operators, and Autonomous Verifiable Services (AVSs) to extend Ethereum's cryptoeconomic security with penalty and reward commitments (like slashing) on staked assets acting as security. The protocol supports permissionless security; EIGEN, Native ETH, LSTs, and ERC-20s.

Deployments

The deployments on mainnet, base, sepolia, hoodi, and base sepolia are on the below versions:

Environment Version Core Protocol Deployed Supports Native Restaking Supports Multichain
Mainnet Ethereum v1.13.0 Yes Yes Yes (source & destination)
Base v1.9.0 No No Yes (destination)
Testnet Sepolia v1.12.1 Yes No Yes (source & destination)
Testnet Hoodi v1.11.0 Yes Yes No
Testnet Base Sepolia v1.9.0 No No Yes (destination)

Current Deployment Contracts

Mainnet Ethereum
Core
Name Proxy Implementation Notes
DelegationManager 0x39053D51B77DC0d36036Fc1fCc8Cb819df8Ef37A 0xE702...cE75 Proxy: TUP@4.7.1
StrategyManager 0x858646372CC42E1A627fcE94aa7A7033e7CF075A 0xa753...656A Proxy: TUP@4.7.1
EigenPodManager 0x91E677b07F7AF907ec9a428aafA9fc14a0d3A338 0xd22d...E9dB Proxy: TUP@4.7.1
AVSDirectory 0x135dda560e946695d6f155dacafc6f1f25c1f5af 0xcD35...862b Proxy: TUP@4.7.1
RewardsCoordinator 0x7750d328b314EfFa365A0402CcfD489B80B0adda 0xa067...3C26 Proxy: TUP@4.7.1
PermissionController 0x25E5F8B1E7aDf44518d35D5B2271f114e081f0E5 0x36dd...EEd2 Proxy: TUP@4.9.0
AllocationManager 0x948a420b8CC1d6BFd0B6087C2E7c344a2CD0bc39 0xdA2A...97C4 Proxy: TUP@4.9.0
EmissionsController 0x619F988b4EA2f896ED068d84cE6F52550d6acE84 0x29Db...CA01 Proxy: TUP@4.7.1
Strategies

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 0xbbc4...2b76 Proxy: TUP@4.7.1
StrategyBase 0x0ed6703C298d28aE0878d1b28e88cA87F9662fE9 0x8F6b...1Ce - Beacon: BeaconProxy
- Strategies: UpgradeableBeacon
DurationVaultStrategy 0x0fCE0A591D96BB76883323eF555867111E2050a9 0xc946...8903 - Beacon: BeaconProxy
- Strategies: UpgradeableBeacon

The following strategies were originally deployed and whitelisted outside of the StrategyFactory:

Name Proxy Implementation Notes
StrategyBase (cbETH) 0x54945180dB7943c0ed0FEE7EdaB2Bd24620256bc 0xB427...7230 Proxy: TUP@4.7.1
StrategyBase (stETH) 0x93c4b944D05dfe6df7645A86cd2206016c51564D 0xB427...7230 Proxy: TUP@4.7.1
StrategyBase (rETH) 0x1BeE69b7dFFfA4E2d53C2a2Df135C388AD25dCD2 0xB427...7230 Proxy: TUP@4.7.1
StrategyBase (ETHx) 0x9d7eD45EE2E8FC5482fa2428f15C971e6369011d 0xB427...7230 Proxy: TUP@4.7.1
StrategyBase (ankrETH) 0x13760F50a9d7377e4F20CB8CF9e4c26586c658ff 0xB427...7230 Proxy: TUP@4.7.1
StrategyBase (OETH) 0xa4C637e0F704745D182e4D38cAb7E7485321d059 0xB427...7230 Proxy: TUP@4.7.1
StrategyBase (osETH) 0x57ba429517c3473B6d34CA9aCd56c0e735b94c02 0xB427...7230 Proxy: TUP@4.7.1
StrategyBase (swETH) 0x0Fe4F44beE93503346A3Ac9EE5A26b130a5796d6 0xB427...7230 Proxy: TUP@4.7.1
StrategyBase (wBETH) 0x7CA911E83dabf90C90dD3De5411a10F1A6112184 0xB427...7230 Proxy: TUP@4.7.1
StrategyBase (sfrxETH) 0x8CA7A5d6f3acd3A7A8bC468a8CD0FB14B6BD28b6 0xB427...7230 Proxy: TUP@4.7.1
StrategyBase (lsETH) 0xAe60d8180437b5C34bB956822ac2710972584473 0xB427...7230 Proxy: TUP@4.7.1
StrategyBase (mETH) 0x298aFB19A105D59E74658C4C334Ff360BadE6dd2 0xB427...7230 Proxy: TUP@4.7.1
Strategies - Special

The following strategies differ significantly from the other strategies deployed/used above:

Name Proxy Implementation Notes
EigenStrategy (EIGEN) 0xaCB55C530Acdb2849e6d4f36992Cd8c9D50ED8F7 0x509A...8f40 Proxy: TUP@4.9.0
Beacon Chain ETH 0xbeaC0eeEeeeeEEeEeEEEEeeEEeEeeeEeeEEBEaC0 - - Used for Beacon Chain ETH shares
- Not a real contract!
EigenPods
Name Proxy Implementation Notes
EigenPod (beacon) 0x5a2a4F2F3C18f09179B6703e63D9eDD165909073 0x53cC...e868 - Beacon: BeaconProxy
- Pods: UpgradeableBeacon
EIGEN/bEIGEN
Name Proxy Implementation Notes
Eigen 0xec53bf9167f50cdeb3ae105f56099aaab9061f83 0x2C4A...2E50 Proxy: TUP@4.9.0
Backing Eigen 0x83E9115d334D248Ce39a6f36144aEaB5b3456e75 0xF2b2...9b17 Proxy: TUP@4.9.0
SignedDistributor - 0x035b...ad02 -
AVS

The following contracts are used by AVSs.

Name Proxy Implementation Notes
ReleaseManager 0xeDA3CAd031c0cf367cF3f517Ee0DC98F9bA80C8F 0xD0cb...13bd Proxy: TUP@4.9.0
TaskMailbox 0x132b466d9d5723531F68797519DfED701aC2C749 0xA2A9...c55e Proxy: TUP@4.9.0
Multichain - Source

The multichain protocol expects AVSs to register on the source chain. AVS's stakes are then transported to supported destination chains. For the mainnet Ethereum network, the destination chains include Base.

Name Proxy Implementation Notes
CrossChainRegistry 0x9376A5863F2193cdE13e1aB7c678F22554E2Ea2b 0xdc23...642C Proxy: TUP@4.9.0
KeyRegistrar 0x54f4bC6bDEbe479173a2bbDc31dD7178408A57A4 0x0f93...C219 Proxy: TUP@4.9.0
Multichain - Destination
Name Proxy Implementation Notes
OperatorTableUpdater 0x5557E1fE3068A1e823cE5Dcd052c6C352E2617B5 0x8c4F...adF7 Proxy: TUP@4.9.0
ECDSACertificateVerifier 0xd0930ee96D07de4F9d493c259232222e46B6EC25 0x2d52...40dC Proxy: TUP@4.9.0
BN254CertificateVerifier 0x3F55654b2b2b86bB11bE2f72657f9C33bf88120A 0x9907...eaD2 Proxy: TUP@4.9.0
Multisigs
Name Proxy Implementation Notes
PauserRegistry - 0xB876...2806
OZ: TimelockController - 0xC06F...Aa2d
OZ: TimelockController (BEIGEN) - 0x7381...bc53
OZ: Proxy Admin - 0x8b95...2444
Pauser Multisig 0x5050389572f2d220ad927CcbeA0D406831012390 -
Community Multisig 0xFEA47018D632A77bA579846c840d5706705Dc598 -
Executor Multisig 0x369e6F597e22EaB55fFb173C6d9cD234BD699111 -
Operations Multisig 0xBE1685C81aA44FF9FB319dD389addd9374383e90 -
Protocol Council Multisig 0x461854d84ee845f905e0ecf6c288ddeeb4a9533f -
Foundation Multisig 0xbb00DDa2832850a43840A3A86515E3Fe226865F2 -
BEIGEN Executor Multisig 0x942eaF324971440384e4cA0ffA39fC3bb369D67d -
Multichain Deployer Multisig 0xa3053EF25F1F7d9D55a7655372B8a31D0f40eCA9 -
Base

Note: Base only supports verification of tasks from stake that lives on Mainnet Ethereum. Standard core protocol functionality (restaking, slashing) does not exist on Base.

Multichain - Destination
Name Proxy Implementation Notes
OperatorTableUpdater 0x5557E1fE3068A1e823cE5Dcd052c6C352E2617B5 0x792F...419D Proxy: TUP@4.9.0
ECDSACertificateVerifier 0xd0930ee96D07de4F9d493c259232222e46B6EC25 0xf2cC...025F Proxy: TUP@4.9.0
BN254CertificateVerifier 0x3F55654b2b2b86bB11bE2f72657f9C33bf88120A 0xc6c7...5D7d Proxy: TUP@4.9.0
AVS

The following contracts are used by AVSs.

Name Proxy Implementation Notes
TaskMailbox 0x132b466d9d5723531F68797519DfED701aC2C749 0x6eD2...c1bd Proxy: TUP@4.9.0
Multisigs
Name Proxy Implementation Notes
PauserRegistry - 0xb175...6ea
OZ: TimelockController - 0xE48D...ABd
OZ: Proxy Admin - 0xDb00...9CE
Pauser Multisig 0x1a051eF1524cbaEa57Ca04319ef93fE78903D5E6 -
Operations Multisig 0x8eD55c7640497Db15aC32c698c1a06E2E604d865 -
Protocol Council Multisig 0x841B988aaEafce13b6456ff34015FBc42Aedb7e6 -
Community Multisig 0xC107547924C7D1d3E2d10eA8DF534BBfC5F373e6 -
Executor Multisig 0x5d808608Ad70873ca4dE50F83416264dc15264C2 -
Multichain Deployer Multisig 0xa3053EF25F1F7d9D55a7655372B8a31D0f40eCA9 -
Testnet Sepolia

You can view the deployed contract addresses below, or check out the code itself on the testnet-sepolia branch.

Core
Name Proxy Implementation Notes
DelegationManager 0xD4A7E1Bd8015057293f0D0A557088c286942e84b 0xa6Fe...C0f5 Proxy: TUP@4.9.0
StrategyManager 0x2E3D6c0744b10eb0A4e6F679F71554a39Ec47a5D 0x7D59...E6F1 Proxy: TUP@4.9.0
EigenPodManager 0x56BfEb94879F4543E756d26103976c567256034a 0x151e...75D4 Proxy: TUP@4.9.0
AVSDirectory 0xa789c91ECDdae96865913130B786140Ee17aF545 0x3216...6D69 Proxy: TUP@4.9.0
RewardsCoordinator 0x5ae8152fb88c26ff9ca5C014c94fca3c68029349 0x5Ac1...FF61 Proxy: TUP@4.9.0
AllocationManager 0x42583067658071247ec8CE0A516A58f682002d07 0x87cf...4f31 Proxy: TUP@4.9.0
PermissionController 0x44632dfBdCb6D3E21EF613B0ca8A6A0c618F5a37 0xEBDa...B720 Proxy: TUP@4.9.0
KeyRegistrar 0xA4dB30D08d8bbcA00D40600bee9F029984dB162a 0x1AFc...68e6 Proxy: TUP@4.9.0
Strategies

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 0x3f98...c5Ac Proxy: TUP@4.9.0
StrategyBase 0x427e627Bc7E83cac0f84337d3Ad94230C32697D3 0x8f31...5cEf - Beacon: BeaconProxy
- Strategies: UpgradeableBeacon
StETH Strategy 0x8b29d91e67b013e855EaFe0ad704aC4Ab086a574 0x8f31...5cEf Strategy Factory deployed
WETH Strategy 0x424246eF71b01ee33aA33aC590fd9a0855F5eFbc 0x8f31...5cEf Strategy Factory deployed
Strategies - Special

The following strategies differ significantly from the other strategies deployed/used above:

Name Proxy Implementation Notes
EigenStrategy (EIGEN) 0x8E93249a6C37a32024756aaBd813E6139b17D1d5 0xE8E4...7afC Proxy: TUP@4.9.0
Beacon Chain ETH 0xbeaC0eeEeeeeEEeEeEEEEeeEEeEeeeEeeEEBEaC0 - - Used for Beacon Chain ETH shares
- Not a real contract!
EigenPods

NOTE: Due to the permissioned validator set on Sepolia, all EigenPod functionality is PAUSED.

Name Proxy Implementation Notes
EigenPod (beacon) 0x0e19E56E41D42137d00dD4f51EC2F613E50cAcf4 0xb1B6...B533 - Beacon: BeaconProxy
- Pods: UpgradeableBeacon
EIGEN/bEIGEN
Name Proxy Implementation Notes
Eigen 0x0011FA2c512063C495f77296Af8d195F33A8Dd38 0x7ec6...BD6F Proxy: TUP@4.9.0
Backing Eigen 0xc5B857A92245f64e9D90cCc5b096Db82eB77eB5c 0x1298...3173 Proxy: TUP@4.9.0
AVS

The following contracts are used by AVSs.

Name Proxy Implementation Notes
ReleaseManager 0x59c8D715DCa616e032B744a753C017c9f3E16bf4 0x67cE...2ac6 Proxy: TUP@4.9.0
TaskMailbox 0xB99CC53e8db7018f557606C2a5B066527bF96b26 0x49A8...5AdB Proxy: TUP@4.9.0
Multichain - Source

The multichain protocol expects AVSs to register on the source chain. AVS's stakes are then transported to supported destination chains. For the sepolia network, the destination chains are sepolia and base-sepolia.

Name Proxy Implementation Notes
CrossChainRegistry 0x287381B1570d9048c4B4C7EC94d21dDb8Aa1352a 0x4a93...3084 Proxy: TUP@4.9.0
Multichain - Destination
Name Proxy Implementation Notes
OperatorTableUpdater 0xB02A15c6Bd0882b35e9936A9579f35FB26E11476 0x0F26...0F5C Proxy: TUP@4.9.0
ECDSACertificateVerifier 0xb3Cd1A457dEa9A9A6F6406c6419B1c326670A96F 0xFc86...7B26 Proxy: TUP@4.9.0
BN254CertificateVerifier 0xff58A373c18268F483C1F5cA03Cf885c0C43373a 0x7a2b...8f5d Proxy: TUP@4.9.0
Multisigs
Name Proxy Implementation Notes
PauserRegistry - 0x63AA...20f3
OZ: TimelockController - 0x1BEF...1b5B
OZ: Proxy Admin - 0x56E8...6Fa1
Pauser Multisig 0x0B415f75980D863872C3eb8caa76E6eC8Bc81536 0x4167...461a Proxy: Gnosis@1.3.0
Community Multisig 0x6f8459810197cc9fE123BBeB918451757a4fBAc6 0x4167...461a Proxy: Gnosis@1.3.0
Executor Multisig 0x4FDA8998EC3b7d4b4A612d45FeB8fB36734470f2 0x4167...461a Proxy: Gnosis@1.3.0
Operations Multisig 0xb094Ba769b4976Dc37fC689A76675f31bc4923b0 0x4167...461a Proxy: Gnosis@1.3.0
Testnet Hoodi

You can view the deployed contract addresses below, or check out the code itself on the testnet-hoodi branch.

Core
Name Proxy Implementation Notes
DelegationManager 0x867837a9722C512e0862d8c2E15b8bE220E8b87d 0x6FE5...1407 Proxy: TUP@4.9.0
StrategyManager 0xeE45e76ddbEDdA2918b8C7E3035cd37Eab3b5D41 0x1B76...0f62 Proxy: TUP@4.9.0
EigenPodManager 0xcd1442415Fc5C29Aa848A49d2e232720BE07976c 0x0F26...0F5C Proxy: TUP@4.9.0
AVSDirectory 0xD58f6844f79eB1fbd9f7091d05f7cb30d3363926 0xE368...13Eb Proxy: TUP@4.9.0
RewardsCoordinator 0x29e8572678e0c272350aa0b4B8f304E47EBcd5e7 0x35a8...0525 Proxy: TUP@4.9.0
AllocationManager 0x95a7431400F362F3647a69535C5666cA0133CAA0 0xe1b7...fFB9 Proxy: TUP@4.9.0
PermissionController 0xdcCF401fD121d8C542E96BC1d0078884422aFAD2 0x151e...75D4 Proxy: TUP@4.9.0
Strategies

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 0xfB7d94501E4d4ACC264833Ef4ede70a11517422B 0x0d82...A3f3 Proxy: TUP@4.9.0
StrategyBase 0x6d28cEC1659BC3a9BC814c3EFc1412878B406579 0xa621...063A - Beacon: BeaconProxy
- Strategies: UpgradeableBeacon
StETH Strategy 0xf8a1a66130d614c7360e868576d5e59203475fe0 0xa621...063A Strategy Factory deployed
WETH Strategy 0x24579aD4fe83aC53546E5c2D3dF5F85D6383420d 0xa621...063A Strategy Factory deployed
Strategies - Special

The following strategies differ significantly from the other strategies deployed/used above:

Name Proxy Implementation Notes
EigenStrategy (EIGEN) 0xB27b10291DBFE6576d17afF3e251c954Ae14f1D3 0xd318...caE8 Proxy: TUP@4.9.0
Beacon Chain ETH 0xbeaC0eeEeeeeEEeEeEEEEeeEEeEeeeEeeEEBEaC0 - - Used for Beacon Chain ETH shares
- Not a real contract!
EigenPods
Name Proxy Implementation Notes
EigenPod (beacon) 0x5e1577f8efB21b229cD5Eb4C5Aa3d6C4b228f650 0x49A8...5AdB - Beacon: BeaconProxy
- Pods: UpgradeableBeacon
EIGEN/bEIGEN
Name Proxy Implementation Notes
Eigen 0x8ae2520954db7D80D66835cB71E692835bbA45bf 0x68F3...2FE9 Proxy: TUP@4.9.0
Backing Eigen 0x6e60888132Cc7e637488379B4B40c42b3751f63a 0x43e4...1C4 Proxy: TUP@4.9.0
Multisigs
Name Proxy Implementation Notes
PauserRegistry - 0x64D7...c13D
OZ: TimelockController - 0xE332...2d15
OZ: Proxy Admin - 0xE7f4...2257
Testnet Base Sepolia

Note: Testnet Base Sepolia only supports verification of tasks from stake that lives on Sepolia. Standard core protocol functionality (restaking, slashing) does not exist on Base Sepolia.

Multichain - Destination
Name Proxy Implementation Notes
OperatorTableUpdater 0xB02A15c6Bd0882b35e9936A9579f35FB26E11476 0x6514...2D6F Proxy: TUP@4.9.0
ECDSACertificateVerifier 0xb3Cd1A457dEa9A9A6F6406c6419B1c326670A96F 0xEE41...ca1A Proxy: TUP@4.9.0
BN254CertificateVerifier 0xff58A373c18268F483C1F5cA03Cf885c0C43373a 0x59B1...f525 Proxy: TUP@4.9.0
AVS

The following contracts are used by AVSs.

Name Proxy Implementation Notes
TaskMailbox 0xB99CC53e8db7018f557606C2a5B066527bF96b26 0x46CF...16db Proxy: TUP@4.9.0
Multisigs
Name Proxy Implementation Notes
PauserRegistry - 0x6ffE...672B
OZ: Proxy Admin - 0xbe2F...0b5
Pauser Multisig 0x2DD9BDDf299C846f61C0105905f9a60ee99242d6 -
Operations Multisig 0x4ACA7e09eF90612941A9185A6690Dbe9e39aae8f -
Multichain Deployer Multisig 0xA591635DE4C254BD3fa9C9Db9000eA6488344C28 -

Branching

Branches we use:

  • main: The canonical, most up-to-date branch, containing the work-in-progress code for upcoming releases
  • Vx.y.z: Release branch with version x.y.z that matches a release of EigenLayer, release branch is always cut from main via cherry-picking
  • release-dev/xxx: A development branch for a large feature to be released, the branch should eventually be deleted after merge to main

Building Apps & Services on EigenLayer

Developer & User Basics

Our documentation is a great place to start to understand EigenLayer and the Eigen ecosystem. If you are an audio/visual learner, check out the "You Could've Invented EigenLayer" video.

To understand more about how our ecosystem and its participants work, checkout the guides below. These are split out by who you are: AVS developers, restakers and Operators. All have different roles and interactioons with EigenLayer:

Contract Docs & Deep Dive

The most up-to-date and technical documentation on our core contracts 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 learn more about interfacing with the EigenLayer core contracts onchain, see our middleware repo.

To get an idea of how users interact with these contracts, check out our integration tests: /src/test/integration.

Contribute to the Core

See CONTRIBUTING.

Contributions that do not follow our fork base PR practices will be either rejected or immediately deleted based on your role, preventing branch pollution, keeping our repository clean, make it more readable and searchable.

About

Contracts of EigenLayer

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors