Architecture Overview
Comparison of AVS Types
Feature | ValidatorAVS | GatewayAVS |
---|---|---|
Purpose | For validators to opt in to expose their slots for preconfirmation duties | For operators handling preconfirmations |
Duties | Basic block proposal | Preconfirmation tasks |
Rewards | Shared with GatewayAVS | Shared with ValidatorAVS |
Slashing Conditions | Accepting blocks from non-opt in relays | Reneging on preconfirmation commitments |
Software Requirements | Basic ETH client + Commit-boost | Advanced pricing & preconf off-chain services |
EigenLayer Integration
Both ValidatorAVS and GatewayAVS inherit from EigenLayerMiddleware, which implements theIServiceManager
interface required by EigenLayer. This integration enables our AVSs to participate in EigenLayer’s ecosystem.
Registration Workflows
Operators have three options for registration, each with its own workflow and requirements:1. Validator AVS Only (For Passive Stakers)
2. Gateway AVS Only (For Preconfirmation Specialists)
3. Both AVSs via Self-Delegation (Full Participation)
ValidatorAVS External Functions
Registration Functions
registerOperatorToAVS
Name | Type | Description |
---|---|---|
operator | address | The address of the operator to register |
operatorSignature | ISignatureUtils.SignatureWithSaltAndExpiry | Signature proving operator control |
registerValidators
Name | Type | Description |
---|---|---|
valPubKeys | bytes[] | Array of validator BLS public keys |
podOwner | address | Address of the EigenPod owner |
delegatedGatewayPubKey | bytes | The delegated gateway public key (cannot be empty) |
Opt-Out Functions
Batch Operations
Reward Management
handleValidatorRewards
Name | Type | Description |
---|---|---|
submission | IRewardsCoordinator.OperatorDirectedRewardsSubmission | The reward submission info |
validatorAmount | uint256 | Total amount allocated to validators |
GatewayAVS External Functions
Registration Functions
registerOperatorToAVSWithPubKey
Name | Type | Description |
---|---|---|
operator | address | The address of the operator to register |
operatorSignature | ISignatureUtils.SignatureWithSaltAndExpiry | The operator’s signature for AVS registration |
operatorBLSPubKey | bytes | The operator’s BLS public key |
Reward Management
createOperatorDirectedAVSRewardsSubmission
Name | Type | Description |
---|---|---|
submissions | IRewardsCoordinator.OperatorDirectedRewardsSubmission[] | Array containing reward submissions for Gateway and Validator |
handleGatewaySubmission
Name | Type | Description |
---|---|---|
submission | IRewardsCoordinator.OperatorDirectedRewardsSubmission | The gateway reward submission |
Type | Description |
---|---|
uint256 | The amount allocated to validators |