ACP-267: Primary Network validator uptime requirement increases from 80% to 90%.Read the proposal

Introduction

Learn about the staking operations available for managing validators and delegators in a Permissionless L1

This chapter covers the end-to-end validator and delegator lifecycle on a permissionless L1 managed by the PoSValidatorManager contract (via either NativeTokenStakingManager or ERC20TokenStakingManager). We will learn all of the operations available, understand the theory, and demo them using the Toolbox:

  • Register a validator (stake tokens, register on P-Chain, complete on L1)
  • Delegate to a validator (stake tokens, update weight on P-Chain, complete on L1)
  • Remove a validator (initiate removal, update weight on P-Chain, complete removal + claim rewards)
  • Remove a delegation (initiate removal, update weight on P-Chain, complete removal + claim rewards)

PoA vs PoS Operations

If you've completed the Permissioned L1s course, many of the flows will feel familiar. The key differences are:

AspectPermissioned (PoA)Permissionless (PoS)
Who can add validatorsOnly the contract ownerAnyone who stakes enough tokens
Staking requirementNone (weight is assigned)Must lock tokens as stake
DelegationNot supportedSupported (delegators earn rewards)
Validator removalOwner-initiated onlyOwner of the validation period can remove
RewardsNoneUptime-based staking rewards
Weight determinationManually set by ownerProportional to staked tokens

Key Concept: The 3-Phase Pattern

All staking operations follow the same three-phase communication pattern between the L1 and the P-Chain:

  1. Initiation (L1) - Call a function on the Staking Manager contract, which locks tokens and emits a Warp message
  2. P-Chain Processing - Aggregate signatures and submit the transaction to the P-Chain
  3. Completion (L1) - Call a completion function with the P-Chain's signed response to finalize the operation

VMC & P-Chain Communication Flow

Key Concept: Staking Rewards

Unlike permissioned L1s, permissionless L1s distribute staking rewards based on validator uptime:

  • Validator rewards are distributed when the validator is removed via completeValidatorRemoval
  • Delegation rewards are distributed when the delegation is removed via completeDelegatorRemoval, minus a delegation fee paid to the validator
  • Delegation fees accumulated by validators are claimed separately via claimDelegationFees after the validation ends
  • Rewards are calculated by the RewardCalculator contract, which you deployed during the Staking Manager Setup

Is this guide helpful?