Overview
All admin instructions share a single admin address. As the protocol grows, different operators may need read-only analytics access, fee-parameter changes, or emergency pause authority without sharing a single admin key.
Problem
A monolithic admin role creates a single point of failure and makes fine-grained operational security impossible. Compromise of the admin key would expose all privileged operations.
Proposed Solution
- Introduce a role registry:
Admin, FeeManager, PauseOperator, ReadAnalytics
- Each role maps to one or more authorized addresses stored in persistent storage
- Restrict instructions to the appropriate role (e.g. only
PauseOperator can call pause)
Admin role can assign and revoke all other roles
Acceptance Criteria
Overview
All admin instructions share a single admin address. As the protocol grows, different operators may need read-only analytics access, fee-parameter changes, or emergency pause authority without sharing a single admin key.
Problem
A monolithic admin role creates a single point of failure and makes fine-grained operational security impossible. Compromise of the admin key would expose all privileged operations.
Proposed Solution
Admin,FeeManager,PauseOperator,ReadAnalyticsPauseOperatorcan callpause)Adminrole can assign and revoke all other rolesAcceptance Criteria
StreamError::Unauthorizedon mismatch