Role separation: upgrade ≠ fee ≠ oracle
Cap (cUSD / stcUSD)'s assessment for RD-F-035 — scored yellow on the v1.7.0 rubric. The evidence below is the curator's reasoning for this score.
Evidence summary #
AccessControl uses per-function-selector roles theoretically enabling separation. In practice, all roles are controlled by DEFAULT_ADMIN_ROLE (dev multisig via Timelock). Fee auction and oracle are separate contracts but their role admin is the same single group.
Sources #
- GitHubAccessControl.sol — role computation and admin assignmentAccessControl.sol: role(bytes4 selector, address contract) pattern. DEFAULT_ADMIN_ROLE = dev multisig. grantAccess/revokeAccess require DEFAULT_ADMIN_ROLE.retrieved 2026-05-17
Methodology #
Determine whether the upgrade role, fee-collection role, and oracle-config role are assigned to distinct addresses.
See the full factor methodology and distribution across all protocols →
rubric_version v1.7.0 protocol cap factor RD-F-035 score yellow collected_at 2026-05-17 10:56:24