Role types
Global roles
Global roles
Standard roles that apply across the entire protocol. If you grant an account the
VEHICLE_STEAM role globally, they can interact with all yield sources.Scoped roles
Scoped roles
Roles restricted to a specific contract. Grant the Scoped roles are encoded as
VEHICLE_STEAM role scoped to a single yield source, and the account can only interact with that source.keccak256(abi.encodePacked(role, scope)).Public roles
Public roles
Roles effectively granted to everyone. When a role is public,
hasRole checks always return true regardless of the account.Deploy and configure access control
Every Conduit needs an EAC contract. This section walks you through deploying one and granting the roles your product needs.Deploy ExternalAccessControl
Deploy the EAC contract with your initial admin. Set
initialDelay to a non-zero value (e.g. 48 hours) for production deployments — this protects admin transfers with a time delay.Grant operator roles
Authorize your operators and asset managers for the specific strategies and yield sources they manage.
Key roles reference
Yield source operations
| Role | Allows |
|---|---|
VEHICLE_STEAM | create(), resume(), unlock(), recover() on Vehicles |
VEHICLE_SET_INTERCEPTIONS | Configure reward interception rules |
VEHICLE_ALLOW | Manage module allowlist |
Strategy management
| Role | Allows |
|---|---|
MULTI_VEHICLE_DEPOSIT | Direct deposits into accounting |
MULTI_VEHICLE_DISPATCH | Send assets to yield sources |
MULTI_VEHICLE_REBALANCE | Rebalance across positions |
MULTI_VEHICLE_MOVE_ASSETS | Move assets between sectors |
MULTI_VEHICLE_MOVE_SHARES | Move shares between sectors |
MULTI_VEHICLE_SET_VEHICLE_AUTHORIZATION | Authorize/deauthorize yield sources |
MULTI_VEHICLE_SET_QUEUES | Configure queue parameters |
MULTI_VEHICLE_SET_THRESHOLDS | Set operational thresholds |
MULTI_VEHICLE_PROGRESS_QUERY | Advance sub-query state |
Fee management
| Role | Allows |
|---|---|
FEE_MANAGER_SET_FEES | Update fee percentages |
FEE_MANAGER_SET_FEE_RECIPIENTS | Update fee recipients |
FEE_MANAGER_DISPATCH_ERC20 | Distribute collected fees |
FEE_MANAGER_REDEEM_VEHICLE_SHARES | Redeem fee shares |
Infrastructure
| Role | Allows |
|---|---|
FACTORY_SPAWN | Deploy new contracts via factories |
BEACON_UPGRADE | Upgrade beacon implementations |
BEACON_FREEZE | Permanently freeze a beacon |
BEACON_PAUSE / BEACON_UNPAUSE | Pause/unpause beacons |
Checking permissions
Admin transfer
TheDEFAULT_ADMIN_ROLE uses a time-delayed transfer for security: