xExchange : le premier DEX de MultiversX.
Avant tout, nous allons nous attarder sur ce qu’est un « DEX » :
Le DEX pour « Decentralized EXchange » est une Bourse décentralisée.
Une bourse comme vous devez certainement le savoir permet d’échanger des valeurs. Par exemple de l’or contre de l’argent ou encore des euros contre des dollars. La fonction principale d’un DEX est donc de permettre d’arbitrer ces échanges en faisant se rencontrer l’offre et la demande.
Sur xExchange nous échangerons donc des jetons au format ESDT circulant sur le réseau de MultiversX tel que :
- Le jeton EGLD, la monnaie native du réseau
- Le'USDC, un jeton stable.
- Le MEX, le jeton de gouvernance.
Décentralisé signifie que les opérations sont sécurisées par le réseau de validateurs au lieu de reposer sur un intermédiaire unique. La décentralisation permet à chaque usager de posséder pleinement ses jetons. Pour rappel, seul le propriétaire de la phrase secrète est autorisé par le réseau à transférer ou échanger ses possessions. Et personne ne pourra lui interdire de le faire. De plus, il ne paiera des frais que si il interagit avec le réseau.
Interaction avec le DEX :
- Wrap/Unwrap (envelopper) :
Le jeton natif de MultiversX n’est pas au format ESDT (Elrond Standard Digital Token), il faut donc convertir l’EGLD en wEGLD pour pouvoir l’utiliser dans le DEX. Cette opération est réalisée de manière transparente au moment de réaliser un Swap.
- Swap (échanger) :
Le swap permet d’échanger un jeton ESDT contre un autre jeton ESDT.
Par exemple le wEGLD <=> BUSD ou encore le wEGLD <=> MEX
Les paires d’échanges disponibles sont dépendantes des réserves de liquidités existantes.
Pour cette raison, il n’est pas possible pour le moment d’échanger directement du BUSD contre du MEX.
- Liquidity (liquidité) :
Il est possible de participer aux réserves de liquidité en prêtant des jetons au DEX.
En contrepartie de votre apport, vous toucherez un rémunération quand d’autres utilisateurs réaliseront des échanges sur les paires concernées.
En apportant des liquidités, vous vous exposez aux risques des pertes intermittentes (Impermanent loss) mais recevrez en contrepartie des « LP Tokens » (Liquidity Pool Token) qui pourront servir dans les Fermes.
- Farms (Fermes) :
Le farming consiste à déposer les LP Tokens dans des contrats pour recevoir une rémunération complémentaire tel que le MEX; le jeton de gouvernance du xExchange.
Ces récompenses qu’il est possible de récolter dans le temps permettent de réduire les risques de pertes intermittentes et aussi d’attirer des apporteurs de liquidité.
Il faut savoir que plus la liquidité verrouillée dans une réserve est importante et moins il y aura d’impact sur le prix en cas d’échange de deux jetons sur cette réserve.
Concrètement cela fonctionne comment ?
Tout repose sur une simple formule mathématique : x * y = k
On va prendre l’exemple de la réserve de liquidité EGLD–BUSD et dérouler un scénario simple :
(x) sera donc le nombre de jetons en EGLD
Et (y) le nombre de jetons en BUSD
Pour notre exemple, nous partirons du postulat qu’une utilisatrice nommé Alice participe à la réserve en prêtant ses fonds et que 1 EGLD = 100 BUSD.
Alice va prêter à la réserve 200 000$ sous la forme de:
- (x) : 1 000 EGLD
- (y) : 100 000 BUSD
Ce qui nous donnera le calcul suivant:
(x * y) = (1 000 * 100 000) = k = 100 000 000
k sera constant et devra toujours valoir 100 000 000 tant que le montant des fonds prêtés restera inchangé.
Imaginons maintenant qu’un utilisateur nommé Bob souhaite réaliser un échange sur notre réserve en apportant 1 000 BUSD pour obtenir de l’EGLD. Le montant apporté en BUSD 1 000(y) va nous permettre de déterminer le nombre d’EGLD (x) qu’il va recevoir en échange.
Pour commencer nous appliquons 0.30% de frais de swap sur les 1 000 BUSD soit 3 BUSD de frais.
Sur ces 3 BUSD:
- 2.5 (0.25%) vont rejoindre la réserve et ainsi augmenter notre (y)
- 0.5 (0.05%) servirons à racheter des MEX et les bruler assurant ainsi que le prix du MEX ne tombe jamais à 0.
k est mis à jour car la réserve possédée par Alice augmente :
(x * y) = (1 000 * 100 002.5) = k = 100 002 500
Ensuite, pour calculer le nombre d’EGLD que bob va recevoir nous allons utiliser (k) qui doit rester constant après un échange.
Bob fait maintenant rentrer 997(y) dans la réserve ce qui nous donne le calcul suivant :
(x * y) = (1 000 * (100 002.5 + 997)) = k2 = 100 999 500 ≠ 100 002 500
Nous constatons que (k2) à changé et qu’il faut le réduire en donnant un nombre d’EGLD (x) à Bob pour retrouver k :
La formule suivante permet de calculer le nombre de (x) que Bob doit recevoir :
x à recevoir = x/k2*(k2-k)
Soit
1 000(x) / 100 999 500(k2) * ( 100 999 500(k2) – 100 002 500(k) ) = 9.8713359967
Bob va donc recevoir 9.8713359967(x) EGLD qui seront retirés de la réserve d’Alice désormais représentées sous cette formule :
(x * y) = (1 000 – 9.8713359967) * (100 002.5 + 997) = k = 100 002 500
Soit
(x * y) = (990.1286640033 * 100 999.5 = k = 100 002 500
Si à cet instant Alice faisait le choix de récupérer ses fonds, elle récupérerait :
990.1286640033 EGLD et 100 999.5 BUSD avec un EGLD valant théoriquement 102,01 BUSD
C’est lors de ce retrait qu’intervient ce que l’on appelle la perte intermittente. Si Alice n’avait pas prêté ses 1 000 EGLD, elle aurait toujours 1 000 EGLD valant éventuellement 102,01 $ et 100 000 BUSD soit un total de 202 010$ au lieu des 201 003$. Cette « perte » est d’autant plus importante en cas de fortes variations (sur x ou y) mais se réduit avec le temps grâce aux frais de swap et à la rémunération en $MEX.
Connaitre et comprendre les dangers.
Bien souvent quand on parle d’un DEX, tout le monde dis « Attention aux pertes intermittentes » sans pour autant bien cerner de quoi il est question. Et ils ont bien raison d’en parler mais il existe d’autre risques moins connus qui peuvent s’appliquer même aux meilleurs DEX ! Voici quelques cas qu’il faut envisager quand on prête de la liquidité :
- Un des jetons de la paire s’effondre : Exemple simple : Vous participez à une réserve avec 1 000 $USDA et 1 000 $USDB (deux jetons stables fictifs adossés aux dollar) imaginons que la société qui gère l’USDA fasse faillite. Les utilisateurs vont donc vouloir échanger tous leurs $USDA contre des $USDB. Si vous arrivez trop tard, en tant que prêteur, vous pourrez donc retirer quelque chose comme 1999,9999 $USDA qui ne vaut plus rien et 0,00001 $USDB
- Le créateur d’un de jetons X décide de vider la réserve : Exemple, vous participez à une reserve EGLD/X. Mais le créateur de X est peu scrupuleux et décide de créer une infinité de X supplémentaires pour son compte (oui dans certains cas, c’est possible). Il va ensuite utiliser ses X pour swaper contre les EGLD de la réserve et ne laisser que des X ne valant plus rien pour les prêteurs.
- Personne ne swap : Le risque diminue avec l’emission d’un jeton de gouvernance et de nombreuses paires d’échange mais dans le cas d’une plateforme qui sert peu, le jeton de gouvernance peut perdre de la valeur dans le temps et pousser les créateurs du DEX à délaisser le projet pour créer un clone sous un nouveau nom.
- Une faille de sécurité. Quelque soit la robustesse d’un DEX, nous ne sommes jamais à l’abris qu’une faille soit découverte par une personne malveillante dont le but est de mettre la main sur les fonds verrouillés dans les réserves.
- Un slippage (glissement) Elevé : Le slippage determine la variation de prix que le jeton peut subir au moment de son échange. Le slippage peut être bien plus important quand les fonds de la réserve sont bas. Par exemple dans une réserve avec 10 egld et 1 000 BUSD, un utilisateur apportant 10 000 BUSD ne pourrait pas récupérer plus que 10 EGLD et ferait monter très fort le prix du jeton dans la reserve si son slippage autorisé est important.
En conclusion plus un DEX sera utilisé pour réaliser des échanges et plus il sera rentable pour les prêteurs de liquidité qui portent le risque. Si vous avez bien compris ce principe, vous serez peut être prêt à risquer une partie de votre capital en participant à une réserve de liquidité. Pour un risque modéré, Stakez du $MEX pour gagner du $MEX mais gardez en tête que le $MEX aura son propre cours certainement très volatile.
Du coup on fait comment pour utiliser le DEX ?
En fait c’est tout simple :
1 : Consultez le menu « Farms » pour prendre connaissance des offres de staking existantes et de leur rendement actuels en $MEX
Ou dans le menu « Liquidity » > « Active pools » , trouvez une Paire d’échange active qui vous convient
2 : Déposez les jetons sur l’adresse de votre wallet ou Echangez un jeton contre un autre dans le menu « Swap » . Vous devez avoir 50% en valeur de chaque jeton et quelques EGLD pour payer les frais de transactions du réseau.
3 : Dans le menu « Liquidity » > « + Add Liquidity » , sélectionnez les deux paires concernées. En saisissant le montant sur un des jetons, l’interface vous indiquera le nombre de jetons requis sur le second. Assurez-vous que votre balance est suffisante.
En validant l’opération vous recevrez vos LP Token qui seront visibles dans le menu « Liquidity » > « My liquidity »
4 : Dans le menu « Farms » déposez vos LP tokens dans la ferme précédemment choisie et ainsi recevoir des $MEX dans le temps.
Les $LKMEX peuvent être déposés dans les réserves EGLD/MEX et MEX/MEX mais ne peuvent pas être échangés contre un autre jeton ou transférés sur un autre wallet.
Et voila il ne reste plus qu’à attendre et à passer de temps en temps pour récolter vos $MEX/$LKMEX
Avec le temps il est possible que le DEX évolue en apportant de nouvelles fonctionnalités, en ajoutant de nouvelles paires d’échange et même en modifiant les frais appliqués. Chaque réserve pouvant avoir ses propres règles. Ce document a été écrit dans le but d’apporter des explications à la fois simples et complètes ce qui n’est pas forcement évident. Pensez à vous renseigner et n’hésitez pas à creuser le sujet pour mieux comprendre comment tout cela fonctionne.