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 Shares contract

  • Focused 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?