> For the complete documentation index, see [llms.txt](https://docs.omniyield.finance/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.omniyield.finance/fr/omniyield/architecture.md).

# Architecture

L'architecture d'OmniYield est conçue pour être modulaire, agnostique de la chaîne et hautement évolutive.

Notre objectif principal est de créer une couche de rendement agnostique de la chaîne qui maximise les rendements ajustés au risque pour les utilisateurs dans l'ensemble de la DeFi. Pour y parvenir, le système utilise une analyse approfondie des données, des algorithmes avancés hors chaîne, des protocoles de sécurité stricts, des règles de diversification et une architecture qui abstrait la complexité des interactions inter-chaînes.&#x20;

### Composants architecturaux clés

<details>

<summary><strong>Coffres</strong></summary>

La passerelle de l'utilisateur vers OmniYield.

Ces contrats intelligents conformes à ERC-4626 gèrent en toute sécurité les dépôts, reçoivent les rapports des stratégies et traitent les retraits.

Ils servent d'interface principale coordonnant les fonds des utilisateurs avec les Stratégies sous-jacentes.

</details>

<details>

<summary><strong>Couche d'exécution (Solveur)</strong></summary>

La couche d'intelligence d'OmniYield.

Ces systèmes automatisés analysent en permanence les protocoles DeFi à travers les chaînes, identifient les meilleures opportunités de rendement, évaluent les risques et déterminent l'allocation des actifs pour les Coffres.

Ce traitement est effectué hors chaîne pour des raisons d'efficacité — seuls les résultats sont appliqués onchain, empêchant ainsi l'imitation des stratégies d'OmniYield.

</details>

<details>

<summary><strong>Stratégies</strong></summary>

À chaque Coffre est associé au moins un contrat de Stratégie.

Ce composant traduit les décisions du solveur en actions. Il gère les complexités techniques du déplacement d'actifs, y compris les swaps de jetons, la fourniture de liquidité, le prêt, le staking, etc.

</details>

<details>

<summary><strong>Destinations</strong></summary>

Les protocoles DeFi, pools de liquidité ou fermes de rendement spécifiques où les actifs du coffre sont finalement déployés.

</details>

<details>

<summary><strong>Infrastructure de messagerie inter-chaînes</strong></summary>

La technologie fondamentale permettant les capacités inter-chaînes, facilitant la communication et les transferts d'actifs entre différentes blockchains.

</details>

### Le cycle de vie des actifs

<div data-with-frame="true"><figure><img src="/files/132d31cb5c68d517a2f63bf75cfdd8d5ded9071d" alt=""><figcaption></figcaption></figure></div>

Comprendre le flux des actifs aide à clarifier le fonctionnement du système :

{% stepper %}
{% step %}
**Dépôt**

Un utilisateur dépose un type d'actif unique (par exemple, USDC) dans le Coffre OmniYield correspondant sur n'importe quelle chaîne prise en charge. Les actifs déposés sont transférés vers le contrat du Coffre sur le hub Arbitrum et y restent initialement inactifs.
{% endstep %}

{% step %}
**Rééquilibrage inter-chaînes**

* Le composant hors chaîne (Solveur autonome) surveille les soldes des coffres et les conditions du marché. Une fois qu'un certain seuil d'actifs inactifs est atteint, ou lors de cycles d'optimisation périodiques, il détermine l'allocation optimale pour les Stratégies actuelles sur les chaînes intégrées et propose un plan de rééquilibrage. Si la proposition répond aux contraintes de sécurité et de performance, elle lance un rééquilibrage (par exemple, transférer X montant d'USDC vers la Stratégie A sur la chaîne Y) via le contrat du Coffre sur le hub Arbitrum.&#x20;
* À l'aide de LayerZero et d'Axelar, un message contenant les instructions de rééquilibrage est envoyé du hub vers le contrat du Coffre concerné sur les chaînes cibles.
* Le système exécute les étapes nécessaires (telles que le pontage, l'échange, le dépôt, etc.) pour rééquilibrer.
* L'allocation mise à jour est enregistrée, et des confirmations/mises à jour de statut sont renvoyées au hub Arbitrum via la couche de messagerie. Ce processus peut impliquer le transfert de fonds inactifs du hub vers une Stratégie ou le déplacement de fonds entre différentes Stratégies pour rechercher de meilleurs rendements.
  {% endstep %}

{% step %}
**Auto-compounding et reporting consolidé**

* Les contrats de Stratégie réclament périodiquement les récompenses gagnées auprès des protocoles de destination, les convertissent en l'actif de base du coffre (par exemple, USDC) et les réinvestissent automatiquement. Ce processus est orchestré par des Keepers autorisés.&#x20;
* Les données de performance, y compris les récompenses générées par ces Stratégies sur toutes les chaînes prises en charge, sont continuellement renvoyées au hub Arbitrum. Les récompenses sont ajoutées à la valeur totale du coffre, composant automatiquement les rendements pour les déposants.
  {% endstep %}

{% step %}
**Retrait**

* Les retraits ne sont pas limités à la chaîne de dépôt ; les utilisateurs peuvent initier une demande de retrait à tout moment depuis n'importe quelle chaîne prise en charge (**elle n'a pas besoin d'être la même chaîne que celle utilisée pour le dépôt**).
* Des frais de performance de 9 % sont calculés sur la base du profit généré par le dépôt d'un utilisateur à travers toutes les Stratégies et chaînes sous-jacentes.
* La demande est acheminée vers le hub Arbitrum. Si le Coffre dispose de fonds inactifs suffisants (actifs non déployés activement dans les Stratégies), le retrait est traité immédiatement.
* Si le Coffre ne dispose pas de fonds inactifs suffisants, le hub signale aux Stratégies de retirer le montant requis. Il privilégie le retrait depuis les Stratégies où l'impact sur le rendement global (APR) est minimisé. Ce processus peut prendre un peu plus de temps selon les protocoles sous-jacents.
  {% endstep %}

{% step %}
**Réclamer**

* Une fois qu'une liquidité suffisante est disponible dans le Coffre, l'utilisateur peut réclamer son retrait. Lors de la réclamation, les actifs correspondants sont transférés vers le portefeuille de l'utilisateur via l'infrastructure inter-chaînes.
  {% endstep %}
  {% endstepper %}

### Architecture inter-chaînes

L'infrastructure d'OmniYield repose sur une architecture robuste en hub-and-spoke :&#x20;

* **Hub :** Nous utilisons Arbitrum comme hub opérationnel central (la « chaîne principale »). C'est là que résident principalement la logique centrale, les calculs complexes et la gestion globale de l'état du protocole OmniYield.
* **Spokes :** Toutes les autres blockchains prises en charge fonctionnent comme des « chaînes de périphérie » ou des « chaînes satellites ». Ce sont les réseaux d'où peuvent provenir les dépôts des utilisateurs et où de nombreuses Stratégies de rendement sous-jacentes sont déployées. Elles agissent principalement comme points d'exécution, recevant les instructions du Hub.

<div data-with-frame="true"><figure><img src="/files/e31da659c53a7067f965be153dab426dae48d5d4" alt=""><figcaption></figcaption></figure></div>

#### **Flux de communication :**

{% stepper %}
{% step %}
**Agrégation**

Lorsqu'une décision de rééquilibrage est prise ou que des actions utilisateur (comme des dépôts/retraits nécessitant un déplacement inter-chaînes) se produisent, des messages inter-chaînes sont générés et transmis de manière sécurisée depuis les chaînes de périphérie vers le hub Arbitrum.
{% endstep %}

{% step %}
**Calcul**

Le Hub traite ces messages entrants, effectue les calculs nécessaires (comme l'optimisation de l'allocation des actifs sur l'ensemble des spokes, le calcul de la performance globale du coffre, la consolidation des frais) et prend des décisions stratégiques sur la base de sa vue globale du système.
{% endstep %}

{% step %}
**Distribution**

Une fois les décisions prises, les instructions nécessaires et les données de transaction sont redistribuées depuis Arbitrum vers les contrats intelligents concernés sur les chaînes de périphérie pour exécution (par exemple, déposer des fonds dans une Stratégie spécifique sur un autre réseau).
{% endstep %}
{% endstepper %}

{% hint style="success" %}
Cette conception modulaire permet :

* **Logique centralisée, exécution décentralisée**\
  Ce modèle garantit la cohérence des données, Arbitrum jouant le rôle de source unique de vérité. Le déploiement effectif du capital a lieu sur les chaînes de périphérie, tirant parti des opportunités uniques offertes par chaque chaîne.
* **Modularité et extensibilité**\
  De nouvelles chaînes, de nouveaux actifs, de nouvelles stratégies et de nouvelles destinations peuvent être intégrés de manière plug-and-play avec un minimum de modifications de la base de code existante.\
  Cela garantit une faible surface d'attaque tout en facilitant le développement de produits supplémentaires. Afin d'améliorer encore sa robustesse et ses fonctionnalités, le protocole OmniYield s'intègre à diverses primitives et infrastructures DeFi, offrant la meilleure expérience utilisateur et permettant une interaction fluide avec d'autres outils financiers.
  {% endhint %}

### Communication inter-chaînes

Le fonctionnement de notre modèle hub-and-spoke sur de nombreuses blockchains est rendu possible par l'utilisation des principaux fournisseurs de messagerie inter-chaînes : LayerZero et Axelar (et potentiellement d'autres, adaptés à l'avenir à des jetons/chaînes/fonctions spécifiques).&#x20;

LayerZero permet une messagerie légère et efficace, garantissant une latence minimale et une interopérabilité sans confiance entre les réseaux pris en charge. Axelar complète cela avec un routage de haut niveau et une livraison sécurisée de messages inter-chaînes généralisés.

* **L'épine dorsale de la communication :** Ces protocoles agissent comme l'infrastructure de communication sécurisée et fiable reliant notre Hub (Arbitrum) à toutes les chaînes de périphérie. Ils fournissent les voies essentielles pour transmettre des données et des instructions à travers les frontières des blockchains. Tout le relais, la validation et le règlement des messages sont effectués via les rails de messagerie sécurisés de ces fournisseurs.
* **Faciliter les opérations clés :** LayerZero et Axelar transmettent les messages critiques nécessaires aux fonctions principales. Cela inclut :
  * Notifier le Hub de nouveaux dépôts effectués sur les chaînes de périphérie.
  * Relayer les demandes de retrait des utilisateurs sur les chaînes de périphérie vers le Hub pour traitement.
  * Envoyer des commandes du Hub aux contrats de stratégie sur les chaînes de périphérie pour exécuter des dépôts, des retraits ou des rééquilibrages.
  * Rapporter les rendements générés, les indicateurs de performance et les données de frais des stratégies sur les chaînes de périphérie vers le Hub.

### Rapport consolidé des frais

Dans les configurations multi-chaînes classiques, chaque chaîne agit souvent comme un silo avec une logique et un reporting de performance isolés. OmniYield adopte une approche radicalement différente. Nous pensons que notre écosystème doit fonctionner comme un protocole unique et unifié, et non comme une collection fragmentée de déploiements spécifiques à chaque chaîne.

Bien qu'OmniYield génère des frais à partir de stratégies de rendement opérant sur de nombreuses chaînes, le protocole met en œuvre un reporting consolidé des frais, un processus dans lequel les données de génération de frais de toutes les chaînes prises en charge sont agrégées, normalisées et calculées sur Arbitrum (le hub).&#x20;

{% hint style="success" %}
Cela permet :

* **Expérience utilisateur flexible :** Les utilisateurs n'ont pas à se soucier d'incitations incohérentes. Ils peuvent déposer depuis la chaîne de leur choix, sachant que les frais, les opportunités de rendement et les récompenses restent cohérents dans l'ensemble de l'écosystème OmniYield.
* **Tokenomics partagées :** Tous les frais du protocole, quelle que soit la chaîne d'origine, contribuent au même modèle de revenus global.
* **Métriques transparentes :** Un reporting unifié élimine les écarts et améliore l'auditabilité.
  {% endhint %}

<div align="right"><figure><img src="/files/d499cfc1dcf2eb50b13149322812fa5e22b6bed1" alt="" width="17"><figcaption></figcaption></figure></div>
