Cette page est traduite automatiquement par IA. La version anglaise fait foi.Voir la version anglaise →
Les produits principaux de Raydium ne dépendent pas d’oracles externes pour la tarification — l’état du pool est l’oracle. Cependant, l’API et le SDK utilisent des oracles externes pour la tarification en USD affichée aux utilisateurs, et les mints Token-2022 apportent un ensemble plus riche de contrôles que SPL Token, dont certains changent fondamentalement le modèle de confiance d’un pool. Cette page catalogue les deux.
Oracles dans Raydium
Interne : le pool est l’oracle
Pour AMM v4, CPMM et CLMM, la définition du protocole du « prix actuel » est dérivée uniquement de l’état du pool :- AMM v4 / CPMM :
price = vaultB_balance / vaultA_balance(en tenant compte des décimales). - CLMM :
price = (sqrtPriceX64 / 2^64)^2 × 10^(decimalsA - decimalsB).
ObservationState CLMM comme oracle TWAP
Les pools CLMM maintiennent un compte ObservationState qui enregistre des snapshots historiques de sqrt_price. D’autres programmes peuvent composer avec ceci pour dériver un prix moyen pondéré dans le temps résistant à la manipulation :
products/clmm/accounts#observation-state pour la disposition des données.
Externe : tarification en USD sur le frontend/API
Le frontend de Raydium etapi-v3.raydium.io affichent les valeurs en USD (TVL, APR des frais, volume en $). Celles-ci proviennent de :
- Pyth comme oracle principal pour les mints majeurs.
- Prix agrégateur de Jupiter comme solution de secours.
- Prix dérivé du pool pour les mints de queue longue sans couverture d’oracle externe.
La manipulation d’oracle ne s’applique pas aux pools Raydium
Parce que l’état du pool est l’oracle, il n’y a pas d’« attaque d’oracle » au sens que la littérature des bug-bounty signifie — aucune source de données externe manipulable que l’attaquant peut corrompre. Les attaques économiques sur l’état du pool (manipulation de style flash-loan) sont couvertes danssecurity/attack-vectors.
Risques des extensions Token-2022
SPL Token-2022 (alias « Token Extensions ») ajoute un comportement configurable aux mints via des extensions. Certaines extensions changent les propriétés de confiance des pools qui les incluent. Les programmes Raydium en gèrent certaines automatiquement et en exposent d’autres comme avertissements utilisateur.Frais de transfert
Ce que c’est : Un frais configurable (pourcentage du transfert, jusqu’à un plafondmaximum_fee en termes absolus) payé par l’expéditeur à l’autorité du mint à chaque transfert.
Risque : Le frais peut être modifié par l’autorité de configuration des frais du mint. Si vous déposez de la liquidité quand le frais est de 1 %, et que l’autorité l’augmente à 50 %, les swaps ultérieurs retournent beaucoup moins que prévu.
Atténuation dans Raydium : Les pools lisent le transferFeeConfig actuel au moment du swap et ajustent les mathématiques. Le pool lui-même n’est pas corrompu, mais les utilisateurs voient une sortie pire. L’autorité des frais peut également programmer un changement de frais retardé ; l’interface de Raydium signale les pools avec des changements de frais imminents.
Risque résiduel : Si une autorité de frais malveillante change le frais pendant votre swap en vol, votre minimumAmountOut protège le côté négatif — la tx revient. Si vous faites confiance à l’émetteur du mint, c’est bien ; sinon, ne fournissez pas de liquidité.
Hook de transfert
Ce que c’est : Un transfert invoque un programme séparé (le « hook ») pour exécuter une validation personnalisée ou des effets secondaires. Risque : Le hook peut bloquer n’importe quel transfert, y compris les transferts internes du pool lors d’un swap. Un hook modifiable peut devenir malveillant plus tard — ce qui était sûr au moment du dépôt peut devenir non-échangeable au moment du retrait. Atténuation dans Raydium : Raydium liste un ID de programme hook dans l’état du pool. Les intégrations doivent afficher l’ID du programme hook aux utilisateurs afin qu’ils puissent vérifier qu’il s’agit du programme attendu (non-modifiable, audité). Risque résiduel : Si un hook est modifiable et que son autorité devient hostile, le pool peut être gelé. Raydium ne bloque pas les pools avec des hooks de transfert, mais il les signale. Ne fournissez de liquidité à un pool avec hook de transfert que si le hook est vérifié comme sûr.Autorité de gel
Ce que c’est : L’autorité de gel d’un mint peut geler n’importe quel compte de token détenant ce mint, empêchant tous les transferts. Risque : Une autorité de gel capable de geler le compte vault du pool arrête effectivement le pool — les utilisateurs ne peuvent pas se retirer, les traders ne peuvent pas swapper. Cela s’applique à SPL Token et Token-2022 ; ce n’est pas nouveau avec Token-2022, mais c’est toujours un risque. Atténuation dans Raydium : Aucune au niveau du programme — le gel de SPL Token est opaque pour le pool. L’interface de Raydium avertit sur les pools avec des mints gélables. Les utilisateurs qui déposent doivent vérifier que l’autorité de gel est nulle ou un multisig auquel ils font confiance (USDC a une autorité de gel ; c’est l’émetteur Circle). Risque résiduel : Acceptez que les mints gélables puissent être gelés. Les mints majeurs (USDC, USDT, USDY) ont des autorités de gel détenues par l’émetteur et utilisées uniquement pour la conformité réglementaire ; c’est généralement acceptable.NFT de position CLMM avec autorité d’émetteur restreint
CLMM applique un contrôle supplémentaire pour les autorités de gel d’émetteur restreint KYC sélectionnées. Quand l’autorité de gel de l’un ou l’autre mint du pool correspond à la liste codée en dur du programme, les nouvelles positions ouvertes viaOpenPositionV2 ou OpenPositionWithToken22Nft ont leur compte de token NFT gelé immédiatement. Le PDA du pool correspondant est l’autorité de gel du mint du NFT de position.
Cela empêche la position d’être transférée à un portefeuille non approuvé ou de changer le propriétaire de son compte de token. Cela ne donne pas à l’émetteur du token sous-jacent le contrôle du NFT de position : seul le PDA du pool CLMM est l’autorité de gel du NFT de position, et le programme l’utilise pour dégeler uniquement dans le cadre de ClosePosition avant la combustion. La gestion de la liquidité et la collecte des frais ou récompenses continuent de nécessiter le propriétaire du NFT.
Les positions existantes restent dégelées. Les intégrateurs doivent traiter la transférabilité comme un état spécifique à la position et lire le drapeau isFrozen du compte de token NFT.
Délégué permanent
Ce que c’est : Une extension Token-2022 qui désigne un délégué permanent qui peut transférer des tokens de n’importe quel détenteur sans approbation. Risque : Le délégué permanent peut vider le vault du pool à tout moment. Atténuation dans Raydium : CPMM et CLMM refusent de créer des pools avec des mints qui ont un délégué permanent. L’initialisation revient. Aucun pool Raydium en cours d’exécution n’a de mint avec délégué permanent. Risque résiduel : Zéro (tant que la vérification est correcte, ce que les deux audits ont vérifié).Non-transférable
Ce que c’est : Les mints qui ne peuvent pas être transférés par les détenteurs. Risque : Les pools dépendent de la transférabilité pour déplacer les tokens entre les ATA utilisateur et les vaults du pool. Les mints non-transférables cassent trivialement les pools. Atténuation dans Raydium : La création de pool revient sur les mints non-transférables. Les fermes refusent également les mints de staking non-transférables.Gel par défaut / autorité de fermeture / portant intérêt
Extensions d’impact inférieur gérées par Raydium :- Gel par défaut : les nouveaux comptes de token doivent être dégelés avant utilisation. Raydium gère cela de manière transparente lors de la création d’ATA.
- Autorité de fermeture : une autorité désignée peut fermer les comptes de token. Les vaults du pool sont possédés par l’autorité dérivée du programme du pool, donc l’autorité de fermeture sur le mint ne s’applique pas au vault.
- Portant intérêt : le solde affiché accumule des intérêts ;
amountreste fixe maisuiAmountaugmente. Les mathématiques du pool Raydium utilisentamount, pas les intérêts accumulés ; l’affichage s’ajuste séparément.
Autorité de mint
Pas un risque spécifique à Token-2022, mais à noter : si un mint conserve l’autorité de mint, le détenteur peut gonfler l’offre à volonté. Pour les tokens lancés, cela dilue les LP au prix actuel du pool. LaunchLab refuse de créer des lancements à moins que l’autorité de mint soit nulle.Étiquettes de risque dans l’interface
L’interface de Raydium étiquette chaque pool avec les tags de risque applicables :- TRANSFER_FEE — frais de transfert non nul.
- TRANSFER_HOOK — extension hook de transfert active.
- FREEZE — le mint a une autorité de gel.
- MINT — le mint a une autorité de mint (l’offre peut gonfler).
- CLOSE — le mint a une autorité de fermeture.
Liste de contrôle pour les intégrateurs
Avant de composer avec un pool Raydium :- Vérifiez les extensions de chaque mint via
getMint(mint, TOKEN_2022_PROGRAM_ID). - Ignorez les pools où un mint a permanent_delegate ou non_transferable (ceux-ci ne devraient pas exister dans Raydium, mais défense en profondeur).
- Vérifiez l’autorité de gel pour les deux mints ; nulle ou autorité de confiance uniquement.
- Avant d’offrir le transfert de position, l’escrow ou Burn & Earn, confirmez que le compte de token NFT de position CLMM n’est pas gelé.
- Pour les pools avec hook de transfert, vérifiez l’ID du programme hook par rapport à une liste blanche.
- Dimensionnez l’exposition par rapport aux scénarios de frais de transfert (que se passe-t-il si le frais atteint le maximum ?).
- Utilisez CLMM TWAP (ObservationState) plutôt que le prix spot pour la tarification des dérivés.
Déclaration d’acceptation du risque résiduel
Les programmes de Raydium appliquent ce qui peut être appliqué au niveau du programme :- La création de pool refuse les mints avec délégué permanent / non-transférable.
- Les mathématiques de swap s’ajustent correctement pour les frais de transfert actuels.
- ObservationState fournit un oracle résistant à la manipulation.
- L’autorité de gel d’un mint peut geler le pool.
- L’autorité des frais d’un mint peut augmenter les frais de transfert (jusqu’au plafond
maximum_fee) à tout moment. - Un programme hook de transfert peut être mis à niveau vers du code malveillant.
- Le taux d’accumulation d’un mint portant intérêt peut être modifié.
Pointeurs
algorithms/token-2022-transfer-fees— ajustements mathématiques pour les mints avec frais de transfert.security/attack-vectors— comment ces risques se manifestent comme des attaques concrètes.integration-guides/wallet-integration— affichage des étiquettes de risque Token-2022.products/clmm/accounts— disposition d’ObservationState.
- Documentation des extensions SPL Token-2022.
- Logique de validation d’initialisation du pool :
src/raydium/cpmm/instrument.ts,src/raydium/clmm/instrument.ts. - Pyth — oracle de prix externe utilisé sur le frontend.

