# 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.

<figure><img src="https://hadis-organization-2.gitbook.io/~gitbook/image?url=https%3A%2F%2F2062731789-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FtN8VSNJTG2l0kG6JV2IA%252Fuploads%252FnibyS5P7l3mNV7itOMNY%252Fimage.png%3Falt%3Dmedia%26token%3Deccb3aae-7ee1-4eba-ab4d-df90e9e4ba59&#x26;width=768&#x26;dpr=4&#x26;quality=100&#x26;sign=6b3f1390cc20e9943eb0f187cac0ea10a002d1a1eeb5eb78abaa1e8d7b5be8be" alt=""><figcaption></figcaption></figure>

## 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.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.noya.ai/technical-architecture/technical-architecture.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
