Deploy & Configure Validator Manager
Deploy and set up your Validator Manager Contract for permissionless staking
This section walks through deploying and configuring your Validator Manager Contract (VMC). This is a multi-step process that establishes the foundation for your permissionless L1.
Overview
The VMC setup involves four key steps:
- Deploy the ValidatorManager implementation
- Upgrade the proxy to point to the implementation
- Initialize the contract with configuration parameters
- Initialize the validator set from your L1 conversion
Step 1: Deploy Validator Manager
First, deploy the ValidatorManager implementation contract and its required ValidatorMessages library.
The ValidatorMessages library handles all message encoding/decoding for P-Chain communication. It's deployed once and can be shared across multiple validator managers.
Step 2: Upgrade Proxy
Link your proxy to the ValidatorManager implementation by upgrading the TransparentUpgradeableProxy at 0xfacade... to point to your newly deployed contract.
Make sure you have your L1 selected in the wallet component
Step 3: Set Initial Configuration
Configure your ValidatorManager with essential parameters through the initialize() function:
- Admin Address: Your wallet address (controls validator operations)
- Subnet ID: Your L1's subnet identifier
- Churn Period: Time window for validator changes (≤ 86400 seconds)
- Maximum Churn Percentage: Weight change limit per period (1-20%)
The initialize() function can only be called once. Double-check your parameters before proceeding.
Step 4: Initialize Validator Set
Finally, initialize your ValidatorManager with the current validator set from your L1 conversion. This bridges P-Chain subnet creation with L1 validator management using cryptographically verified conversion data.
How It Works
The initialization:
- Verifies P-Chain signed conversion data via Avalanche Warp Messaging
- Registers each validator with their weight and node ID
- Marks the validator set as initialized (permanent, one-time operation)
Required Information
You'll need:
- Conversion Data: Validator information from your subnet-to-L1 conversion
- Message Index: Position in the Warp message queue
Initialization can only be done once! Ensure you have the correct validator data.
Next Steps
Congratulations! Your Validator Manager is now fully configured. In the next section, you'll deploy and configure a Staking Manager to enable permissionless participation.
For detailed information about each step, see the Permissioned L1s course.
Is this guide helpful?


