Role types
Global roles
Global roles
Standard roles that apply across the entire protocol. If you grant an account the
VEHICLE_STEAM_DEPOSIT role globally, they can create deposit queries on all yield sources. VEHICLE_STEAM_REDEEM works the same way for redeem operations.Scoped roles
Scoped roles
Roles restricted to a specific contract. Grant the Scoped roles are encoded as
VEHICLE_STEAM_DEPOSIT role scoped to a single yield source, and the account can only create deposit queries on 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. Deposits and redeems can be opened independently.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.1
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.2
Grant operator roles
Authorize your operators and asset managers for the specific strategies and yield sources they manage.
3
Authorize yield sources
Allow the strategy to interact with specific yield sources.
4
Configure fee management roles
Key roles reference
Yield source operations
Strategy management
Fee management
Infrastructure
Checking permissions
Admin transfer
TheDEFAULT_ADMIN_ROLE uses a time-delayed transfer for security:
1
Initiate transfer
2
Wait for delay
The configured delay (e.g., 48 hours) must pass.
3
Accept transfer
The new admin calls: