AVS Governance
Overview
The AVS Governance contract 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.
Each AVS deploys its own AVS Governance contract, and actions are controlled by multiple Governance Multisigs.
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)
Functions
Operator Methods
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
_operatorSignature
The operator signature required by EigenLayer
_blsRegistrationSignature
A BLS signature (see note below)
The _blsRegistrationSignature
parameter is a BLS signature:
Domain:
keccak256("OthenticBLSAuth")
Message:
keccak256(abi.encode(msg.sender, avsGovernanceAddress, block.chainid))
AVSs may require operators to be pre-approved by an "Allowlister" service. If the AVS requires to be allowlisted, the operators must pass an additional bytes
parameter containing the Allowlister's signature.
_blsKey
uint256[4]
The operator's public BLS key
_authToken
bytes
The signature from the Allowlister service
_rewardsReceiver
address
The address to which operator rewards should be sent
_operatorSignature
The operator signature required by EigenLayer
_blsRegistrationSignature
A BLS signature (see note below)
The _blsRegistrationSignature
parameter is a BLS signature:
Domain:
keccak256("OthenticBLSAuth")
Message:
keccak256(abi.encode(msg.sender, avsGovernanceAddress, block.chainid))
Unregister as an operator. This method receives no arguments.
Governance Methods
The governance methods are used by the AVS developers or DAO in order to control and manage their AVS governance configurations.
setNumOfOperatorsLimit(uint256)
Limit the amount of active operators allowed on the AVS at any given moment.
_newLimitOfNumOfOperators
uint256
The new limit for the number of operators.
setSlashingRate(uint256)
Set the amount of token slashed per offense (in wei units).
_slashingRate
uint256
The penalty incurred by slashing (in wei units)
depositRewardsWithApprove(uint256)
Deposit rewards into the AVS Treasury contract.
_amount
uint256
The amount of ERC20 token to transfer to the treasury
setAvsName(string)
Set a human-readable identifier for your AVS contract.
_avsName
string
New AVS name
setAvsGovernanceMultisig(address)
Set the account that is authorized to invoke the governance methods.
_newAvsGovernanceMultisig
address
The new governance owner
setAvsGovernanceLogic(IAvsGovernanceLogic)
Connect an AvsLogic
contract to the governance contract.
_avsGovernanceLogic
IAvsGovernanceLogic
Address of an AvsLogic contract
setSupportedStrategies(address[])
Set the list of EigenLayer strategies supported by the AVS.
_strategies
address[]
updateAVSMetadataURI(string)
Update the AVS Metadata URI which contains the information appearing on the EigenLayer UI.
_metadataURI
string
The new metadata URI
setMinVotingPower(uint256)
Set the Minimum Voting Power required to register an operator to the AVS. Learn more here.
_minVotingPower
uint256
minimum voting power
setMaxEffectiveBalance(uint256)
Set the Maximum Effective Balance for the AVS. Learn more here.
_maxBalance
uint256
maximum effective balance
setMinSharesForStrategy(address, uint256)
Set a minimum voting power per strategy required to register an operator to the AVS. Learn more here.
_strategy
address
address of the strategy
_minShares
uint256
minimum voting power for that strategy
Last updated