Technical Architecture

NOYA at its core is a vault that allows people who deposit into this vault, to benefit from the actions of the strategy manager and complying with the security setting of the vault.

Vaults

NOYA consists of multiple vaults that each of them is created for a specified intent and security settings.

Registry

Vaults are defined in the registry contract. In each chain we have a singleton registry contract that is responsible for holding and serving the vaults information.

AccountingManager

AccountingManager is the user entry point. It's handling the shares of the vaults (erc20 tokens) and pricing of these shares.

Connectors

This set of smart contracts are responsible for connecting to a protocol. They all support the IConnector interface, but each of them could have different functions to deposit into protocols. For example, the contract "UNIv3Connector.sol" is responsible for creating and managing positions in uniswap v3. They are also responsible for calculating the TVL of the positions based on the base token of the vault. For this example, it's calculating how much tokens we hold in each uniswap position and then convert that value into the base token using value oracles.

Value oracle

This contract is allowing us to calculate the value of a token based on another. We can define routes in this contract (we have a price source for tokens A-B, B-C, C-D and we want to get the price of A-D. we can define the route of [B,C] in the smart contract and it loops through the route to get the price of A-D. At the moment we are using 2 main oracles, 1. chainlink oracle 2. uniswap v3 TWAP

Swap handler + lifi

This contract is responsible for managing swap. It's a modular component which means we can have multiple implementations of swaps withing this contract, but for now we are using lifi as the implementation for swaps and bridges.

Keeper contract

This is the multiSig contract that is responsible for executing the strategies.

Last updated