Documentation Index
Fetch the complete documentation index at: https://docs.raydium.io/llms.txt
Use this file to discover all available pages before exploring further.
Cette page est traduite automatiquement par IA. La version anglaise fait foi.Voir la version anglaise →
Raydium ne publie pas de SDK Python officiel. Les patterns présentés ici composent trois bibliothèques communautaires bien maintenues :
solders (primitives Solana liées à Rust), solana-py (client RPC) et anchorpy (constructeurs d’instructions de style Anchor à partir des IDL). Cette combinaison couvre tout ce que fait le SDK TS, juste un peu moins polie.Environnement
anchorpy accuse parfois du retard par rapport à anchor-lang ; pour un programme Raydium récemment déployé, vérifiez que l’IDL compile sous votre version épinglée d’anchorpy avant de vous engager.
Connexion et keypair
AsyncClient est la variante async ; le Client sync est disponible pour les scripts rapides mais async est préféré pour tout ce qui envoie plusieurs requêtes.
Lecture de l’état du pool
La plupart des usages de production lisent l’état du pool décodé depuis l’API REST de Raydium (voirsdk-api/rest-api) plutôt que de décoder manuellement les données on-chain — c’est plus simple et la latence est acceptable pour la plupart des cas d’usage.
src/raydium/cpmm/layout.ts (source TS) ; portez-le vers construct selon vos besoins. anchorpy peut faire cela automatiquement à partir de l’IDL — voir ci-dessous.
Construire et envoyer un swap
Pour la simplicité, utilisez le endpoint server-built-transaction de Raydium. Le serveur retourne une transaction prête à signer ; vous devez seulement ajouter votre signature :Construire un swap côté client (via anchorpy)
Pour une latence plus faible ou quand vous ne pouvez pas accéder à l’API de Raydium (régions sanctionnées, configurations isolées) :
anchorpy ne les dérive pas automatiquement.
Architecture type d’un bot
Une structure courante de bot Python Raydium :- Fournisseur RPC. Les RPC publiques mainnet rate-limitent agressivement. Utilisez un fournisseur dédié (Helius, QuickNode, Triton) pour un trafic soutenu.
- WebSocket pour l’état du pool.
client.account_subscribe(pool_id)pousse les mises à jour à chaque changement d’état. Beaucoup plus serré que du polling. - Fournisseur de frais de priorité. Helius a un endpoint
getPriorityFeeEstimate; Triton a le sien. Dimensionnez votre frais selon le 75e percentile des frais récents sur le programme cible. - Bundles pour les trades sensibles au MEV. Routez par le moteur de bloc de Jito si vous ne pouvez pas tolérer le risque de sandwich. Libs Python :
jito-sdk-python(tiers, qualité variable).
Lecture de l’état du farm
.account["X"].decode(bytes) d’anchorpy donne un objet Python natif correspondant à la struct IDL.
Pièges
1. Gestion des décimales
Lefloat natif de Python est IEEE-754 double ; les montants dans les mints à 9 décimales (1 SOL = 1e9 unités) restent précis mais les ratios et les produits perdent en précision. Utilisez int (solders retourne int pour tous les champs de montant) et routez par decimal.Decimal pour tout calcul arithmétique de prix.
2. Raisonnement basé sur les slots vs basé sur les timestamps
Certaines versions de farm utilisent des compteurs de slots ; LaunchLab utilise des timestamps.solana-py retourne slot dans les réponses RPC, mais convertir slot → timestamp n’est pas sans perte (varie selon le planning des leaders). Si vous avez besoin de l’heure murale, appelez get_block_time(slot) explicitement.
3. Épuisement du pool de connexions
AsyncClient ouvre une connexion HTTP par requête par défaut. Sous charge élevée, réutilisez les sessions httpx.AsyncClient et définissez une limits=httpx.Limits(max_connections=100) appropriée.
4. Limites de taille de transaction
Les transactions construites en Python ne sont pas plus petites que celles construites en TS — la limite de 1232 octets s’applique équitablement. Utilisez les transactions V0 (address lookup tables) pour tout ce qui route par plus de ~2 pools.Ressources
sdk-api/rest-api— les endpoints HTTP utilisés ci-dessus.sdk-api/anchor-idl— où obtenir l’IDL pouranchorpy.integration-guides/routing-and-mev— patterns de bundles Jito.


