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
  1. MORE Vaults
  2. Vaults Framework

Diamond Standard (EIP-2535)

MORE Vaults treats each vault as a Diamond proxy: a single address that delegates calls to a bundle of plug-and-play modules called facets.

Diamond concept
MORE implementation

Cut – add / replace / remove selectors

DiamondCutFacet exposes diamondCut, the one authoritative entry point for upgrading logic. ​

Loupe – introspection

DiamondLoupeFacet returns the facet-selector map so UIs and auditors can verify what code is live on-chain. ​

Initialization slot – guard against double init

Every facet inherits BaseFacetInitializer, which stores an _initialized flag in a fixed slot and reverts on re-entry. ​

Why this matters:

  • Modularity without proxy sprawl: a single ERC-20 share contract can absorb new strategies or fee logic over time.

  • Audit friendliness: facets are small, self-contained, and version-tagged; diffing two upgrades is a selector-level exercise.

  • Gas savings: users pay for one deployment (the diamond) instead of N proxies per strategy.

PreviousVaults FrameworkNextComponent Interactions

Last updated 16 days ago