Skip to main content

DelegationFactory

DelegationFactory deploys DelegationContract instances for the Execution Delegation Framework (EDF). Anyone can call deploy(). The new contract's owner and cooldown cannot be changed after deployment; its initial delegate can later be rotated or revoked.

Only contracts deployed from this factory are accepted for Lido Oracle and Deposit Security Committee seats. Factory addresses per network are listed on the deployed contracts page.

Methods​

deploy()​

Deploys a new DelegationContract.

function deploy(address owner, address delegate, uint256 cooldown) external returns (address instance);
note

Reverts if any of the following is true:

  • owner is zero address;
  • delegate is equal to owner.

Parameters​

NameTypeDescription
owneraddressOwner of the new contract. Cannot be changed later.
delegateaddressInitial delegate, active immediately. Zero address deploys the contract without a delegate.
cooldownuint256Seconds between a nomination and the moment the new delegate becomes active. Cannot be changed later. The custody policy requires at least 172800 (48 hours).

Returns​

NameTypeDescription
instanceaddressAddress of the new DelegationContract

Events​

DelegationContractDeployed()​

Emitted for each deployed DelegationContract.

event DelegationContractDeployed(
address indexed instance,
address indexed owner,
address indexed delegate,
uint256 cooldown
);