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.
Esta página fue traducida automáticamente por IA. La versión en inglés es la fuente autorizada.Ver versión en inglés →
Raydium no publica un SDK oficial para Python. Los patrones aquí componen tres bibliotecas mantenidas por la comunidad:
solders (primitivas de Solana vinculadas a Rust), solana-py (cliente RPC) y anchorpy (constructores de instrucciones al estilo Anchor a partir de IDLs). La combinación cubre todo lo que hace el SDK de TS; simplemente es menos pulida.Entorno
anchorpy periódicamente se queda atrás de la versión de anchor-lang; para un programa Raydium recientemente desplegado, verifica que el IDL se compile bajo tu anchorpy fijada antes de hacer commit.
Conexión y keypair
AsyncClient es la variante async; el Client síncrono está disponible para scripts rápidos pero async es preferible para cualquier cosa que envíe múltiples solicitudes.
Lectura del estado del pool
La mayoría del uso en producción lee el estado del pool decodificado desde la API REST de Raydium (versdk-api/rest-api) en lugar de decodificar manualmente los datos en cadena — es más simple y la latencia es aceptable para la mayoría de casos de uso.
src/raydium/cpmm/layout.ts (fuente de TS); transpórtalo a construct según sea necesario. anchorpy puede hacer esto automáticamente dado el IDL — ve abajo.
Construcción y envío de un swap
Para simplificar, usa el endpoint server-built-transaction de Raydium. El servidor devuelve una transacción lista para firmar; solo necesitas agregar tu firma:Construcción de un swap del lado del cliente (vía anchorpy)
Para menor latencia o cuando no puedes acceder a la API de Raydium (regiones sancionadas, configuraciones aisladas):
anchorpy no las deriva automáticamente.
Arquitectura típica de bot
Una estructura común de bot Raydium en Python:- Proveedor RPC. Los RPC públicos mainnet limitan la velocidad agresivamente. Usa un proveedor dedicado (Helius, QuickNode, Triton) para tráfico sostenido.
- WebSocket para estado del pool.
client.account_subscribe(pool_id)envía actualizaciones en cada cambio de estado. Mucho más ajustado que polling. - Proveedor de priority fee. Helius tiene un endpoint
getPriorityFeeEstimate; Triton tiene el suyo. Dimensiona tu fee basándose en el percentil 75 de fees recientes en el programa objetivo. - Bundles para trades sensibles a MEV. Rutea a través del block engine de Jito si no puedes tolerar riesgo de sandwich. Librerías Python:
jito-sdk-python(tercera parte, calidad varía).
Lectura del estado de la granja
.account["X"].decode(bytes) de anchorpy da un objeto nativo de Python que coincide con el struct de IDL.
Trampas
1. Manejo de decimales
Elfloat nativo de Python es IEEE-754 double; los montos en mints de 9 decimales (1 SOL = 1e9 unidades) se mantienen precisos pero las ratios y productos pierden precisión. Usa int (solders devuelve int para todos los campos de cantidad) y encamina a través de decimal.Decimal para cualquier aritmética de precios.
2. Razonamiento basado en slot vs basado en timestamp
Algunas versiones de granja usan contadores de slot; LaunchLab usa timestamps.solana-py devuelve slot en respuestas RPC, pero convertir slot → timestamp es con pérdida (varía según el schedule de leader). Si necesitas tiempo de pared, llama a get_block_time(slot) explícitamente.
3. Agotamiento del pool de conexión
AsyncClient abre una conexión HTTP por solicitud por defecto. Bajo carga alta, reutiliza sesiones de httpx.AsyncClient y establece un limits=httpx.Limits(max_connections=100) apropiado.
4. Límites de tamaño de transacción
Las transacciones construidas en Python no son más pequeñas que las construidas en TS — el límite de 1232 bytes se aplica por igual. Usa transacciones V0 (tablas de búsqueda de direcciones) para cualquier cosa que se enrute a través de más de ~2 pools.Referencias
sdk-api/rest-api— los endpoints HTTP utilizados arriba.sdk-api/anchor-idl— dónde obtener el IDL paraanchorpy.integration-guides/routing-and-mev— patrones de bundle de Jito.


