Olla Protocol Overview
Olla is a liquid staking protocol for Aztec. It is split into two main contract groups: OllaVault (ERC-7540/ERC-4626 vault that holds user assets, mints stAztec, and manages async withdrawals) and OllaCore (orchestration and accounting engine that coordinates rebalancing, staking, and fee computation). OllaCore instructs OllaVault via CORE_ROLE during rebalance cycles, while OllaVault delegates pricing to OllaCore via view calls.
Architecture overview
Contract architecture
Roles
User
No special role required. Any address can call these functions. Users interact with OllaVault, which implements ERC-7540 (async redemptions) and ERC-4626 (sync deposits).
Permissionless Operations
No special role required. Anyone can call these functions (rebalance is cooldown-gated).
Guardian
Requires GUARDIAN_ROLE on OllaCore, OllaVault, and SafetyModule.
Staking Provider Admin
Requires STAKING_PROVIDER_ADMIN_ROLE on StakingProviderRegistry.
Governance
The governance admin wallet holds proposer, executor, and canceller roles on OllaGovernance, which inherits TimelockControllerUpgradeable. All governance actions (parameter changes, upgrades, governance transfers) must be scheduled, wait for the timelock delay, and then executed. OllaGovernance is the owner of OllaCore and OllaVault (via Ownable2Step) and holds DEFAULT_ADMIN_ROLE on all satellite contracts.