AVS Governance
Last updated
Last updated
The acts as the interface of the AVS on Ethereum blockchain (L1).
The AVS Governance manages the registration and de-registration of operators, enforces governance policies, and coordinates interactions between AVS operators and various system components. The AVS Governance uses roles and access-control authorizations to manage permissions, handle operator deposits and rewards, and allow for the update of governance logic and settings. Additionally, it interfaces with other contracts for message handling, registry management, and signature verification to maintain the integrity and functionality of the AVS.
The AVS Governance handles:
Pausing and Unpausing contracts in emergency situations
Registration and deregistration of operators
Reward distribution for operators
Configuration of slashing and penalty conditions
Set supported strategies (security for AVS)
These methods are used to manage Operator registration/de-registration.
Register to non-allowlisted AVSs. If the AVS registration is permissionless, anyone can register as long as they comply with the AVS' minimum requirements.
_blsKey
uint256[4]
The operator's public BLS key
_rewardsReceiver
address
The address to which operator rewards should be sent
_blsRegistrationSignature
The operator signature required by EigenLayer
authToken
bytes
A BLS signature (see note below)
It registers as an operator on EigenLayer using the provided signature and authentication token.
_eigenSig
SignatureWithSaltAndExpiry
signature details
_authToken
bytes
authentication token
To unregister an Operator from the AVS, call the following methods:
Unregister as an operator from the AVS. This method receives no arguments.
Unregister as an operator from the EigenLayer. This method receives no arguments.
To update rewards receiver address for an Operator, call the following methods:
Update the rewards receiver address
_newRewardsReceiver
address
New rewards receiver address
Complete the rewards receiver address modification
The governance methods are used by the AVS developers or DAO in order to control and manage their AVS governance configurations.
Set a human-readable identifier for your AVS contract.
_avsName
string
New AVS name
Set the account that is authorized to invoke the governance methods.
_newAvsGovernanceMultisig
address
The new governance owner
_avsGovernanceLogic
IAvsGovernanceLogic
Address of an AvsLogic contract
Transfer control of the AVS governance to a new multisig wallet.
_newAvsGovernanceMultisig
address
Address of the AVS governance multisig
Set the required delay before updating the rewards receiver address, by default its 7 days.
_rewardsReceiverModificationDelay
uint256
delay in milliseconds
Set the address responsible for syncing the AVS governance multiplier
_newAvsGovernanceMultiplierSyncer
address
AVS governance multiplier syncing address
Limit the amount of active operators allowed on the AVS at any given moment.
_newLimitOfNumOfOperators
uint256
The new limit for the number of operators
_minVotingPower
uint256
minimum voting power
_maxBalance
uint256
maximum effective balance
Set the list of EigenLayer strategies supported by the AVS.
_stakingContractsDetails
StakingContractInfo[]
List of staking contracts supported by the AVS
Sets the minimum stake amount for a specified staking contract
_stakingContract
address
The address of the Staking contract
_minStake
uint256
The minimum stake (in wei) required from an Operator in the given staking contract to be considered eligible.
Sets the voting power multiplier for a specified staking contract, it can only be called by Multipler syncer
multiplier
is the weight assigned to a particular staking contract, which you can configure as per your requirements for each staking contract. Multipliers directly influences voting power and must be a positive integer.
_votingPowerMultiplier
VotingPowerMultiplier
Voting power multiplier
Sets the voting power multipliers for multiple staking contracts, it can only be called by Multipler syncer
_votingPowerMultipliers
VotingPowerMultiplier[]
Voting power multipliers
Set allow list functionality
_isAllowlisted
boolean
is allowed boolean value
_p2pAuthenticationEnabled
bool
value to set
metadataURI
string
Transfers all AVS treasury funds to the AVS governance multisig.
avsName
Returns the name of the AVS
avsTreasury
Returns the address of the AVS treasury contract
getL1MessageHandler
avsDirectory
Returns the address of the AVS directory contract
EXTENSION_IMPLEMENTATION
Returns the address of the extension contract exposing additional functions.
minVotingPower
maxEffectiveBalance
getNumOfOperatorsLimit
Returns the maximum number of operators allowed
isOperatorRegistered(address)
Checks whether a given operator
address is registered
votingPower(address)
getOperatorRestakedStrategies(address)
Returns the strategies restaked by the Operator
votingPowerPerStakingContracts(address, address[])
Returns Voting power for the specified Staking contracts
getIsOperatorEjected(address)
Returns whether an operator is blacklisted
p2pAuthenticationEnabled
getIsAllowlisted
Returns a boolean indicating whether Operator allowlisting is enabled
getRestakeableStrategies
Returns restakable strategies for the AVS
minStakeAmountPerStakingContract
Returns the minimum stake amount required for a given staking contract
stakingContracts
Returns an array of registered staking contract addresses
Create or update the configuration for a specific slashing condition
Parameters
_condition
: The specific SlashingCondition
enum value (i.e. 1/2/3) you want to update (e.g., DoubleAttestations
, IncorrectAttestations
).
_config
: SlashingConfig
struct containing.
activated
bool
Enable/ disable this slashing condition
ejectOperator
bool
Auto-eject operator on violation
stakeSlashedPercentage
uint24
% of unique stake to slash
Returns the current slashing configuration for a given condition.
_condition
SlashingCondition
SlashingCondition
enum value specifying the slashing condition to query (e.g., DoubleAttestations, IncorrectAttestations).
This function specifies the minimum slashable stake required in a given staking contract. Operators who have staked less than the defined threshold will be considered inactive.
Parameters
_stakingContract
address
The address of the staking contract to configure.
_minSlashableStake
uint256
The minimum amount of required stake (in wei)
Connect an contract to the governance contract. Learn more .
Set the required to register an operator to the AVS. Learn more .
Set the for the AVS. Learn more .
Enable for the AVS network. Learn more .
Register AVS to Eigen layer dashboard. Learn more .
The metadataURI
Returns the address of the L1 contract
Returns the required
Returns the allowed
Returns of the Operator
Returns a boolean value indicating whether is enabled