Set Initial Configuration

Configure your Validator Manager with initial parameters

Setting the initial configuration is a critical step that establishes how your Validator Manager will operate.

This process involves calling the initialize function through the TransparentUpgradeableProxy, which forwards the call to your ValidatorManager implementation.

Validator Manager Deployment Initialize

How Initialization Works

The Initialize Function

The configuration is set by calling initialize() with a ValidatorManagerSettings struct. This call:

  • Goes through the proxy at 0xfacade... (not directly to the implementation)
  • Can only be called once due to OpenZeppelin's initializer modifier
  • Sets up the ownership structure and operational parameters

Configuration Parameters

The ValidatorManagerSettings struct contains four essential parameters:

  1. Admin Address: The account that controls validator management operations (your connected wallet). Can be changed through ownership transfer.
  2. Subnet ID: Links the Validator Manager to your specific L1 & can't be changed after initialization.
  3. Churn Period Seconds:Time window for tracking validator set changes (must be ≤ 86400 seconds)
  4. Maximum Churn Percentage: Limits how much validator weight can change per period (1-20% protocol maximum). Example: 20% means max 1/5 of total weight can change

Set Configuration

Initial Validator Manager Configuration

This will initialize the ValidatorManager contract with the initial configuration.

Select the Validator Manager

Select the proxy contract pointing to the ValidatorManager implementation you want to initialize.

Select Subnet/L1 for the Validator Manager

Enter the SubnetID of the Subnet/L1 this Validator Manager contract will manage the validators for. The P-Chain will only accept validator set changes from the Validator Manager contract addresses and blockchainID combination that was indicated in the ConvertSubnetToL1Tx.

Set the Validator Manager Configuration

Set the intitial configuration for the Validator Manager contract. The admin address should be a multisig wallet for production L1s, since it can take full control over the L1 validator set by arbitrarily changing the validator set. The churn settings define how rapid changes to the validator set can be made.

Is this guide helpful?

Report Issue

On this page