Skip to main content

For AI agents: the complete documentation index is at llms.txt. Markdown versions of pages are available by appending .md to the URL or sending Accept: text/markdown.

Roles and Permissions

This page defines protocol roles, access modifiers, and which addresses may call each privileged function across the Orion Finance protocol smart contracts.


Vault-Level Roles

Manager

The Manager is the vault's administrative owner. The manager address is set at vault creation and may update fees, access control, and the assigned strategist.

Strategist

The Strategist submits portfolio allocation intents. A strategist may be:

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

Intent submission sets a target allocation; fulfillment depends on epoch execution, liquidity, and adapter behavior.

User

A User is any address that may interact with a vault to deposit assets, redeem shares, and manage pending deposit or redemption requests. Vaults configure user access as permissionless or permissioned through three optional slots — deposit, holder, and transfer - each an independent contract (address(0) = permissionless on that slot). See Vault Access Control.

Protocol-Level Roles

Admin

The Admin owns protocol-level contracts: OrionConfig, LiquidityOrchestrator, TransparentVaultFactory, EncryptedVaultFactory, and PriceAdapterRegistry.

Security implementation: The admin role is held by a multi-signature Gnosis Safe. Administrative transactions require multiple signer approvals under the Safe's configured threshold.

Guardian

The Guardian is a designated address for emergency response under Terms of Service §7.4. Policy intent prioritizes emergency pause via LiquidityOrchestrator.pause(), plus the narrow OrionConfig controls listed in the matrix below (setMinDepositAmount, setMinRedeemAmount, setMaxFulfillBatchSize), not broad operational retuning. Pause freezes protocol interaction; it does not restore lost funds or guarantee a specific recovery timeline.

Automation Registry

The Automation Registry is an off-chain service that drives the epoch-based rebalancing cycle. It monitors LiquidityOrchestrator via checkUpkeep() and submits upkeep when conditions are met.


Permission Matrix

Vault-Level Functions

FunctionManagerStrategistUser
updateFeeModelYesNoNo
claimVaultFeesYesNoNo
setDepositAccessControlYesNoNo
setHolderAccessControlYesNoNo
setTransferAccessControlYesNoNo
updateStrategistYesNoNo
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.

Factory Functions

FunctionWhitelisted ManagerAdmin
createVaultYesNo
setVaultBeaconNoYes

Note: The createVault caller becomes the vault manager. Whitelisting is enforced via OrionConfig.isWhitelistedManager. Transparent vaults use TransparentVaultFactory; encrypted vaults use EncryptedVaultFactory. Both expose createVault / setVaultBeacon as above.

OrionConfig Functions

FunctionAdminGuardianManager
setLiquidityOrchestratorYesNoNo
setVaultFactoryYesNoNo
setPriceAdapterRegistryYesNoNo
setProtocolRiskFreeRateYesNoNo
setMinDepositAmountYesYesNo
setMinRedeemAmountYesYesNo
setFeeChangeCooldownDurationYesNoNo
setMaxFulfillBatchSizeYesYesNo
setGuardianYesNoNo
addWhitelistedAssetYesNoNo
removeWhitelistedAssetYesNoNo
addWhitelistedManagerYesNoNo
removeWhitelistedManagerYesNoNo
removeOrionVaultYesNoYes
updateProtocolFeesYesNoNo

LiquidityOrchestrator Functions

FunctionAdminGuardianAutomation Registry
pauseYesYesNo
unpauseYesNoNo
updateEpochDurationYesNoNo
updateMinibatchSizeYesNoNo
updateExecutionMinibatchSizeYesNoNo
updateCommitmentMinibatchSizeYesNoNo
updateAutomationRegistryYesNoNo
updateVerifierYesNoNo
updateVKeyYesNoNo
setTargetBufferRatioYesNoNo
setSlippageToleranceYesNoNo
withdrawLiquidityYesNoNo
claimProtocolFeesYesNoNo
performUpkeepYesNoYes