Core Technical Concepts

Technical overview of a Decentralized Monetary Authority

This section will discuss the technical building blocks of Decentralized Monetary Authorities including their modular design, architectural components (which can be customized for each oneToken community) that enable the system to function, and the inheritance map of the oneToken interface. The code for ICHI and oneTokens is open-source and can be found by going to ICHI's GitHub page.

Modularity

A key principle of ICHI’s architectural design is Modularity. The ICHI platform allows for components to be modular (similar to a microservices architecture) in order to allow for simplified and safe updates/upgrades when certain logic within contracts need to be changed. Additionally, the platform has certain components that are meant to be permanent, yet can be upgraded through a Proxy process. This allows ICHI to be simple and safe to upgrade as well as customizable (as it pertains to oneToken implementations). It increases separation of concerns, enables code reuse, and gives clarity into which jurisdiction applies to each guarded function.

Architectural Components

The figure below provides a view of how each of the components in the oneToken system are deployed and what contract owns/admits each component.

Inheritance Map

ICHI and the oneToken Factory were designed with Replaceable Modules to allow for flexibility and customization. With this in mind, we created the system to abide by a structured inheritance tree that contains specific interfaces. These interfaces provide guidelines and structure for each upgradable component in the system and ensure that once approved, these components are standardized for simple plug and play capabilities. The figure below shows the overall inheritance map of the ICHI and oneToken systems with each shape representing a Solidity contract that is either an Interface or an implementation contract.

Color Key:

Blue Squares: Interface

Green Oval: Abstract

Red Oval: Contract

Last updated