Architecture

Technical architecture of the Dephi protocol. How contracts are structured, how positions are managed, and how the system scales.

System Overview

Dephi uses a hub-and-spoke architecture where the Meta-Vault acts as the central entry point, routing capital to specialized vault implementations.

User Wallet

EOA or Smart Contract

Meta-Vault

Entry point + NFT minting

deposit()
withdraw()
mintPosition()
emergencyExit()

AI Router

Allocation logic

Stone

Basalt

Bedrock

More...

Position NFT (ERC-721)

Each deposit mints a unique NFT representing the user's position. This design enables composability with other DeFi protocols.

NFT Metadata

{
  "tokenId": 1234,
  "vault": "stone",
  "depositAmount": "10000.00",
  "shares": "9876.54",
  "depositTimestamp": 1709...,
  "guardian": "0x...",
  "riskTier": "conservative"
}

Composability

  • • Use as collateral on lending platforms
  • • Trade on NFT marketplaces
  • • Transfer ownership without withdrawing
  • • Bundle multiple positions
  • • Create derivatives (options, futures)

Contract Structure

MetaVault.sol

Main entry point for deposits/withdrawals

Core

PositionNFT.sol

ERC-721 token for position ownership

Core

AllocationRouter.sol

Routes capital to vault strategies

Router

VaultBase.sol

Abstract base for vault implementations

Base

StoneVault.sol

Immutable stablecoin yield vault

Vault

GuardianModule.sol

2FA signature verification

Security

State Management

Position state is stored in optimized structs to minimize gas costs.

struct Position {
    uint256 shares;        // User's share of vault
    uint256 depositValue;  // Original deposit amount
    uint48 depositTime;    // Block timestamp of deposit
    uint48 lastAction;     // Last interaction timestamp
    address guardian;      // Optional 2FA address
    uint8 riskTier;        // 0=conservative, 1=optimal, 2=aggressive
    bool guardianEnabled;  // Whether 2FA is active
}

mapping(uint256 => Position) public positions;  // tokenId => Position