Deploy PoA Manager
Deploy the PoA Manager contract with your multi-sig wallet as the owner
Now that you have your Safe/Ash wallet set up, it's time to deploy the PoA Manager contract. This contract will act as the intermediary between your multi-sig and the Validator Manager.
What the PoA Manager Does
The PoA Manager is initialized with two key addresses:
- Owner: Your Safe/Ash multi-sig wallet address
- Validator Manager: The VMC address on C-Chain (from the previous section)
constructor(address _owner, address _validatorManager) {
_transferOwnership(_owner);
validatorManager = IValidatorManager(_validatorManager);
}Deployment Architecture
After this deployment, you'll have:
Note: After deployment, the PoA Manager will be owned by your Safe wallet, but it won't own the Validator Manager yet. That ownership transfer happens in the next step.
Deploy the Contract
Use the tool below to deploy your PoA Manager. You'll need:
- Safe Address: Your Ash/Safe wallet address from the previous section
- Subnet ID: To identify your L1's Validator Manager
The tool will:
- Automatically detect your Validator Manager address from the selected subnet
- Deploy the PoA Manager with your Safe as the owner
- Verify the deployment
Checking requirements...
Verification Checklist
After deployment, verify:
- ✅ Contract Deployed: You have a valid PoA Manager address
- ✅ Owner Set: The
owner()function returns your Safe address - ✅ Validator Manager Linked: The
validatorManager()function returns the correct VMC address
Current Ownership State
At this point, the ownership chain looks like this:
Safe Wallet → owns → PoA Manager
Your EOA → owns → Validator Manager (still!)We need one more step to complete the chain: transferring Validator Manager ownership to the PoA Manager.
Next Steps
In the next section, you'll:
- Transfer Validator Manager ownership to the PoA Manager
- Complete the multi-sig governance setup
This will establish the full ownership chain:
Safe Wallet → owns → PoA Manager → owns → Validator ManagerIs this guide helpful?


