Deployment Flow Overview
Quick summary of what we will be doing
For this course, we will be implementing the NativeTokenStakingManager deployed on your L1, using the native token as the staking token.
Reminder that you could alternatively use an ERC20 as your chains staking token (via ERC20TokenStakingManager) and the Validator Manager deployed on another L1.
The following steps will guide you through deploying and configuring a NativeTokenStakingManager:
Deploy Staking Manager
Deploy the NativeTokenStakingManager implementation contract to your L1.
Deploy Reward Calculator
Deploy the ExampleRewardCalculator contract that will determine how staking rewards are distributed based on validator uptime.
Initialize Staking Manager
Call the initialize function with PoSValidatorManagerSettings to configure staking parameters (minimum stake, duration, delegation fees, etc.).
Enable in Native Minter
Add the Staking Manager address as an Enabled address on the Native Minter precompile so it can mint reward tokens.
Transfer Ownership
Transfer ownership of the Reward Manager precompile to the Staking Manager so it can distribute rewards to validators and delegators.
Verify Configuration
Read the contract state to verify all configuration parameters are set correctly.
Happy Building!
Is this guide helpful?


