Skip to main content

Roles and Permissions

This page outlines all roles, modifiers, and permissions across the Orion Finance protocol smart contracts.


Vault-Level Roles

Manager

The manager is responsible for the vault. The manager address is set during vault creation.

Strategist

The strategist is responsible for submitting portfolio allocation intents. The strategist can be either:

  • A wallet address (active management);
  • A smart contract implementing IOrionStrategist (passive management).

User

A User is any address that can interact with vaults to deposit assets, redeem shares, and manage their deposit/redemption requests. User access can be configured as either permissionless or permissioned based on the vault's access control settings via the specific IOrionAccessControl implementation.

Protocol-Level Roles

Admin

The admin is the same entity that owns all protocol-level contracts: OrionConfig, InternalStateOrchestrator, LiquidityOrchestrator, TransparentVaultFactory, and PriceAdapterRegistry.

Security Implementation: The admin role is implemented as a multi-signature Gnosis Safe wallet. Signers follow robust security practices and multiple approvals are required for administrative actions.

Guardian

A designated address with limited emergency and operational permissions.

Automation Registry

The Automation Registry is an off-chain service responsible for driving the protocol's epoch-based rebalancing cycle. This external service monitors the orchestrators via the checkUpkeep() function and automatically executes upkeep when conditions are met.


Permission Matrix

Vault-Level Functions

FunctionManagerStrategistUser
updateFeeModelYesNoNo
claimVaultFeesYesNoNo
setDepositAccessControlYesNoNo
updateStrategistYesNoNo
updateVaultWhitelistYesNoNo
createVaultYesNoNo
submitIntentNo*YesNo
requestDepositYesYesYes
cancelDepositRequestYesYesYes
requestRedeemYesYesYes
cancelRedeemRequestYesYesYes
redeemYesYesYes

Note: A manager can set themselves as the strategist of a vault using updateStrategist, which would allow them to submit intents.

Protocol-Level Functions

FunctionAdminGuardianAutomation Registry
setInternalStateOrchestratorYesNoNo
setLiquidityOrchestratorYesNoNo
setVaultFactoryYesNoNo
setPriceAdapterRegistryYesNoNo
setProtocolRiskFreeRateYesNoNo
setMinDepositAmountYesYesNo
setMinRedeemAmountYesYesNo
setFeeChangeCooldownDurationYesNoNo
setMaxFulfillBatchSizeYesYesNo
setGuardianYesNoNo
pauseAllYesYesNo
unpauseAllYesNoNo
addWhitelistedAssetYesNoNo
removeWhitelistedAssetYesNoNo
addWhitelistedManagerYesYesNo
removeWhitelistedManagerYesNoNo
removeOrionVaultYesNoNo
updateAutomationRegistryYesNoNo
updateEpochDurationYesYesNo
updateMinibatchSizeYesYesNo
updateProtocolFeesYesNoNo
setTargetBufferRatioYesNoNo
withdrawLiquidityYesNoNo
claimProtocolFeesYesNoNo
performUpkeepNoNoYes