Ownership Model

An overview of the most important contracts and roles in the ZKsync Stack ecosystem.

This section covers L1 and L2 contracts, their relationships, and the roles that manage them.

Contracts overview

ContractDescriptionOwned byShared within ecosystemSource code
CTM (ChainTypeManager)Trust zone that ensures unified state transition process across chainsProtocolUpgradeHandlerYes, but might have multiple instances with different ownershipSource
BridgehubPrimary ecosystem entry point for L1↔L2 messaging, CTM management, chain registrationProtocolUpgradeHandlerYesSource
L1 SharedBridge (legacy)Bridges assets between L1 and all ZKsync chainsProtocolUpgradeHandlerYesSource
DiamondProxyMain contract of a specific chain, responsible for state transitionCTM (Admin can control some processes)NoFacets
ValidatorTimelockTrustlessly sets a batch execution delayProtocolUpgradeHandlerYes, enforced within CTMSource
VerifierVerifies ZK proofs-Yes, within CTMSource
L1/L2 NativeTokenVaultHolds L1 native ETH and ERC20 tokens bridged into ZKsync chainsProtocolUpgradeHandlerYesNTV
L1/L2 AssetRouterBridges assets between L1 and ZKsync chains, supporting both ETH and ERC20 tokensProtocolUpgradeHandlerYesAsset Router
L1/L2 DA ValidatorsEnsure that pubdata is committed properly-L1: optionally shared, L2: noDefault L1
3rd Party L1
L2

Roles overview

NamePurposeOwned bySharedSource code
DecentralizedGovernance (set of contracts)Owns ProtocolUpgradeHandler, controls all ecosystem contracts, accepts/vetoes proposals.-YesRepository
ChainAdmin- Change fee parameters
- Set validator for a chain
- Set transaction filterer
- Set base token multiplier
- Set pubdata pricing mode
- Set the timestamp when the protocol upgrade will be applied
Chain operator’s MultisigNoSource
ProtocolUpgradeHandlerOwnership of CTM, Bridgehub, L1 and L2 bridges, AssetRouters, NTVsDecentralizedGovernanceYesSource
EcosystemAdmin- Revert batches within CTM
- Set validator to any chain (will be removed in gateway upgrade)
- Create new chain in Bridgehub
- Add a base token in Bridgehub
- Allow bridging to some L2SharedBridge
ML MultisigYesSource
ChainAdmin- Change fee parameters
- Set validator for a chain
- Set transaction filterer
- Set base token multiplier
- Set pubdata pricing mode
- Set the timestamp when the protocol upgrade will be applied
Chain operator’s MultisigNoSource
BlobOperatorEOA that sends CommitBatches transactionsChain operatorNoEOA
OperatorEOA that sends ProveBatches and ExecuteBatches transactionsChain operatorNoEOA
FeeCollectorAn address that receives the funds from fees paid by user transactions on L2Chain operatorNoNot enforced
TokenMultiplierSetterAn address nominated by the ChainAdmin that can set the ETH↔BaseToken price ratioChain operatorNoEOA

FAQ


Made with ❤️ by the ZKsync Community