PaperTrade a signalé des tentatives de manipulation des meilleurs prix d'achat et de vente (BBO) sur Hyperliquid du 10 au 11 octobre 2026. Ces cotations étaient utilisées pour évaluer les positions de trading synthétiques. Le projet a reconnu ces tentatives le 11 octobre. Le compte examiné dans cette analyse a retiré 1,279,106.191184 USDC de plus qu'il n'en avait déposé sur la plateforme.
PaperTrade réglait les positions clôturées au point médian entre le meilleur prix d'achat et de vente actuels. En même temps, l'ajustement à la baisse du profit, appelé «haircut», était calculé à l'aide d'une taille de position de référence fixe.
Adresses et leurs rôles
Toutes les adresses ci-dessous se trouvent sur le réseau HyperEVM, qui utilise l'ID de chaîne 999.
| Réseau | Adresse | Rôle établi |
|---|---|---|
| HyperEVM | 0x2025137a136bea7446deba681cbfc7cf1970840e | Le compte de trading examiné dans cette analyse. |
| HyperEVM | 0x6cd5661646289fb6e65ea5c032310fded797d0a2 | Le contrat proxy d'échange qui enregistre les positions, les soldes et les retraits. |
| HyperEVM | 0xa9b4c7b7ca5835652d81e25739c870d49f39cc2e | Le contrat proxy de PriceOracle, le composant qui récupère les données de prix. |
| HyperEVM | 0x3997ffc8cbd281d4fc8d0548e505ae2fbbbd985a | L'implémentation de PriceOracle exécutée dans les transactions d'ouverture et de clôture de position examinées. |
Contexte
PaperTrade proposait un trading à effet de levier sur des positions synthétiques adossées au pool de liquidité Martingaler. L'ouverture d'une position créait une exposition de trading interne: PaperTrade ne plaçait pas d'ordre d'achat ou de vente équivalent pour l'actif réel sur Hyperliquid. Lorsqu'une position était clôturée, son résultat financier, le profit ou la perte (PnL), était réglé à partir des fonds du pool.
PriceOracle récupérait les meilleurs prix d'achat et de vente actuels sur Hyperliquid via un mécanisme système spécial appelé precompile à l'adresse 0x080e, puis calculait le point médian de ces prix. Celui-ci était utilisé comme prix d'exécution de la transaction. Lorsqu'une position bénéficiaire était clôturée, une bande de seuil, un ajustement du profit pour l'impact de prix asymétrique et des frais sur les clôtures bénéficiaires étaient appliqués. S'il n'y avait pas assez de liquidité pour un paiement, les paiements étaient mis en file d'attente.
Le prix provenait donc des meilleures cotations d'Hyperliquid, tandis que la position synthétique était adossée au pool de PaperTrade. Le montant du paiement dépendait de la taille de la position, même si une transaction de la taille correspondante n'avait pas nécessairement lieu sur le marché au point médian utilisé.
Comment les événements se sont déroulés
Tous les horodatages ci-dessous sont exprimés en temps universel coordonné (UTC). Les quatre étapes décrivent l'ouverture et la clôture de la position du compte examiné, son trading externe et ses retraits.
1. Ouverture de la position
Le 10 octobre à 21:41:36, le compte 0x2025137a136bea7446deba681cbfc7cf1970840e a ouvert une position longue sur ETH, un pari sur la hausse du prix d'Ethereum, numérotée 72098. Cela s'est produit dans la transaction 0xe639…f225.

2. Clôture de la position
Six minutes plus tard, à 21:47:36, la position a été clôturée dans la transaction 0xb5bc…df42d. L'enregistrement de clôture indique un prix de sortie de $2,510.85. Pendant ce temps, le prix a évolué en faveur de la position d'environ 17.55 points de base.
La trace historique des appels montre la séquence Exchange → PriceOracle → le mécanisme système de récupération des meilleures cotations BBO 0x080e. Ce mécanisme a renvoyé les valeurs 251080 et 251090 en unités de $0.01, soit un prix d'achat de $2,510.80 et un prix de vente de $2,510.90. PriceOracle a renvoyé 251085, correspondant au prix $2,510.85 enregistré lors de la clôture réussie de la position. Les deux lectures de cotations BBO dans cette transaction montrent les mêmes valeurs.
L'écart entre le prix d'achat et le prix de vente était de $0.10, soit environ 0.40 points de base. Le chiffre de 17.55 points de base reflète le rendement de la position entre l'entrée et la sortie sur six minutes, et non un écart par rapport à un prix de marché indépendant. Aucun de ces deux chiffres ne prouve à lui seul que la cotation était anormale ou délibérément influencée. Cet exemple montre comment fonctionnaient les règles de règlement enregistrées. Un trading à effet de levier ordinaire reste une explication suffisante pour cette transaction particulière.

C'est l'étape où le prix d'entrée se transforme en gain. Les prix sont exprimés en unités de $0.01, donc la bande de seuil, calculée avec arrondi à l'entier inférieur, est:
Le résultat correspond au calcul enregistré à la clôture de la position. Les valeurs du tableau sont arrondies à six décimales; les calculs intermédiaires ont été effectués en pleine précision.
| Étape de calcul | Formule | Montant, USDC |
|---|---|---|
| Profit brut après la bande de seuil | 10,000,000 × m | 17,355.223523 |
| Profit ajusté | Profit brut × coefficient | 13,494.728986 |
| Frais sur clôture profitable | Profit ajusté × 2% | 269.894580 |
| Profit net après frais | Profit ajusté − frais | 13,224.834407 |
Avec les mêmes prix et paramètres, une position hypothétique de $500K aurait généré 661.241720 USDC après frais. La position enregistrée de $10M a généré 20 fois plus, tandis que la réduction en pourcentage du profit liée à l'ajustement d'impact sur le prix est restée identique dans les deux cas, à 22.243992%.
Ainsi, un mouvement de prix de $4.40 a produit un profit de 13,224.834407 USDC sur la position examinée. Dans les cinq secondes précédant la clôture de cette position, le compte n'a effectué aucune transaction ETH ayant abouti à l'exécution d'un ordre. Cet exemple établit donc comment le gain a été calculé, mais ne révèle pas de transaction manipulatrice correspondante.
Une envolée de 100x, un prêt de $75M et un retour en arrière de la blockchain: que s'est-il passé avec Tectonic?5 sept. 2026En savoir plus3. Transactions externes et règlements répétés
Entre 22:01:00 et 22:03:00, le même compte a effectué 597 transactions ETH sur Hyperliquid: il a acheté 6,058.1450 ETH et vendu 383.0414 ETH. L'historique plus complet collecté du compte contient 10,427 transactions ETH pour un chiffre d'affaires total d'environ $231.84M.
L'historique de PaperTrade enregistre 337 positions ETH clôturées, dont 296 clôturées avec profit. Les positions profitables couvraient six tailles notionnelles, de $500K à $10M. L'exposition totale a été constituée sur plusieurs positions.

Sur les 296 clôtures profitables, 62 se sont produites dans la seconde suivant une transaction ETH effectuée par le même compte. Dans 52 cas, le chevauchement temporel ne concernait que des transactions où le compte agissait en tant que maker, c'est-à-dire fournissait de la liquidité au marché. Dans 10 autres cas, il y avait des transactions où le compte agissait en tant que taker, exécutant des ordres déjà placés. Ces dix derniers cas s'inscrivent dans trois transactions de clôture de position en l'espace de deux secondes.
Par exemple, la position 69035 a été clôturée avec profit sur une position courte, un pari sur la baisse du prix, à $2,505.85, tandis que des ventes taker à $2,505.80 ont été exécutées à un moment proche. En comparaison, la clôture de la position 71121 a coïncidé dans le temps avec dix achats maker.
La trace de transaction reconstituée pour la position 69035 montre des cotations de $2,505.80 et $2,505.90, dont le point médian est le $2,505.85 enregistré. La transaction pour la position 71121 montre de même des prix de $2,509.70 et $2,509.80, et l'oracle renvoie le point médian de $2,509.75. Les cotations réelles d'entrée pour ces transactions ont donc été établies.
Tester une influence délibérée sur le prix nécessite des données séquentielles sur les cotations à l'échelle de l'ensemble du marché, sur les ordres placés et annulés, ainsi qu'un prix de marché indépendant pour la même période. Un simple horodatage correspondant ne suffit pas.
4. Retraits
Durant la période examinée, cinq retraits de l'Exchange correspondaient à des enregistrements de transactions réussis et à des crédits USDC sur le réseau HyperCore.
| Heure de retrait, UTC | Montant, USDC | Transaction HyperEVM |
|---|---|---|
| 10 octobre, 21:13:59 | 17,961.112612 | 0x9979…cd72 |
| 10 octobre, 21:34:09 | 131,739.237844 | 0x9a27…3fbc |
| 10 octobre, 22:06:48 | 1,543,488.792097 | 0x4162…23b0 |
| 10 octobre, 22:13:21 | 735,681.502282 | 0x136e…abd6 |
| 11 octobre, 02:10:35 | 50,336.049203 | 0x0223…ac48 |
| Total retiré | 2,479,206.694038 |

Le total des dépôts s'élevait à 1,200,100.502854 USDC, y compris les re-dépôts de fonds précédemment retirés. En soustrayant les dépôts du total des retraits, on obtient une sortie nette du compte de 1,279,106.191184 USDC.
Parallèlement, le total des retraits inclut le capital initial restitué et des fonds réutilisés.
Un point médian BBO sans vérification indépendante du prix de marché
La branche PriceOracle décompilée rejette les prix nuls et les cotations invalides dans lesquelles l'offre d'achat (bid) est supérieure à l'offre de vente (ask), puis retourne le point médian actuel des deux cotations. Le code ne contient aucun calcul de moyenne des prix sur une période et aucune vérification indépendante d'un écart significatif par rapport au prix du marché.
Ces vérifications confirment que les cotations ont un format et une relation valides, mais n'évaluent pas s'il existe suffisamment de liquidité réelle pour couvrir une position synthétique de la taille correspondante.

Le pourcentage d'ajustement ne dépend pas de la taille de la position
La formule asymétrique d'impact sur le prix utilise le paramètre fixe referenceNotional, un montant notionnel pris comme base de calcul, au lieu de la taille réelle de la position. Ainsi, le montant monétaire du versement augmente avec la taille de la position, mais le pourcentage d'ajustement reste le même.
Pour les six tailles de position, les résultats des 296 clôtures rentables correspondent à la courbe de calcul documentée à 0.000000001 USDC près.

Réponse de PaperTrade et restitution des fonds
Dans une déclaration du 11 octobre, PaperTrade a reconnu que des tentatives avaient été faites pendant la nuit pour manipuler les meilleurs prix d'achat et de vente (BBO) du BTC et de l'ETH sur Hyperliquid. Le projet a expliqué que ces tentatives avaient été rendues possibles par des limites d'intérêt ouvert trop souples au lancement de la plateforme. Il a également indiqué avoir commencé à resserrer les limites directement on-chain et au niveau du relayer, le composant qui transmet les demandes de trading.
PaperTrade a également indiqué que l'un des utilisateurs ayant réalisé un profit avait restitué la quasi-totalité des gains via de nouveaux comptes. Le compte examiné a enregistré 30 liquidations ultérieures ayant entraîné des pertes de 450,000 USDC. Ces pertes sont déjà incluses dans le calcul de la sortie nette.
Cependant, les changements de limites et la restitution des fonds via d'autres comptes n'ont pas été confirmés de manière indépendante.

