Architecture Overview
The Onyx Protocol implements a highly modular architecture designed for creating bespoke tokenized value vaults.
Contracts Layout
Though modular, all vaults sit within a common core architecture consisting of four types of contracts:
1. Shares
Shares is the central contract for an Onyx instance. It is an ERC20 tokenized representation of all portfolio holdings and a registry of settings, rules, and roles for the rest of the system.
2. Components
Components are specialized contracts that provide modular functionality to individual Shares deployments. Each component is:
Uniquely deployed for a single
SharescontractFocused on a specific domain (fees, valuation, issuance, etc.)
Replaceable and upgradeable independently
Can be nested within other components (e.g., a PerformanceFee can be a component of a FeeManager)
3. Global settings and factories
Global is the top-level, shared contract that contains common settings for Onyx.
e.g., it defines the global "owner" role, which is used primarily for access-control of proxy upgrades
Factories are used to deploy Shares and its components.
4. Shared Infrastructure
There are also specialized contracts that do not relate to a specific Onyx instance. Such common infrastructural contracts may also be used by Shares and its Components.
e.g., price conversion oracles
Architecture Diagram
Last updated
Was this helpful?