Vaults
The vaults
module in the Inception protocol manages how assets are deposited, tokenized, and routed through strategy-specific adapters. It forms the foundation of the Inception inToken infrastructure and enables composability by abstracting different underlying strategies behind a unified vault interface.
Vaults are modular and extensible, powered by a plug-in architecture using adapters and handlers. Each vault is deployed through a factory and interacts with both assets and strategies via well-defined adapter interfaces.
Key Components
1. Base Adapters
InceptionBaseAdapter.sol
: Core abstract contract that standardizes the adapter structure. It handles initialization, asset registration, access control, and compatibility with ERC-4626-like logic.InceptionEigenAdapter.sol
: Adapter implementation integrating EigenLayer strategies into Inception vaults.
2. Adapter Handler
AdapterHandler.sol
: A router that maps vaults to their respective adapters. Ensures that calls from vaults are correctly forwarded to the adapter implementing the logic for the selected strategy.
3. Asset Handler
Controls the list of supported tokens and tracks relationships between vaults and the tokens they can accept.
4. Interfaces
Define the expected structure and communication standard between vaults, adapters, and other contracts (e.g.,
IVault
,IAdapter
, etc.).
Flow Overview
A new vault is created via the factory, specifying:
Accepted asset(s)
Adapter to use
Configuration parameters
Deposits into the vault are routed to the adapter, which executes strategy-specific logic (e.g., restaking, yield generation).
Withdrawals are similarly processed through the adapter, ensuring asset recovery and accounting.
Tokenized representations (e.g.,
inETH
) are minted and burned based on deposits/withdrawals.
Smart Contract Highlights
Contract
Role
InceptionBaseAdapter.sol
Defines adapter logic base class
InceptionEigenAdapter.sol
Specific adapter for EigenLayer strategies
AdapterHandler.sol
Central adapter registry and router
AssetHandler.sol
Asset registry and validation
VaultFactory.sol
(external)
Deploys and configures new vaults
Extensibility
Developers can build new adapters for different protocols (e.g., Lido, Pendle, Morpho).
New strategies only require adapter contracts to follow the same interfaces.
Vaults are upgradeable (OpenZeppelin proxies), allowing iterative improvements and safety fixes.
Notes
Contracts are written in Solidity and follow Hardhat development standards.
.openzeppelin/
folder contains proxy deployment metadata.Tests and deployment scripts are found in
test/
andscripts/
respectively.
Last updated