Mejores Prácticas para Integraciones DeFi
Un resumen condensado de las 25 prácticas más importantes para integraciones DeFi, extraídas de cada página de esta sección.
Busca en todas las páginas de la documentación
Un resumen condensado de las 25 prácticas más importantes para integraciones DeFi, extraídas de cada página de esta sección.
Permitir claves públicas de acuñación (mint): Nunca confíes en cadenas de texto de tickers; codifica las acuñaciones principales de mainnet en la configuración (DeFi Basics).
Volver a cotizar antes de enviar: Las cotizaciones de Jupiter expiran en segundos; obtén una cotización fresca inmediatamente antes del swap (Swaps con Jupiter).
Establecer slippage explícito: Por defecto 50 bps para pares líquidos; aumenta para pools delgados; registra slippageBps elegido por transacción.
Simular cada transacción de mainnet: Usa simulateTransaction de RPC o una bifurcación de Surfpool 0.12.0 antes de gastar SOL.
Usar límites de cómputo dinámicos: Los swaps multi-hop exceden los 200k CU; habilita dynamicComputeUnitLimit de Jupiter o establece un presupuesto ix.
Manejar wSOL explícitamente: Habilita wrapAndUnwrapSol o gestiona el ciclo de vida de ATA de wSOL manualmente.
Validar IDs de programas de pool: Las CPIs directas de AMM deben verificar que el propietario del pool coincida con el programa de Raydium/Orca/Meteora (AMMs).
Leer reservas en la ejecución: Las previsualizaciones del cliente usan estado obsoleto; simula o lee reservas on-chain en el mismo slot.
Verificar la obsolescencia de oráculos: Los préstamos y perps deben fallar cerrándose cuando la antigüedad de Pyth/Switchboard excede el umbral (Oracles).
Separar LTV y liquidación: Muestra el LTV máximo de préstamo y el umbral de liquidación con un buffer de seguridad (Lending).
Rastrear tasas de cambio de LST: Nunca asumas 1 LST = 1 SOL; lee la tasa del pool de stake (Liquid Staking).
Permitir acuñaciones de LST: Rechaza tokens de pool de stake desconocidos; las estafas imitan tickers de jitoSOL.
Agrupar bajo contención: Los swaps grandes en mainnet usan bundles de Jito o RPC privado (Jito & MEV).
Limitar el impacto en el precio: Aborta swaps cuando priceImpactPct excede la política del producto.
Usar transacciones versionadas: Las rutas DeFi necesitan ALTs; los formatos de transacción heredados alcanzan límites de cuenta.
Tarifas de prioridad en mainnet: Establece prioritizationFeeLamports desde un oráculo de tarifas durante la congestión.
Probar en bifurcación de mainnet: La liquidez de devnet es escasa; usa Surfpool 0.12.0 para rutas realistas de Jupiter.
Registrar planes de ruta: Persiste el JSON de routePlan para depuración de incidentes y soporte al usuario.
Aislar bucles de apalancamiento: Las cadenas de préstamo-swap-depósito fallan atómicamente; modela la salud del estado final antes de enviar.
Marcas de oráculo Perp: Las liquidaciones usan el precio del oráculo, no la última operación (Perps).
Solo enteros de tick/lote: Los precios de CLOB son ticks; no uses matemáticas de punto flotante de JavaScript en rutas de producción.
Monitorear saldos de tokens de recibo: Los depósitos de préstamos pueden devolver cTokens; rastrea la acuñación correcta para retiros.
Limitar la tasa de la API de cotización: Retrocede ante HTTP 429 de Jupiter; cachea cotizaciones de < 5s solamente.
Fallar cerrándose ante errores de CPI: Propaga errores de programa; nunca ignores una CPI de DeFi fallida en tu programa.
Documentar el riesgo del venue: Revela riesgos de contratos inteligentes, oráculos y depeg por cada protocolo integrado en la copia de UX.
50 bps es un valor predeterminado común; ajústalo para comprobaciones de impacto dependientes del tamaño usando priceImpactPct.
Opcional para operaciones grandes; las tarifas de prioridad por sí solas pueden ser suficientes para swaps pequeños.
Bifurcación de Surfpool con ATAs de usuario y estado del pool clonados; no devnet desnudo para pruebas de enrutamiento.
Cotizaciones obsoletas y falta de comprobaciones de slippage; causan transacciones fallidas o llenados incorrectos.
Versiones de la pila: Esta página fue escrita para Agave 4.1.1, Solana CLI 3.0.10, Anchor 0.32.1, anchor-lang 0.32.1, Rust 1.91.1, @solana/kit 7.0.0, Surfpool 0.12.0, y LiteSVM 0.6.x.
Revisado por Chris St. John·Última actualización: 16 jul 2026