MORE
  • Introduction
  • MORE Vaults
    • Vaults Framework
      • Diamond Standard (EIP-2535)
      • Component Interactions
      • Upgrade & Governance Flow
    • Core Protocol Components
      • Factory
      • Core Facets
      • Registries
      • Internal Libraries
      • Accounting
    • Connectors
      • AMMs & DEXes
      • Staking
      • Lending
      • Leverage
      • Oracles
      • External Interfaces
      • Multicall
    • Security & Governance
      • Roles & Access Control
      • Upgrade Flow & Timelock
      • Configuration Guard Rails
      • Registries as Boundaries
      • Error & Event Catalogue
    • Developer Workflows
      • Deploying a New Vault
      • Extend with New Facets
      • Indexer Integration
    • Reference & Glossary
      • Event Index
      • Capabilities
      • Terms & Abbreviations
      • Contracts
  • MORE Markets
    • Markets Framework
      • Liquidity Protocol
      • Supply
      • Borrow
      • Repay
      • Withdraw
      • Liquidations
      • Flash Loans
      • Risks
    • Markets
      • Liquidity Pool
      • Reserve
      • Incentives
      • Oracles
    • Contracts
    • Build
  • Resources
    • Code, Licenses & Audits
    • Brand Assets
  • Privacy Policy
  • Terms of Use
Powered by GitBook
On this page
  • VaultFacet (Custody & ERC-4626)
  • ConfigurationFacet (Safety Rails)
  • AccessControlFacet (Roles & Timelocks)
  • DiamondCutFacet (Upgrade Lever)
  • DiamondLoupeFacet (Introspection)
  • MulticallFacet (Batching with Timelock)
  • BaseFacetInitializer (One-shot Init Guard)
  1. MORE Vaults
  2. Core Protocol Components

Core Facets

Each vault is a Diamond whose behaviour is the sum of its facets. The protocol ships a "minimum viable bundle" that covers custody, accounting, governance, and upgrade plumbing. Strategists can add more facets, but may not remove these core ones.

VaultFacet (Custody & ERC-4626)

Handles deposits, withdrawals, share issuance, and asset accounting. It enforces per-deposit hooks such as slippage checks and liquidity caps, ensuring no strategy logic can bypass the vault’s accounting core.

ConfigurationFacet (Safety Rails)

Lets managers tune parameters (TVL caps, allowed assets, protocol-level fee bucket) inside bounded ranges and behind role checks, so risk settings evolve without redeployments. ​contract.

AccessControlFacet (Roles & Timelocks)

Stores OWNER, CURATOR, and GUARDIAN roles in a single storage slot and exposes helpers to rotate them. Library modifiers consume those flags so all facets share the same authority model. ​contract.

DiamondCutFacet (Upgrade Lever)

The exclusive gateway to diamondCut, enabling add / replace / remove of selectors. Factory admins can swap this facet out for a hardened version, or omit it entirely to create an immutable vault. ​contract.DiamondCutFacet

DiamondLoupeFacet (Introspection)

Surfaces facets(), facetFunctionSelectors(), and other reflection helpers so anyone can verify what code is live before trusting a vault. ​contract.DiamondLoupeFa…

MulticallFacet (Batching with Timelock)

Wraps arbitrary calls (including diamondCut) in a two-phase submit/execute flow, forcing a protocol-wide delay and giving depositors time to respond. ​contract.MulticallFacet

BaseFacetInitializer (One-shot Init Guard)

Implements an _initialized flag in a fixed storage slot so facets can run constructor-like logic exactly once, protecting against replay attacks during upgrades. ​abstract.BaseFacetIniti…

Take-away: A “boring” MORE Vault already ships with custody, configuration, governance, and upgrade semantics. Strategists only need to supply strategy-specific code.


PreviousFactoryNextRegistries

Last updated 16 days ago