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.

IOrionVault

IOrionVault​

Interface for Orion vaults

SynchronousCallDisabled​

error SynchronousCallDisabled()

External synchronous calls are disabled in the current context.

DepositRequest​

event DepositRequest(address sender, uint256 assets)

A deposit request has been queued for a beneficiary.

Parameters​

NameTypeDescription
senderaddressThe address credited in the deposit queue and on fulfill.
assetsuint256The amount of assets being deposited.

DepositRequestCancelled​

event DepositRequestCancelled(address user, uint256 amount)

A deposit request has been cancelled.

Parameters​

NameTypeDescription
useraddressThe address of the user whose deposit request was cancelled.
amountuint256The amount of assets that were requested for deposit.

RedeemRequest​

event RedeemRequest(address sender, uint256 shares)

A redemption request has been made by a user.

Parameters​

NameTypeDescription
senderaddressThe address of the user making the redemption request.
sharesuint256The number of shares being redeemed.

RedeemRequestCancelled​

event RedeemRequestCancelled(address user, uint256 shares)

A redemption request has been cancelled.

Parameters​

NameTypeDescription
useraddressThe address of the user whose redemption request was cancelled.
sharesuint256The number of shares that were requested for redemption.

StrategistUpdated​

event StrategistUpdated(address newStrategist)

The strategist has been updated.

Parameters​

NameTypeDescription
newStrategistaddressThe new strategist address.

Redeem​

event Redeem(address user, uint256 redeemAmount, uint256 sharesBurned)

A redemption request has been fulfilled.

Parameters​

NameTypeDescription
useraddressThe address of the user whose redemption was fulfilled.
redeemAmountuint256The amount of assets redeemed by the user.
sharesBurneduint256The number of shares burned for the user.

RedemptionFailed​

event RedemptionFailed(address user, uint256 amount, uint256 shares)

Transfer to the redeemer failed; funds are held in escrow until claimed.

Parameters​

NameTypeDescription
useraddressThe address of the recipient whose transfer failed.
amountuint256The underlying amount that could not be transferred.
sharesuint256The number of shares that could not be paid out.

RedemptionClaimed​

event RedemptionClaimed(address user, uint256 amount)

A previously failed redemption transfer has been claimed.

Parameters​

NameTypeDescription
useraddressThe address of the claimer.
amountuint256The underlying amount claimed.

VaultFeesAccrued​

event VaultFeesAccrued(uint256 managementFee, uint256 performanceFee)

Fees have been accrued.

Parameters​

NameTypeDescription
managementFeeuint256The amount of management fees accrued.
performanceFeeuint256The amount of performance fees accrued.

VaultFeesClaimed​

event VaultFeesClaimed(address manager, uint256 feeAmount)

Fees have been claimed.

Parameters​

NameTypeDescription
manageraddressThe address of the manager who claimed the fees.
feeAmountuint256The amount of fees claimed.

DepositAccessControlUpdated​

event DepositAccessControlUpdated(address newDepositAccessControl)

The deposit access control contract has been updated.

Parameters​

NameTypeDescription
newDepositAccessControladdressThe new controller (address(0) = permissionless).

HolderAccessControlUpdated​

event HolderAccessControlUpdated(address newHolderAccessControl)

The holder access control contract has been updated.

Parameters​

NameTypeDescription
newHolderAccessControladdressThe new controller (address(0) = permissionless).

TransferAccessControlUpdated​

event TransferAccessControlUpdated(address newTransferAccessControl)

The transfer access control contract has been updated.

Parameters​

NameTypeDescription
newTransferAccessControladdressThe new controller (address(0) = permissionless).

DepositFulfillmentFailed​

event DepositFulfillmentFailed(address user, uint256 amount)

Deposit fulfillment skipped because the user may not hold shares; underlying escrowed.

Parameters​

NameTypeDescription
useraddressThe address whose deposit could not be fulfilled into shares.
amountuint256The underlying amount escrowed for later claim.

FeeType​

Fee type

enum FeeType {
ABSOLUTE,
SOFT_HURDLE,
HARD_HURDLE,
HIGH_WATER_MARK,
HURDLE_HWM
}

FeeModel​

Fee model

This struct is used to define the fee model for the vault

struct FeeModel {
enum IOrionVault.FeeType feeType;
uint16 performanceFee;
uint16 managementFee;
uint256 highWaterMark;
}

config​

function config() external view returns (contract IOrionConfig)

Orion config getter

Return Values​

NameTypeDescription
[0]contract IOrionConfigThe Orion config contract address

manager​

function manager() external view returns (address)

Manager getter

Return Values​

NameTypeDescription
[0]addressThe manager address

strategist​

function strategist() external view returns (address)

Strategist getter

Return Values​

NameTypeDescription
[0]addressThe strategist address

pendingVaultFees​

function pendingVaultFees() external view returns (uint256)

Pending vault fees getter

Return Values​

NameTypeDescription
[0]uint256Pending vault fees amount

activeFeeModel​

function activeFeeModel() external view returns (struct IOrionVault.FeeModel)

Returns the active fee model (old during cooldown, new after)

Return Values​

NameTypeDescription
[0]struct IOrionVault.FeeModelThe currently active fee model

overrideIntentForDecommissioning​

function overrideIntentForDecommissioning() external

Override intent to 100% underlying asset for decommissioning

Can only be called by the OrionConfig contract

requestDeposit​

function requestDeposit(uint256 assets) external

Submit an asynchronous deposit request.

No share tokens are minted immediately. The specified amount of underlying tokens is transferred to the liquidity orchestrator for centralized liquidity management.

Parameters​

NameTypeDescription
assetsuint256The amount of the underlying asset to deposit.

requestDepositFor​

function requestDepositFor(address beneficiary, uint256 assets) external

Submit an async deposit request on behalf of beneficiary.

Parameters​

NameTypeDescription
beneficiaryaddressThe LP whose pending deposit balance and eventual shares are credited.
assetsuint256The amount of underlying to deposit.

cancelDepositRequest​

function cancelDepositRequest(uint256 amount) external

Cancel a previously submitted deposit request.

Allows LPs to withdraw their funds before any share tokens are minted. The request must still have enough balance remaining to cover the cancellation. Funds are returned from the liquidity orchestrator to the LP.

Parameters​

NameTypeDescription
amountuint256The amount of funds to withdraw.

requestRedeem​

function requestRedeem(uint256 shares) external

Submit a redemption request.

No share tokens are burned immediately. The specified amount of share tokens is transferred to the vault.

Parameters​

NameTypeDescription
sharesuint256The amount of the share tokens to withdraw.

cancelRedeemRequest​

function cancelRedeemRequest(uint256 shares) external

Cancel a previously submitted redemption request.

Allows LPs to recover their share tokens before any burning occurs. The request must still have enough shares remaining to cover the cancellation. Share tokens are returned from the vault.

Parameters​

NameTypeDescription
sharesuint256The amount of share tokens to recover.

claimUnderlying​

function claimUnderlying() external

Claim underlying funds from a previously failed redemption transfer or a deposit fulfillment that could not mint shares.

Called by the user after the transfer blocker / eligibility issue has been resolved.

updateStrategist​

function updateStrategist(address newStrategist) external

Update the strategist address

The strategist is responsible for setting allocation logic for the vault's assets. This function enables managers to update the strategist. Strategist can be a smart contract or an address. It is the FULL responsibility of the manager to ensure the strategist is capable of performing its duties.

Parameters​

NameTypeDescription
newStrategistaddressThe new strategist address.

updateFeeModel​

function updateFeeModel(uint8 mode, uint16 performanceFee, uint16 managementFee) external

Update the fee model parameters

Parameters​

NameTypeDescription
modeuint8The calculation mode for fees
performanceFeeuint16The performance fee
managementFeeuint16The management fee

claimVaultFees​

function claimVaultFees(uint256 amount) external

Claim accrued vault fees

Parameters​

NameTypeDescription
amountuint256The amount of vault fees to claim

setDepositAccessControl​

function setDepositAccessControl(address newDepositAccessControl) external

Set deposit access control contract

Only callable by vault manager. Non-zero addresses must ERC-165 as IOrionDepositAccessControl.

Parameters​

NameTypeDescription
newDepositAccessControladdressAddress of the new access control contract (address(0) = permissionless)

setHolderAccessControl​

function setHolderAccessControl(address newHolderAccessControl) external

Set holder access control contract

Only callable by vault manager. Non-zero addresses must ERC-165 as IOrionHolderAccessControl.

Parameters​

NameTypeDescription
newHolderAccessControladdressAddress of the new access control contract (address(0) = permissionless)

setTransferAccessControl​

function setTransferAccessControl(address newTransferAccessControl) external

Set transfer access control contract

Only callable by vault manager. Non-zero addresses must ERC-165 as IOrionTransferAccessControl.

Parameters​

NameTypeDescription
newTransferAccessControladdressAddress of the new access control contract (address(0) = permissionless)

pendingDeposit​

function pendingDeposit(uint256 fulfillBatchSize) external view returns (uint256)

Get total pending deposit amount across all users

This returns asset amounts, not share amounts

Parameters​

NameTypeDescription
fulfillBatchSizeuint256The maximum number of requests to process per fulfill call

Return Values​

NameTypeDescription
[0]uint256Total pending deposits denominated in underlying asset units (e.g., USDC, ETH)

pendingRedeem​

function pendingRedeem(uint256 fulfillBatchSize) external view returns (uint256)

Get total pending redemption shares across all users

This returns share amounts, not underlying asset amounts

Parameters​

NameTypeDescription
fulfillBatchSizeuint256The maximum number of requests to process per fulfill call

Return Values​

NameTypeDescription
[0]uint256Total pending redemptions denominated in vault share units

pendingDepositCount​

function pendingDepositCount() external view returns (uint256)

Get the number of pending deposit queue entries.

Return Values​

NameTypeDescription
[0]uint256The number of unique users with non-zero pending deposit requests.

pendingRedeemCount​

function pendingRedeemCount() external view returns (uint256)

Get the number of pending redeem queue entries.

Return Values​

NameTypeDescription
[0]uint256The number of unique users with non-zero pending redeem requests.

pendingRedeemBatch​

function pendingRedeemBatch(uint256 fulfillBatchSize) external view returns (address[] users, uint256[] shares)

Get the list of pending redeem entries (users and shares) for the next fulfill batch

This function enables per-request conversion, ensuring exact rounding behaviour for state transition.

Parameters​

NameTypeDescription
fulfillBatchSizeuint256The maximum number of requests to consider

Return Values​

NameTypeDescription
usersaddress[]Addresses with pending redeem requests in batch order
sharesuint256[]Share amounts per user (same index as users)

totalPendingUnderlyingClaims​

function totalPendingUnderlyingClaims() external view returns (uint256 total)

Total underlying assets owed to users whose redemption transfer failed

Return Values​

NameTypeDescription
totaluint256Sum of all pending underlying claims across all users

pendingUnderlyingClaim​

function pendingUnderlyingClaim(address account) external view returns (uint256 amount)

Underlying escrowed for account from a failed redemption payout or deposit fulfillment.

Parameters​

NameTypeDescription
accountaddressThe address to query.

Return Values​

NameTypeDescription
amountuint256Underlying asset units held in vault escrow for this account.

fulfillDeposit​

function fulfillDeposit(uint256 depositTotalAssets) external

Process all pending deposit requests and mint shares to depositors

Parameters​

NameTypeDescription
depositTotalAssetsuint256The total assets associated with the deposit requests

fulfillRedeem​

function fulfillRedeem(uint256 redeemTotalAssets) external

Process all pending redemption requests and burn shares from redeemers

Parameters​

NameTypeDescription
redeemTotalAssetsuint256The total assets associated with the redemption requests

accrueVaultFees​

function accrueVaultFees(uint256 managementFee, uint256 performanceFee) external

Accrue vault fees for a specific epoch

Parameters​

NameTypeDescription
managementFeeuint256The amount of management fees to accrue in underlying asset units
performanceFeeuint256The amount of performance fees to accrue in underlying asset units