• Duel est ouvert sur Robinhood Chain
  • Lancez un duel deux tokens, trois pools, une transaction
  • Clôture du round dans --:--:--
  • Des rounds de quatre heures le rachat du gagnant a un plafond de prix
  • Liquidité bloquée à vie, aucun token pour l’équipe
Duelby

Le réalignement

Un duel a trois pools : A en ETH, B en ETH et A en B. Leurs prix peuvent diverger après un trade. Après chaque trade, dans la même transaction, le hook tente un réalignement rentable. Il peut être sauté ou limité par l’ETH disponible ; un accord exact des prix n’est pas garanti.

Comment ça marche

Quand l’écart des prix donne à une boucle triangulaire un avantage de profit supérieur à 0,1 % avant son dimensionnement, le hook peut faire le tour du triangle sans frais. C’est un seuil de rentabilité de la boucle, pas une garantie que deux prix restent à moins de 0,1 % l’un de l’autre :

  • si A est devenu cher en ETH par rapport au pool A/B, le hook achète du B avec de l’ETH, l’échange contre du A dans le pool A/B et revend ce A contre de l’ETH ;
  • si c’est B, la même chose dans l’autre sens.

Une formule calcule la taille de la boucle rentable, puis la borne à ce que le pool ETH qui rachète les tokens peut payer. Seule une boucle bénéficiaire est conservée. Le profit capturé va dans la cagnotte du round. Une tentative qui échoue est annulée et sautée, sans bloquer le swap de l’utilisateur, sauf faute de gaz : le swap est alors annulé avec ArbitrageStarved, pour que personne ne puisse sauter le réalignement en envoyant trop peu de gaz. Une boucle limitée ou sautée peut laisser un écart de prix.

Ce que ça change pour la répartition

La répartition et les rounds lisent seulement les deux pools ETH. Le prix A/B ne compte jamais directement. Un changement de camp par A/B ne les affecte que si le réalignement échange effectivement dans les pools ETH. Si aucun prix en ETH ne bouge, il ne change ni la répartition ni la moyenne du round, et n’active pas un round par ailleurs sans activité.

Ce que ça change pour les traders

Le pool A/B détient une part de chaque camp. Quand le réalignement s’exécute après la hausse d’un camp, il peut en vendre une partie dans son pool ETH et acheter une partie de l’autre camp. Trois effets possibles :

Un achat peut être en partie compensé juste après. Quand le réalignement s’exécute, il peut revendre une partie du camp acheté et envoyer le profit en ETH capturé à la cagnotte. Un aller-retour immédiat peut donc coûter plus que les frais de swap. Ces mesures internes illustratives utilisent les conditions par défaut, sur un duel neuf et sur un duel où un camp tient 97 % de la répartition (10 ETH achetés sur lui, rien sur l’autre) ; le coût dépend de l’état des pools et n’est pas un taux fixe :

Aller-retour immédiatDuel neufÀ 97/3, camp en têteÀ 97/3, camp en retard
0,1 ETHenviron 4 %environ 2 %environ 4 %
1 ETHenviron 5 %environ 3 %environ 12 %
5 ETHenviron 10 %environ 4 %environ 32 %
20 ETHenviron 22 %environ 7 %environ 61 %

Derrière, un seul gros achat coûte le plus cher. Pendant que le camp en tête montait, le réalignement a rempli le pool A/B de tokens du camp en retard. Un achat du camp en retard se voit revendre ce stock : plus l’achat d’un seul coup est gros, plus il en part dans la cagnotte. Plusieurs petits achats, chacun suivi de son propre réalignement, coûtent moins cher qu’un seul gros achat du même total.

Les camps sont liés quand le réalignement s’exécute. Un achat sur un camp peut aussi faire monter l’autre, si bien qu’une remontée peut coûter plus que l’écart d’ETH ne le suggère. Un réalignement limité ou sauté peut produire un autre résultat. Voir Le camp en tête a un avantage, pas une garantie.

Par défaut, le pool A/B démarre avec 2 % de chaque offre, la plus petite part autorisée par les contrats, pour limiter ce couplage. Une part initiale plus grande le renforce ; son effet dépend de l’état des pools et de la taille du trade.

Pourquoi le faire dans le hook

Un réalignement rentable tente de réduire l’écart et envoie le profit capturé à la cagnotte. Il réduit les occasions d’arbitrage sans les supprimer : la boucle peut être limitée, sautée ou laisser un écart résiduel.