Amendment Idea: Vault Investment Extension #378
Closed
dangell7
started this conversation in
Ideas (pre standard proposal)
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Vault Investment Extension
Abstract
This extension enables Single Asset Vaults to generate yield through authorized VaultBrokers who can invest vault assets. It introduces secure fee collection, two-phase withdrawals for liquidity management, and economic penalties for broker failures. The design prioritizes security and simplicity while enabling vaults to compete with traditional mutual fund economics.
1. Motivation
Single Asset Vaults currently hold assets idle, creating an opportunity cost that makes them economically unviable compared to traditional investment vehicles. This extension addresses:
2. Overview
2.1. Core Components
2.2. Key Principles
3. Specification
3.1. Modified Vault Fields
Add to existing Vault object from XLS-65:
3.2. Transactions
3.2.1. VaultBrokerSet
Assigns or removes a VaultBroker for a Vault.
3.2.1.1. Fields
3.2.1.2. Failure Conditions
tecNO_PERMISSION: Not the Vault ownertecNO_TARGET: Vault doesn't existtemMALFORMED: Invalid VaultBroker accounttemMALFORMED: ManagementFeeRate > 1000 (10% max)tecNO_LINE: PendingRedemptions > 0 (cannot change during redemptions)3.2.1.3. State Changes
3.2.2. VaultBrokerExecute
Executes investment transactions on behalf of vault pseudo-account.
3.2.2.1. Fields
3.2.2.2. Execution Flags
Use same flags as Batch transactions (XLS-56):
3.2.2.3. RawTransactions
Each transaction in array:
Accountfield replaced with vault's pseudo-accountProhibited transaction types:
3.2.2.4. Failure Conditions
tecNO_PERMISSION: Sender is not Vault.VaultBrokertemMALFORMED: Contains prohibited transaction typetemMALFORMED: Transaction would send to broker accounttecUNFUNDED: Insufficient assets for investment3.2.2.5. State Changes
3.2.3. VaultWithdraw (Modified)
Modified to support two-phase withdrawals.
3.2.3.1. Additional Flags
3.2.3.2. Behavior by Flag
No flags (Normal Withdrawal):
tfWithdrawRequest:
tfWithdrawCancel:
3.2.3.3. Additional Failure Conditions
For tfWithdrawRequest:
tecDUPLICATE: Already has pending requestFor tfWithdrawCancel:
tecNO_ENTRY: No matching request foundFor normal withdrawal:
tecNO_LINE: Insufficient AssetsAvailabletecNO_ENTRY: No pending request matching amount3.2.4. VaultFeeCollect
Collects accrued management fees.
3.2.4.1. Fields
3.2.4.2. Failure Conditions
tecNO_PERMISSION: Account is not Vault.VaultBrokertecNO_TARGET: Vault doesn't existtecNO_LINE: AccruedFees = 0tecNO_AUTH: RedemptionDeadline passed (fees forfeited)tecUNFUNDED: Vault has insufficient assets3.2.4.3. State Changes
3.3. Fee Accrual
Fees accrue automatically on any vault interaction:
3.4. Investment Constraints
4. Security Considerations
4.1. Broker Restrictions
4.2. Penalty Mechanism
If RedemptionDeadline passes with unfulfilled redemptions:
4.3. Attack Prevention
5. Example Flows
5.1. Investment Flow
5.2. Withdrawal Request Flow
5.3. Fee Collection Flow
6. Integration with Life Insurance Protocol
For insurance vaults:
7. Economics
7.1. Fee Structure
Typical management fees:
7.2. Broker Incentives
Brokers are incentivized to:
Beta Was this translation helpful? Give feedback.
All reactions