Smart Contract Architecture
Fount is designed as a modular, composable system of smart contracts that conform to well-established EVM standards, ensuring extensibility, security, and developer-friendliness.
Key Architecture Principles
ERC-4626 Vault Standard: Used to implement tokenized yield-bearing vaults with deposit/withdraw logic.
Minimal Proxy Pattern (EIP-1167): Enables gas-efficient cloning of strategy templates.
Role-Based Access Control (RBAC): Grants fine-grained permissions to different actors across the protocol.
Hook-Based Extensibility: Compliance and control logic is modular via configurable hooks.
Contract Components
Registry
Central deployment and registration hub.
Maintains mappings of valid strategies, tokens, assets, and hooks.
Strategies
Logic for deploying capital into off-chain or on-chain opportunities.
Types include
BasicStrategy
,ReportedStrategy
, andGatedMintRWAStrategy
.Each strategy is linked to its own tokenized vault.
tRWA Tokens
ERC-4626-compatible vaults.
Represent user shares in the underlying strategy.
Types include:
tRWA
: Standard implementation with compliance hooks.GatedMintRWA
: Supports two-phase deposits and escrow mechanics.
Role Manager
Manages hierarchical access control using bitflag role identifiers.
Enables protocol security and delegation.
Hook & Rules Engine
Compliance hooks (e.g. KYC) intercept user operations.
Hooks can be dynamically added/removed per operation (deposit, transfer, withdraw).
Reporters
External oracles that provide NAV or price data.
E.g.,
PriceOracleReporter
to report off-chain asset values.
🛠️ Common Standards Used
Standard
Purpose
ERC-4626
Vault logic and share accounting
EIP-1167
Gas-efficient proxy deployment
Custom RBAC
Role-based permissions across all contracts
Core Roles
Role Name
Bitflag
Description
PROTOCOL_ADMIN
1
Can configure global protocol settings
STRATEGY_ADMIN
2
Manages strategies and registry entries
RULES_ADMIN
4
Controls hook permissions and rules engine
STRATEGY_OPERATOR
8
Executes fund operations within strategies
KYC_OPERATOR
16
Manages KYC allow/deny lists
PRICE_UPDATER
32
Updates external pricing oracles
Lifecycle Flow (Simplified)
Strategy Deployment
Registry clones strategy using proxy pattern.
Strategy initializes and links to newly deployed vault token.
User Deposit
User deposits USDC or BTC (wrapped) into tRWA token.
Hooks validate the deposit.
Shares are minted to the user.
Strategy Execution
Strategy manager moves funds to yield sources.
Redemption
Users withdraw assets by redeeming tRWA tokens.
Yield and NAV reflected in token share value.
Last updated