Policies
Policies are intended to provide particular guarantees that help establish trust between current investors and fund managers:
actions of fund managers
actions of current investors
actions of potential investors
Policy rules and behavior:
Implement one or many "policy hooks", e.g., policies that implement the
PostBuyShares
hook are called to validate state immediately following the minting of new shares by depositCan define whether or not it is disableable
Can define whether or not it is updatable
Can be added at any time, if the hook cannot aversely limit the actions of current investors (i.e., policies that implement
PreTransferShares
orRedeemSharesForSpecificAssets
hooks cannot be added outside of fund setup / migration / reconfiguration)
Policies: Potential investor actions
These policies limit by whom and on what terms new shares can be received
AllowedDepositRecipientsPolicy
Hook:
PostBuyShares
Disableable: Yes
Updatable: Yes (but the list defines if list items are updatable)
Description: Limits the recipients of new deposits to a list of addresses
AllowedSharesTransferRecipientsPolicy
Hook:
PreTransferShares
Disableable: Yes
Updatable: Yes (but the list defines if list items are updatable)
Description: Limits the recipients of shares transfers to a list of addresses
MinMaxInvestmentPolicy
Hook:
PostBuyShares
Disableable: Yes
Updatable: Yes
Description: Sets bounds on the investment amount of a single deposit
A max amount of 0 can be used to disable all new deposits
E.g., minimum of 100 USDC and max 10,000 USDC
E.g., minimum of 100 USDC and no max
Policies: Fund manager actions
These policies limit fund manager actions that might be used to drain, hide value, or act outside of the fund's mandate
AllowedAdapterIncomingAssetsPolicy
Hook:
PostCallOnIntegration
Disableable: No
Updatable: No (but the list defines if list items are updatable)
Description: Limits the assets that can be received via an adapter action
AllowedAdaptersPolicy
Hook:
PostCallOnIntegration
Disableable: No
Updatable: No (but the list defines if list items are updatable)
Description: Limits the
IntegrationManager
adapters that can be usedIntended purpose: Prevent fund managers from using arbitrary adapters. Most funds should elect to use the Council-maintained list of known adapters.
AllowedAdaptersPerManagerPolicy
Hook:
PostCallOnIntegration
Disableable: Yes
Updatable: Yes
Description: Limits the
IntegrationManager
adapters that can be used, per managerIntended purpose: Limit the adapters that each asset manager can use (the owner can use any). Intended for cases where the any asset manager is not fully trusted by the owner.
AllowedExternalPositionTypesPolicy
Hooks:
CreateExternalPosition
ReactivateExternalPosition
Disableable: No
Updatable: No
Description: Limits the external position "types" (e.g., Compound CDP) that can be used, by blocking adding external positions to the vault.
Intended purpose: The primary purpose is to prevent a manager from using external positions at all, though it can also be used to limit the kinds of external positions allowed
E.g., No external positions are allowed
E.g., Only Compound CDPs are allowed
AllowedExternalPositionTypePerManagerPolicy
Hooks:
CreateExternalPosition
PostCallOnExternalPosition
ReactivateExternalPosition
RemoveExternalPosition
Disableable: Yes
Updatable: Yes
Description: Limits the external position "types" (e.g., Compound CDP) that can be used, per manager
Intended purpose: Limit the external position types that each asset manager can use (the owner can use any). Intended for cases where the any asset manager is not fully trusted by the owner.
CumulativeSlippageTolerancePolicy
Hook:
PostCallOnIntegration
Disableable: No
Updatable: No
Description: Limits value loss (i.e., slippage) that can occur via adapter actions over a "tolerance period" (7 days). Funds define their own tolerance amount (e.g., 5%, 10%, etc). When an adapter action results in slippage, that slippage amount is added to a cumulative slippage total. The accumulated slippage then diminishes over the "tolerance period duration" at a constant rate based on the fund's chosen tolerance. This policy allows bypassing the slippage checks entirely if the adapter being called is in a Council-maintained list on the
AddressListRegistry
(adapters that cannot be manipulated by asset managers to steal fund value).Intended purpose: Slow the rate at which a malicious manager can drain a fund enough to allow alerting and exiting
E.g., a fund with 10% tolerance can suffer a maximum slippage in any one trade of 10%, and then a maximum slippage of the replenished amount (10% * secondsPassed / oneWeekInSeconds) until the end of the 7 day tolerance period.
OnlyRemoveDustExternalPositionPolicy
Hook:
RemoveExternalPosition
Disableable: No
Updatable: N/A (no settings)
Description: Allows removing an external position from the vault's
activeExternalPositions
only if its value can be considered negligible (i.e., dust). The dust threshold is maintained by the Council. This policy allows properly-signaled underlying assets of the external position without a valid price to be valued as0
Intended purpose: Prevent a manager from hiding significant value in untracked external positions, while allowing the removal of negligible-valued positions that count towards the vault's
POSITIONS_LIMIT
and add significant gas costs to fund functionality
OnlyUntrackDustOrPricelessAssetsPolicy
Hook:
RemoveTrackedAssets
Disableable: No
Updatable: N/A (no settings)
Description: Allows removing an asset from the vault's
trackedAssets
only if a) it does not have a valid price or b) its value can be considered negligible (i.e., dust). The dust threshold is maintained by the Council.Intended purpose: Prevent a manager from hiding significant value in the vault as untracked assets, while allowing the removal of negligible-valued positions that count towards the vault's
POSITIONS_LIMIT
and add significant gas costs to fund functionality, and also allowing the removal of assets with invalid prices that block deposits and other functionality.
Policies: Current investor actions
These policies prevent investors from intentionally or unintentionally disrupting fund strategies and processes
AllowedAssetsForRedemptionPolicy
Hook:
RedeemSharesForSpecificAssets
Disableable: Yes
Updatable: No (but the list defines if list items are updatable)
Description: Manager defines the assets that are allowed to be included in specific asset redemption
E.g., do not allow any assets (i.e., do not allow specific asset redemption)
E.g., allow only WETH and MLN
MinAssetBalancesPostRedemptionPolicy
Hook:
RedeemSharesForSpecificAssets
Disableable: Yes
Updatable: No
Description: Manager defines the minimum asset balances that must remain in the vault after a specific asset redemption
Intended purpose: Guaranteed continued functionality of gas relayer (WETH) and auto-shares buyback (MLN) by maintaining min balances
E.g., At least 1 WETH and 10 MLN must remain in the vault after each redemption
NoDepegOnRedeemSharesForSpecificAssetsPolicy
Hook:
RedeemSharesForSpecificAssets
Disableable: Yes
Updatable: Yes
Description: Manager defines a list of assets with acceptable price deviations from a specified value (e.g., USDC can deviate up-to 1% from $1)
Intended purpose: Do not allow specific-asset redemptions during a depeg event, when share price would be artificially high for LP tokens whose pricing assumes adherence to the pool invariant (e.g., USD)
Last updated