vProtocol Docs
  • Introduction
    • Welcome To vProtocol
    • Protocol Overview
    • Key Features and Benefits
    • Use Case
    • Ecosystem Partners
  • USER GUIDE
    • For Lenders
      • Supply Assets
    • For Borrower
      • Depositing Collateral
      • Borrowing From The Lending Pool
    • For Trader & Developers
      • Using FlashLoans
      • Example Implementation
  • Protocol Architecture
    • Diamond Standard Implementation
    • Core Component
    • Smart Contract Structure
Powered by GitBook
On this page
  • Diamond Standard Implementation
  • Diamond Implementation Details
  1. Protocol Architecture

Diamond Standard Implementation

Diamond Standard Implementation

vProtocol implements the Diamond Standard (EIP-2535) as its core architectural pattern, providing significant advantages for a complex DeFi protocol:

What is the Diamond Standard?

The Diamond Standard is a smart contract standard that enables a contract to be broken down into multiple facets (functional components) while maintaining a single entry point and shared storage. This allows for:

  • Unlimited contract size

  • Modular development

  • Selective upgradeability

  • Enhanced maintainability

Why Diamond for vProtocol?

vProtocol benefits from the Diamond pattern in several ways:

  1. Modularity: Separates concerns like lending, P2P matching, and yield optimization

  2. Upgradeability: Allows specific components to be improved without affecting others

  3. Gas Efficiency: Optimizes deployment and interaction costs

  4. Security: Isolates vulnerabilities and simplifies auditing

  5. Extensibility: Makes adding new features straightforward

Diamond Implementation Details

The vProtocol Diamond consists of:

Diamond Core

The central contract that users interact with, containing:

  • Function selector router

  • Access control

  • Core storage

  • Event dispatch

DiamondCut Facet

Manages the upgrade process:

  • Adding new functions

  • Replacing existing functions

  • Removing deprecated functions

  • Access controls for modifications

DiamondLoupe Facet

Provides introspection capabilities:

  • Function selector queries

  • Facet enumeration

  • Contract structure inspection

Storage Library

Manages data in a structured pattern:

  • Position-based storage

  • Namespace prevention

  • Cross-facet data access

PreviousExample ImplementationNextCore Component
Page cover image