Protocol Managers
Overview
ProtocolManager contracts are internal governance and operations helpers for changing privileged Curvance configuration through narrower authority surfaces than the full DAO or Emergency Council.
This family is not one inheritance tree. The base ProtocolManager implements scoped, period-limited management for market, oracle, IRM, pause, and position-manager actions. ProtocolManagerDeployment and ProtocolManagerMassPause are standalone managers for deployment-phase market setup and emergency pause operations.
Manager Family
ProtocolManager
General manager for bounded configuration updates on approved managed addresses.
contracts/architecture/ProtocolManager.sol
ProtocolManagerDeployment
Atomic PMD market bootstrap helper that lists two cTokens, seeds cToken reserves, pauses minting, writes token configs, and records a one-time mint-unpause allowance.
contracts/architecture/ProtocolManagerDeployment.sol
ProtocolManagerMassPause
Emergency helper that pauses or unpauses action groups across explicit markets or all registered markets.
contracts/architecture/ProtocolManagerMassPause.sol
Shared Trust Model
All three managers store the Curvance centralRegistry and rely on permissions enforced by the contracts they call.
The base ProtocolManager has two authority layers:
centralRegistry.hasElevatedPermissions(msg.sender)gatesupdateManagementConfig().The immutable
protocolManageraddress gates the operational update functions.
The standalone helpers use an immutable owner:
ProtocolManagerDeployment.owner()can calldeployMarket()andunpauseMarket().ProtocolManagerDeployment.revokeUnpause()can be called by the owner or by an address with market permissions.ProtocolManagerMassPause.owner()can call all mass pause and unpause functions.
Target contracts still enforce their own permissions. A deployed protocol manager must be granted the relevant CentralRegistry permissions, usually market permissions, before its downstream calls can succeed.
Lifecycle Map
Governance deploys a manager with a
centralRegistry, an authority address, and any manager-specific capability settings.Governance grants the manager contract the permissions needed by downstream targets, such as market permissions for
MarketManagerIsolated,DynamicIRM, oracle adaptor, orCombinedAggregatorwrites.For the base
ProtocolManager, elevated permissions configure the managed address set and period limits throughupdateManagementConfig().The configured authority address executes bounded updates through the manager instead of calling the target contracts directly.
For PMD market setup,
ProtocolManagerDeploymentperforms the one-time market listing and mint-pause flow, then later consumes or revokes the pending mint-unpause allowance.For emergency operations,
ProtocolManagerMassPauseapplies action-specific pause scopes across a provided market list or every registered market.
Permission Dependencies
Market token config
ProtocolManager, ProtocolManagerDeployment
Market permissions on MarketManagerIsolated
Market pause flags
ProtocolManager, ProtocolManagerDeployment, ProtocolManagerMassPause
Market permissions on MarketManagerIsolated
Position manager registry
ProtocolManager
Market permissions on MarketManagerIsolated
Dynamic IRM config
ProtocolManager
Market permissions on DynamicIRM
Oracle adaptor PriceGuard config
ProtocolManager
Market permissions on BaseOracleAdaptor
Combined aggregator PriceGuard config
ProtocolManager
Market permissions on CombinedAggregator
Integration Considerations
Treat these pages as internal operator documentation, not public user guidance.
Read live manager addresses from the deployment registry for the chain being operated on.
Do not conflate the base
ProtocolManager.protocolManager()authority with the standalone helperowner()address.Before routing a transaction through a manager, confirm both layers: the caller is authorized on the manager, and the manager contract itself has the permission required by the target.
When a helper can unpause, confirm whether the unpause scope clears only the intended pause flags or every flag in that action group.
Related Pages
ProtocolManager
ProtocolManagerDeployment
ProtocolManagerMassPause
Last updated
Was this helpful?