Capitalisation 2,63 T $ −1,41 % sur 24 heuresVolume 24 h 61,69 Md $Dominance BTC 59,3 %ETH 10,6 %Fear & Greed 26 PeurCryptos 22 751

AMM crypto : formule x·y=k, prix, impact de prix et frais

AMM crypto : démontrez la formule x·y=k, le prix spot, l'impact de prix et les frais avec des chiffres, puis voyez pourquoi les carnets reviennent.

Avancé 26 min de lectureMis à jour À lire d'abord : Utiliser un DEX en sécurité : premier swap, slippage, MEV et approbations
Une balance, une courbe qui chute, une goutte et des pièces sur fond sombre
Sommaire
  1. AMM crypto : la formule x·y=k
  2. D’un billet de blog de 2017 à Uniswap v1
  3. Le prix spot est le rapport des réserves
  4. Calculer un swap : ce que vous recevez pour ce que vous payez
    1. Sans frais
    2. Avec les frais de 0,30 %
  5. Prix d’exécution et prix spot : l’impact de prix
  6. Impact de prix pour 0,1 %, 1 %, 5 %, 10 % et 30 % du pool
  7. La profondeur : combien un pool peut absorber
  8. Comment les frais font grossir k
  9. L’arbitrage maintient le pool au prix du marché
  10. Perte contre rééquilibrage (LVR) : le prix d’une cotation périmée
  11. Là où la courbe s’arrête
  12. Pourquoi les carnets d’ordres sont revenus sur les chaînes rapides
  13. Ce que la formule change quand vous échangez
  14. Swaps, fiscalité et régulateurs : l’angle français

Prenons un blockchain that runs exactly as written when it is called, holding and moving funds according to its code, without an intermediary able to change the outcome.">smart contract holding reserves of two or more tokens, supplied by users, that a decentralized exchange uses to execute trades automatically at a price set by a formula.">pool qui contient 1 000 ETH et 3 000 000 USDC, et demandons-lui exactement 10 ETH. Ces chiffres ronds sont un exemple, pas un pool réel. Le prix affiché par le pool est de 3 000 dollars l’ether, donc 10 ETH devraient coûter 30 000 dollars. Le contrat vous facture 30 394,21 USDC.

wallet. It becomes permanent when the provider withdraws.">Il n’a consulté aucun marché pour en arriver là, et personne n’a coté ce prix. Un AMM crypto (automated market maker, ou market maker automatisé) comme Uniswap v2 n’a besoin que de ses deux soldes et d’une règle : après votre échange, le produit de ces soldes ne doit pas avoir baissé. Les 394,21 dollars de trop se décomposent en 303,03 dollars de courbe et 91,18 dollars de frais, et chaque terme que croise un trader sur un écran de swap, du prix spot à la profondeur, découle de la même ligne d’algèbre.

Le principe général est expliqué dans notre guide sur les échanges décentralisés et les AMM : au lieu de rapprocher acheteurs et vendeurs dans un carnet d’ordres, un contrat détient un pool de deux jetons, déposés par des fournisseurs de liquidité (LP), et chacun peut échanger contre ce pool à un prix fixé par une formule. Cette leçon prolonge comment utiliser un DEX en sécurité, qui traite de la tolérance de slippage, des attaques sandwich et des approbations. Ici, nous faisons le calcul sur lequel reposent ces mises en garde, puis nous regardons où la formule cesse de fonctionner.

AMM crypto : la formule x·y=k

Appelons x la réserve du premier jeton et y celle du second. La règle d’un pool à produit constant, avant frais, s’écrit x·y = k. Dans notre exemple, x = 1 000, y = 3 000 000 et k = 3 000 000 000.

Un échange modifie les deux réserves. Celui qui vend Δx du premier jeton au pool retire Δy du second, et les nouvelles réserves doivent vérifier (x + Δx)·(y − Δy) = k. Rien d’autre n’est exigé. Il n’y a ni oracle ni moteur d’appariement, et le contrat ignore ce que vaut l’ether ailleurs. Cette cécité permet à la conception de tourner sur une chaîne lente, et c’est elle, plus loin dans cette leçon, qui coûte de l’argent aux LP.

Le contrat de paire d’Uniswap v2 (en anglais) ne calcule même pas votre sortie. Le routeur propose un échange, la paire envoie les jetons par anticipation, puis elle vérifie l’invariant sur ses soldes finaux. Si le produit est trop bas, la transaction est annulée avec l’erreur « UniswapV2: K ». Tout le reste, y compris le montant juste à demander, revient à l’appelant.

D’un billet de blog de 2017 à Uniswap v1

Le plus ancien texte primaire daté que nous avons pu ouvrir est le billet de Vitalik Buterin On Path Independence (en anglais), du 22 juin 2017. À propos des market makers pour jetons existants, il écrit, en substance, que son mécanisme préféré (avec un crédit à Martin Koppelmann) est celui qui maintient un produit constant des deux soldes. Le 2 mars 2018, il y revient sur le forum ethresear.ch avec un message sur la résistance au front-running (en anglais). Il y fait remonter l’idée à un message écrit deux ans plus tôt, attribue à Martin Köppelmann, de Gnosis, la forme simple qu’il appelle le « x*y=k market maker », et décrit un contrat qui détient deux jetons dont le produit reste fixe.

À qui revient quoi, les récits secondaires divergent ; nous nous en tenons donc à ces textes datés. Uniswap, construit par Hayden Adams, est apparu sur Ethereum le 2 novembre 2018 : le contrat de la fabrique v1 a été créé à 05:37 UTC ce jour-là, dans le bloc 6 627 917. Sa première version faisait tout passer par l’ether. Le livre blanc d’Uniswap v2 (en anglais), de mars 2020, signé Adams, Noah Zinsmeister et Dan Robinson, a ajouté des paires directes entre deux jetons ERC-20 quelconques, sur la même formule. Uniswap a depuis changé de versions, mais la v2 reste le meilleur endroit pour apprendre le calcul, car sa logique d’échange tient en quelques lignes de code.

Le prix spot est le rapport des réserves

Réécrivons l’invariant sous la forme y = k/x : c’est une hyperbole, l’ensemble de tous les couples de réserves que le pool peut détenir. Le pool se trouve toujours en un point de cette courbe, et le prix du premier jeton exprimé en second est la pente en ce point, sans son signe moins.

La pente de k/x est −k/x2. Comme k = x·y, cela se simplifie en −y/x. Le prix spot vaut donc p = y/x : ici, 3 000 000 / 1 000 = 3 000 USDC par ETH. Le livre blanc de la v2 énonce le même résultat sous le nom de prix marginal, hors frais, obtenu en divisant une réserve par l’autre.

Le prix spot est celui d’un échange infiniment petit. Personne ne l’obtient vraiment, puisque tout échange réel avance le long de la courbe. Notez aussi ce que l’hyperbole interdit : x et y n’atteignent jamais zéro. Quand une réserve se vide, son prix monte sans limite, de sorte qu’un pool ne peut pas être entièrement vidé par des swaps. Il peut seulement devenir très cher d’un côté.

Calculer un swap : ce que vous recevez pour ce que vous payez

Sans frais

Partons de (x + Δx)·(y − Δy) = x·y et isolons la sortie :

Δy = y·Δx / (x + Δx)

Vendons 10 ETH au pool de l’exemple : 3 000 000 × 10 / 1 010 = 29 702,97 USDC. Vérification : les réserves deviennent 1 010 et 2 970 297,03, et leur produit retombe sur 3 000 000 000, à l’arrondi près. Vous avez obtenu 2 970,30 dollars l’ether, pas 3 000.

Le sens inverse utilise la même algèbre. Si vous demandez exactement Δy d’un jeton, l’entrée nécessaire est Δx = x·Δy / (y − Δy). Pour acheter 10 ETH avec des USDC, la réserve de ce que vous payez est de 3 000 000 et celle de ce que vous recevez de 1 000, donc le coût est de 3 000 000 × 10 / 990 = 30 303,03 USDC. Ce sont les 303,03 dollars de courbe de l’ouverture.

Avec les frais de 0,30 %

À propos de la v1, le livre blanc de la v2 indique que les traders paient des frais de 30 points de base sur les échanges, reversés aux fournisseurs de liquidité. La version 2 a gardé les mêmes 0,30 % pour les traders, et le code les prélève sur l’entrée : seuls 99,7 % de ce que vous envoyez comptent dans le calcul de la sortie, alors que 100 % arrivent dans les réserves. Posons γ = 0,997 et remplaçons Δx par γ·Δx du côté du prix :

Δy = y·γ·Δx / (x + γ·Δx)

Le contrat UniswapV2Library (en anglais) le fait avec des entiers, puisque Solidity n’a pas de décimales. En multipliant tout par 1 000, on retrouve les 997 et 1000 que l’on peut lire dans le code :

amountInWithFee = amountIn * 997
numerator = amountInWithFee * reserveOut
denominator = reserveIn * 1000 + amountInWithFee
amountOut = numerator / denominator

Vendre 10 ETH rapporte maintenant 3 000 000 × 9,97 / 1 009,97 = 29 614,74 USDC, soit 88,23 dollars de moins que sans frais. La fonction inverse, getAmountIn, divise par 997 et ajoute une unité minimale pour que l’arrondi joue toujours en faveur du pool. Acheter exactement 10 ETH coûte 3 000 000 × 10 × 1 000 / (990 × 997) = 30 394,21 USDC. Voilà la facture de l’ouverture : 30 303,03 de courbe plus 91,18 de frais, soit 0,30 % du montant payé.

La paire applique cela avec son propre test. Elle calcule chaque solde multiplié par 1 000, moins trois fois le montant reçu, et exige que le produit des soldes ajustés soit au moins égal à l’ancien k multiplié par 1 000 au carré. Comme les frais ne sont déduits que dans le test, les réserves réelles finissent légèrement au-dessus de la courbe sur laquelle l’échange a été tarifé.

Une goutte de liquide, des pièces empilées et un engrenage sur fond sombre
Un pool, c'est deux réserves et une règle : les frais restent dedans, donc le produit ne peut que monter.

Prix d’exécution et prix spot : l’impact de prix

Votre prix d’exécution est ce que vous avez réellement obtenu : Δy / Δx. En divisant la formule de sortie par Δx, on obtient sans frais y / (x + Δx). Comparons-le au prix spot y/x. Notons s la taille de l’échange rapportée à la réserve, s = Δx / x : le rapport entre prix d’exécution et prix spot vaut 1 / (1 + s). L’impact de prix est le manque à gagner :

impact de prix, sans frais = s / (1 + s)
impact de prix, avec frais = 1 − γ / (1 + γ·s)

L’impact ne dépend que de la taille de votre échange par rapport à la réserve. Le jeton, le montant en dollars et le cours du moment n’y figurent pas. Pour les petits échanges, il est proche de s lui-même, et les frais ajoutent environ 0,3 point de pourcentage.

Il faut distinguer deux mots. L’impact de prix est déterministe : c’est le calcul ci-dessus, connu avant de signer. Le slippage, au sens des interfaces de swap, est l’écart entre le prix affiché et le prix obtenu, causé par d’autres transactions passées avant la vôtre. La tolérance de slippage plafonne ce second écart ; la leçon précédente explique comment la régler.

Il existe un second prix à surveiller, celui que vous laissez derrière vous. Comme la réserve d’ETH du pool a augmenté et celle d’USDC a baissé, le prix spot après l’échange est plus bas, et sans frais le rapport entre le nouveau spot et l’ancien est de 1 / (1 + s)2. Le prix du pool bouge donc environ deux fois plus que votre prix d’exécution moyen : votre échange part de l’ancien spot et arrive au nouveau, et votre moyenne se situe à peu près au milieu.

Impact de prix pour 0,1 %, 1 %, 5 %, 10 % et 30 % du pool

Voici le même pool d’exemple, 1 000 ETH et 3 000 000 USDC avec un spot de 3 000, quand on lui vend de l’ETH avec les frais de 0,30 %. Tous les chiffres sont nos propres calculs à partir des formules ci-dessus et ne décrivent aucun pool réel.

ETH vendusPart de la réserve d’ETHUSDC reçusPrix d’exécutionImpact, sans fraisImpact, frais de 0,30 %Spot du pool aprèsVariation du spot
10,1 %2 988,022 988,020,100 %0,399 %2 994,02−0,20 %
101 %29 614,742 961,470,990 %1,284 %2 940,98−1,97 %
505 %142 448,922 848,984,762 %5,034 %2 721,48−9,28 %
10010 %271 983,272 719,839,091 %9,339 %2 480,02−17,33 %
30030 %690 708,952 302,3623,077 %23,255 %1 776,38−40,79 %

À 0,1 % de la réserve, les trois quarts de votre coût sont les frais. À 30 %, les frais se remarquent à peine et la courbe prélève près d’un quart de votre argent. La dernière colonne est celle que lisent les arbitragistes : une vente de 300 ETH laisse le pool coter l’ether environ 41 % sous son niveau de départ.

Côté achat, le miroir n’est pas parfait en pourcentage. Payer 30 000 USDC, soit 1 % de la réserve d’USDC, achète 9,8716 ETH à 3 039,03 dollars, soit 1,30 % au-dessus du spot. La formule est la même, réserves échangées.

La profondeur : combien un pool peut absorber

La profondeur, pour un pool, est la taille d’échange qui coûte un impact donné. Fixons l’impact sans frais à 1 % et résolvons : s / (1 + s) = 0,01 donne s = 1,01 %. Dans le pool d’exemple, cela fait 10,1 ETH, soit environ 30 300 dollars, dans un pool qui vaut 6 millions de dollars au total. Un échange d’environ 0,5 % de la valeur totale verrouillée coûte donc 1 % d’impact de prix avant les frais. Avec les frais de 0,30 % inclus, un coût total de 1 % est atteint à s = 0,71 %.

Comme seul le rapport s compte, la profondeur croît linéairement avec les réserves. Vendre 20 ETH à notre pool donne s = 2 % et 1,96 % d’impact, avant frais. Doublons le pool à 2 000 ETH et 6 000 000 USDC : le même échange coûte 0,99 %. Deux fois plus d’argent, moitié moins d’impact. Un pool dix fois plus grand absorberait 303 000 dollars au même 1 %.

La valeur totale verrouillée est un mauvais guide de la profondeur dès qu’on sort de ce modèle simple. Dans un pool à produit constant, elle correspond directement à la courbe, comme on vient de le voir. Dans un pool à liquidité concentrée, objet d’une leçon ultérieure, deux pools de même valeur peuvent avoir des profondeurs très différentes autour du prix courant. L’estimation de l’interface de swap, ou une simulation directe, vaut toujours mieux qu’une déduction à partir de la taille du pool.

Les carnets d’ordres mesurent la profondeur autrement. Là, la profondeur est ce que les teneurs de marché ont choisi d’afficher à chaque prix, et elle peut disparaître en une seconde s’ils annulent. Un pool à produit constant ne peut pas retirer ses cotations entre deux échanges sans qu’un LP retire des fonds, mais il étale aussi son capital sur tous les prix possibles, un coût mesuré plus bas.

Comment les frais font grossir k

Sans frais, k serait constant et les LP ne gagneraient rien. Avec les frais, l’entrée reste intégralement dans le pool alors que la sortie est tarifée sur 99,7 % de celle-ci : le produit augmente à chaque échange. C’est pourquoi le livre blanc décrit l’invariant comme un produit de réserves qui ne peut pas diminuer, plutôt que comme un produit qui ne change jamais.

Échange (ETH vendus, pool d’exemple)k avant, en millionsk après, en millionsHausse de k
13 000,0003 000,0090,0003 %
103 000,0003 000,0890,0030 %
503 000,0003 000,4290,0143 %
1003 000,0003 000,8180,0273 %
3003 000,0003 002,0780,0693 %

La hausse de k surestime ce que gagne un LP, parce que k est un produit de deux réserves. Sa racine carrée est la meilleure mesure : √k se comporte comme la taille du pool et évolue comme les parts des LP. C’est aussi ce qu’utilise le contrat v2 pour mesurer les revenus de frais, et la commission de protocole a été conçue autour d’elle.

Un cas concret. Faisons passer 1 000 allers-retours dans le pool d’exemple, chacun vendant 1 ETH puis rechangeant tous les USDC reçus. Cela représente environ 6 millions de dollars de volume pour un pool de 6 millions. D’après notre calcul, k finit 0,599 % plus haut et √k 0,299 % plus haut, soit presque exactement les 0,30 % de frais sur une rotation du pool. Le rendement des frais d’un pool à produit constant vaut donc à peu près le taux de frais des LP × le volume / la valeur du pool. Dans cette simulation simplifiée, les réserves montrent tout le gain sous forme d’ETH supplémentaires, 5,99 au total, ce qui explique aussi la dérive du prix spot vers le bas.

Sur le réseau principal d’Ethereum, les frais n’arrivent plus tous aux LP. La conception de la v2 prévoit une commission de protocole activable de 5 points de base, un sixième des 30, et le livre blanc précise qu’elle démarre désactivée. Elle l’est restée jusqu’à ce que la gouvernance d’Uniswap adopte la proposition UNIfication (en anglais), exécutée fin décembre 2025 : sur les pools v2 du réseau principal, les LP touchent désormais 0,25 % et le protocole 0,05 %, tandis que les traders paient toujours 0,30 %. Les autres chaînes ont été laissées à des votes ultérieurs. Les paliers de frais autres que 0,30 % sont arrivés avec la v3, dont le livre blanc de mars 2021 (en anglais) part de 0,05 %, 0,30 % et 1 % ; la gouvernance a ajouté un palier de 0,01 % en décembre 2021.

L’arbitrage maintient le pool au prix du marché

Le pool ignore que le marché a bougé : quelqu’un doit le lui apprendre, et ce quelqu’un est payé. Le livre blanc de la v2 explique que les arbitragistes échangent dès que le prix est assez faux pour couvrir les frais, de sorte que le prix du pool tend à suivre celui du marché.

Supposons que l’ether bondisse à 3 060 dollars sur les autres plateformes (un exemple) alors que notre pool affiche encore 3 000. Sans frais, un arbitragiste achète jusqu’à ce que le spot atteigne 3 060, c’est-à-dire jusqu’à ce que la réserve d’ETH égale √(k/p). Cette réserve est de 990,15 : 9,85 ETH quittent donc le pool pour 29 851,48 USDC. Revendus à l’extérieur à 3 060, ils rapportent 30 148,52 USDC, soit un profit de 297,04 dollars.

Avec les frais de 0,30 %, la dernière unité achetée coûte le spot divisé par 0,997 : l’achat s’arrête quand le prix sur la courbe atteint 3 060 × 0,997 = 3 050,82. En ajoutant les frais conservés dans la réserve d’USDC, le pool finit par coter environ 3 050,90 plutôt que 3 060. Le meilleur échange est d’environ 25 379 USDC contre 8,36 ETH, qui valent environ 25 593 dollars, pour un profit proche de 214 dollars avant le gaz. Les frais créent donc une bande. À partir d’un spot de 3 000, aucun échange n’est rentable tant que le marché reste entre 2 991 et 3 009,03 dollars, soit environ 0,30 % de part et d’autre, et cet écart s’élargit avec le coût du gaz.

L’arbitrage demande aussi étonnamment peu de capital. Quand les deux jambes se font sur la chaîne, un prêt flash peut financer l’opération dans une seule transaction. La concurrence entre bots reporte alors une partie du profit vers celui qui ordonne le bloc.

Les 214 dollars de l’arbitragiste viennent des LP. Le pool a vendu 8,36 ETH à une moyenne d’environ 3 034 dollars alors que l’ether valait 3 060, et cet écart est leur perte, même après les frais gardés sur l’échange. Le pool vend toujours trop bas et achète trop haut, car il ne met son prix à jour qu’après que quelqu’un a déjà échangé contre le prix périmé.

Perte contre rééquilibrage (LVR) : le prix d’une cotation périmée

Pendant des années, les pertes des LP ont surtout été discutées à travers l’impermanent loss, l’écart par rapport au simple fait de conserver les jetons, qu’une leçon ultérieure démontre en entier. Dans un article publié en août 2022 (en anglais) et révisé encore en 2026, Jason Milionis, Ciamac Moallemi, Tim Roughgarden et Anthony Lee Zhang ont proposé une référence plus fine : comparer le pool à une stratégie qui détient à chaque instant exactement les mêmes quantités, mais se rééquilibre aux prix du marché. La différence, la loss-versus-rebalancing ou LVR, est ce que les LP perdent au profit des arbitragistes.

Pour un pool à produit constant, le résultat est court. Dans l’exemple 3 de l’article, la LVR par unité de temps, en fraction de la valeur du pool, vaut σ²/8, soit un huitième de la variance instantanée, σ étant la volatilité du prix. L’illustration des auteurs : une volatilité quotidienne de 5 % implique une perte d’environ 3,125 points de base de la valeur du pool par jour.

Volatilité annuelle (hypothèse)LVR, % de la valeur du pool par anLVR, % de la valeur du pool par jour
40 %2,0 %0,0055 %
60 %4,5 %0,0123 %
80 %8,0 %0,0219 %

Le tableau est notre calcul, avec σ²/8 et 365 jours. Lisons-le avec la formule des frais vue plus haut. À 60 % de volatilité, un pool dont les LP gardent 0,30 % a besoin d’un volume d’environ 15 fois sa valeur par an, soit à peu près 4 % par jour, pour que les frais égalent la LVR. Avec les 0,25 % que les LP gardent désormais sur la v2 du réseau principal, on passe à environ 18 fois, soit 5 % par jour.

Le modèle est une idéalisation, et les auteurs le disent. Il fonctionne en temps continu face à un marché extérieur infiniment profond, suppose que les arbitragistes ne paient aucun frais de transaction, ignore le gaz et ignore les blocs. L’article note que la prise en compte des frais ferait tomber les profits d’arbitrage sous ses expressions, ce qui est la bande de frais ci-dessus à l’œuvre. Ces pourcentages sont des estimations de modèle, pas des pertes mesurées.

Les auteurs séparent aussi le rendement des LP en une part de type bêta, l’exposition au marché, et une part de type alpha, les frais moins les pertes face aux arbitragistes. Sur le pool ETH-USDC d’Uniswap v2, écrivent-ils, plus de 99,991 % de la variance du rendement des LP provient de l’exposition bêta au risque de marché. Cela concerne la variance d’un pool de leur échantillon, pas le profit. Au jour le jour, les variations de la position d’un LP sont presque entièrement un mouvement de marché ; ce que le LP gagne ou perd en tant que teneur de marché se trouve en dessous.

Un robot, des chandeliers, un sablier et une cible sur fond sombre
Entre deux blocs, le pool cote un vieux prix, et les bots d'arbitrage encaissent la différence.

Là où la courbe s’arrête

Un pool à produit constant cote toujours un prix, sans que personne le gère. Ses coûts découlent de la même hyperbole.

D’abord, le capital reste en grande partie inactif. Le livre blanc de la v3 dit de la formule des v1 et v2 que seule une fraction des actifs du pool est disponible à un prix donné. On peut le mesurer. Pour que le spot de notre pool monte de 5 %, de 3 000 à 3 150 dollars, la réserve d’ETH passe de 1 000 à 975,9. Seuls 2,4 % de l’ether servent donc sur tout ce mouvement de 5 %. Le reste attend des prix que la paire ne verra peut-être jamais. La liquidité concentrée, objet d’une leçon ultérieure, a été conçue pour corriger cela.

Ensuite, la courbe convient mal à certaines paires. Deux stablecoins censés s’échanger autour de 1 pour 1 tirent peu de profit d’une formule qui tarife aussi la paire à 1 pour 100. Des courbes spécialisées pour les stables existent pour cette raison, et elles viennent aussi dans une leçon ultérieure.

Troisièmement, les pools minces sont dangereux par construction. Un pool de 20 000 dollars donne 1 % d’impact, avant les frais, pour environ 100 dollars. La formule ne prévient personne ; elle exécute l’ordre au prix que dicte la courbe.

Enfin, le pool est passif entre deux blocs. Il ne peut pas ajuster sa cotation quand une nouvelle tombe, de sorte que chaque mouvement de prix est d’abord capté par un arbitragiste. La formule de la LVR montre cette facture croître avec la variance, au même pourcentage quelle que soit la taille du pool.

Pourquoi les carnets d’ordres sont revenus sur les chaînes rapides

Un carnet d’ordres demande plus à sa chaîne qu’un pool. Un teneur de marché doit afficher, annuler et réafficher ses cotations chaque fois que le marché bouge. Sur Ethereum, un bloc arrive toutes les 12 secondes (en anglais) et chacune de ces actions serait une transaction payante : une cotation pourrait rester périmée plusieurs secondes sans moyen peu coûteux de la retirer. C’est notre raisonnement, pas un constat sourcé, mais il colle à l’histoire : un market maker automatisé n’a besoin d’aucune mise à jour, ce qui explique qu’il ait gagné sur une couche de base lente et chère.

Des blocs plus courts et des frais plus bas affaiblissent cet argument. Sur une couche 2 comme Base, les blocs sont construits toutes les 2 secondes (en anglais), et sa fonction Flashblocks ramène le temps de bloc effectif à 200 millisecondes grâce à des préconfirmations. Pourtant, d’après les chiffres que nous avons pu vérifier, les carnets qui comptent ne se sont pas développés sur des couches 2 généralistes. Ils sont nés sur des chaînes bâties autour d’eux. Hyperliquid et dYdX font tourner la leur. Lighter, dont le carnet spot figure dans le tableau ci-dessous, est un rollup sur Ethereum, mais L2BEAT le classe (en anglais) comme spécifique à une application : une couche 2 conçue pour une seule plateforme.

Hyperliquid est le cas le plus net. Sa documentation (en anglais) affirme que HyperCore ne s’appuie pas sur « la béquille » de carnets d’ordres hors chaîne, donne une latence de bout en bout médiane de 0,2 seconde pour un client colocalisé, avec un 99e centile de 0,9 seconde, et indique que le réseau principal traite environ 200 000 ordres par seconde. Ce sont les chiffres du projet lui-même.

dYdX a pris une autre voie. Sa chaîne, construite avec Cosmos SDK et CometBFT (en anglais), garde une partie du carnet hors du consensus : d’après sa documentation (en anglais), les ordres à court terme restent dans la mémoire des validateurs jusqu’à 20 blocs, seuls leur montant exécuté et leur échéance étant inscrits dans l’état, tandis que les ordres à long terme vont sur la chaîne. L’expression « carnet d’ordres on-chain » recouvre donc une gamme de conceptions : demandez, pour chaque plateforme, ce qui est exactement sur la chaîne. Vers 10 h UTC le 30 octobre 2026, l’indexeur public de dYdX montrait la chaîne toujours en train de produire des blocs, avec environ 82 millions de dollars de volume de perpétuels sur 24 heures répartis sur 296 marchés, selon notre propre addition.

Solana fait tourner des carnets directement sur une couche de base généraliste. Le contrat d’origine de Phoenix (en anglais), désormais qualifié de Legacy, est décrit comme un carnet d’ordres on-chain qui fonctionne sans crank, et Phoenix aujourd’hui se présente (en anglais) comme une plateforme de contrats à terme perpétuels. Manifest (en anglais) promet un carnet sans frais de trading. Les volumes spot ci-dessous racontent une histoire plus gênante.

PlateformeModèleVolume sur 30 jours, millions de dollars
Uniswap V3AMM, liquidité concentrée32 650
Uniswap V4AMM avec hooks32 492
PancakeSwap AMM V3AMM, liquidité concentrée16 338
Aerodrome SlipstreamAMM, liquidité concentrée13 046
PumpSwapAMM8 952
OrcaAMM, liquidité concentrée7 477
Raydium AMMAMM5 236
Hyperliquid spotCarnet d’ordres, chaîne propre3 874
ManifestCarnet d’ordres, Solana3 793
Curve DEXAMM, pools de stables et de cryptos3 221
Lighter spotCarnet d’ordres275
Phoenix spotCarnet d’ordres, Solana1,3

Au 30 octobre 2026, selon DefiLlama (en anglais), le trading spot vit encore surtout dans des pools. Le tableau est une sélection, pas un classement, tirée d’environ 211 milliards de dollars de volume sur 30 jours classés dans les DEX. Uniswap seul annonce environ 65,8 milliards de dollars toutes versions confondues, contre 3,9 milliards pour le carnet spot d’Hyperliquid. Les échanges spot de Phoenix représentent environ 1,3 million de dollars, un chiffre très faible qui ne compte pas ses perpétuels. Les 3,8 milliards de Manifest sont rapportés, pas expliqués. Nous n’avons pas pu établir ce qu’il y a derrière, et une plateforme sans frais de trading rend le volume artificiel peu coûteux : lisez ce chiffre avec la prudence habituelle à l’égard du wash trading. Nous n’avons aucune preuve qu’il s’applique ici.

Le retour des carnets concerne en réalité les contrats à terme perpétuels. La somme des 235 marchés renvoyés par l’API publique d’info d’Hyperliquid (en anglais) vers 10 h UTC le 30 octobre 2026 donne environ 16,5 milliards de dollars de volume de perpétuels sur les 24 heures précédentes et environ 11 milliards de dollars d’intérêt ouvert, calculé comme les contrats ouverts multipliés par le prix d’oracle. Cette somme est la nôtre, pas un chiffre publié par Hyperliquid, et elle ne couvre que la liste principale des marchés : dix listes déployées séparément sur la même API ajouteraient environ 5 milliards de volume et 4 milliards d’intérêt ouvert. Une journée de notionnel sur des contrats à effet de levier ne se compare pas directement à un mois de spot, mais la direction est claire. Notre lecture : les teneurs de marché des perpétuels annulent et recotent sans cesse, et leurs clients veulent des écarts serrés. Le barème de base (en anglais) d’Hyperliquid facture 0,045 % côté preneur et 0,015 % côté teneur sur les perpétuels, et 0,070 % et 0,040 % sur le spot, au premier palier, contre 0,30 % fixes plus l’impact de prix sur un pool Uniswap v2.

Cette comparaison a ses propres limites, puisque des pools v3 peuvent facturer jusqu’à 0,01 %. Et les deux conceptions ne font pas le même métier.

AMM à produit constantCarnet d’ordres on-chain
Qui fixe le prixLes réserves, par une formuleLes teneurs de marché, par leurs cotations
Qui apporte la liquiditéN’importe quel LP, passivementSurtout des teneurs de marché actifs
Jeton nouveau ou peu échangéFonctionne dès le premier dépôtExige un teneur prêt à coter
Coût pour coterAucun une fois déposéUne action par cotation, exige un espace de bloc bon marché
Réaction à une nouvelleAucune avant l’arrivée de l’arbitrageLes teneurs peuvent annuler ou recoter
Principale perte du fournisseurLa LVRSe faire prendre sur des cotations périmées

L’AMM a gardé la longue traîne des jetons et l’essentiel du volume spot des chiffres ci-dessus. Les carnets d’ordres ont pris les flux là où la vitesse compte le plus.

Ce que la formule change quand vous échangez

  • Comparez votre échange à la réserve du jeton que vous vendez. En dessous d’environ 0,3 % de celle-ci, les frais sont votre coût principal ; au-dessus, c’est la courbe.
  • Lisez la ligne d’impact de prix de l’écran de swap comme le résultat de la formule ci-dessus, pour votre taille et ce pool, et voyez dans un chiffre élevé sur un petit échange le signe d’un pool mince.
  • Fractionner un gros ordre n’aide que si le pool se reconstitue entre les morceaux, en général par l’arbitrage, et chaque morceau paie ses propres frais et son gaz. Les agrégateurs, objet d’une leçon ultérieure, répartissent plutôt entre plusieurs pools.
  • Vérifiez quel pool vous frappez. Les paliers de frais bas peuvent avoir beaucoup moins de liquidité que le pool à 0,30 % pour la même paire, et le coût total est la somme des frais et de l’impact.

Swaps, fiscalité et régulateurs : l’angle français

Rien de tout cela ne remplace la routine de sécurité de la leçon précédente ; cela dit seulement ce que signifient les chiffres à l’écran. Côté impôts, la page de la DGFiP sur la déclaration des plus-values et moins-values d’actifs numériques, mise à jour le 17 juillet 2026, indique que les opérations d’échange sans soulte d’actifs numériques bénéficient d’un sursis d’imposition. Les plus-values réalisées à titre particulier sont taxées au prélèvement forfaitaire unique de 31,4 % (12,8 % d’impôt et 18,6 % de prélèvements sociaux), et l’exonération joue tant que la somme des prix de cession de l’année, hors échanges en sursis, ne dépasse pas 305 €.

Reste une réserve de taille : cette page parle des échanges d’actifs numériques en général, et ne traite pas expressément des opérations DeFi. Qu’un swap sur un pool AMM relève du sursis, ou que les jetons reçus en contrepartie d’un dépôt de liquidité changent la qualification, n’est pas réglé noir sur blanc à notre connaissance : le traitement fiscal des opérations DeFi reste incertain, et nous ne le tranchons pas. Notre guide sur la fiscalité des cryptos en France détaille ce qui est établi.

Côté régulation, le règlement MiCA, que l’AMF et l’ACPR appliquent en France, vise avant tout des prestataires identifiables ; notre guide sur MiCA en explique le cadre. Nous n’avons pas trouvé de position de l’AMF consacrée aux pools de ce type et nous n’en affirmons donc aucune. La leçon suivante prend le point de vue du LP sur la même courbe et démontre la formule de l’impermanent loss.

Sources

  1. Livre blanc Uniswap v2 Core, Adams, Zinsmeister, Robinson, mars 2020 (en anglais) app.uniswap.org
  2. Livre blanc Uniswap v3 Core, mars 2021 (en anglais) app.uniswap.org
  3. UniswapV2Library.sol : getAmountOut et getAmountIn (en anglais) github.com
  4. UniswapV2Pair.sol : contrôle de l'invariant et commission de protocole (en anglais) github.com
  5. Milionis, Moallemi, Roughgarden, Zhang : Automated Market Making and Loss-Versus-Rebalancing (en anglais) arxiv.org
  6. Vitalik Buterin : On Path Independence, 22 juin 2017 (en anglais) vitalik.eth.limo
  7. Vitalik Buterin : Improving front running resistance of x*y=k market makers, 2 mars 2018 (en anglais) ethresear.ch
  8. Documentation Hyperliquid : aperçu de HyperCore (en anglais) hyperliquid.gitbook.io
  9. Documentation dYdX : les ordres (en anglais) docs.dydx.xyz
  10. DefiLlama : volumes des DEX, consulté le 30 octobre 2026 (en anglais) defillama.com
  11. Transaction de création de la fabrique Uniswap v1, 2 novembre 2018 (en anglais) eth.blockscout.com
  12. Wikipédia : Uniswap (en anglais) en.wikipedia.org
  13. Gouvernance Uniswap, proposition 93 : UNIfication, exécutée en décembre 2025 (en anglais) vote.uniswapfoundation.org
  14. Gouvernance Uniswap, proposition 9 : palier de frais de 1 point de base (en anglais) vote.uniswapfoundation.org
  15. Documentation Hyperliquid : frais (en anglais) hyperliquid.gitbook.io
  16. API d'info Hyperliquid : perpétuels, lue le 30 octobre 2026 (en anglais) hyperliquid.gitbook.io
  17. Dépôt dYdX v4-chain (en anglais) github.com
  18. Documentation Phoenix (en anglais) docs.phoenix.trade
  19. Dépôt Phoenix Legacy (en anglais) github.com
  20. Dépôt Manifest (en anglais) github.com
  21. L2BEAT : Lighter (en anglais) l2beat.com
  22. Documentation Base : construction des blocs (en anglais) docs.base.org
  23. ethereum.org : les blocs (en anglais) ethereum.org
  24. impots.gouv.fr : déclarer les plus-values et moins-values sur cessions d'actifs numériques impots.gouv.fr
Rédaction de Coindaro

Qui a écrit cet article

Équipe de rédaction

Guides, avis et glossaire vérifiés auprès des sources primaires

  • Formation crypto
  • Avis de plateformes
  • Portefeuilles
  • Glossaire

La rédaction de Coindaro recherche et écrit chaque article, avis et guide publié sur Coindaro. Chaque fait est vérifié auprès de sources primaires (documents officiels, régulateurs, documentation des projets) et chaque page cite ses sources. Nous couvrons les marchés crypto, la technologie et la régulation pour les lecteurs d’Europe et d’Amérique du Nord, en toute indépendance et sans contenu payé.

Continuer à apprendre