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.
-
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
slippageBpselegido por transacción. -
Simular cada transacción de mainnet: Usa
simulateTransactionde 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
dynamicComputeUnitLimitde Jupiter o establece un presupuesto ix. -
Manejar wSOL explícitamente: Habilita
wrapAndUnwrapSolo 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
priceImpactPctexcede 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
prioritizationFeeLamportsdesde 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
routePlanpara 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.
Preguntas Frecuentes
¿Cuál es el slippage mínimo para SOL-USDC?
50 bps es un valor predeterminado común; ajústalo para comprobaciones de impacto dependientes del tamaño usando priceImpactPct.
¿Deberían las aplicaciones minoristas usar bundles de Jito?
Opcional para operaciones grandes; las tarifas de prioridad por sí solas pueden ser suficientes para swaps pequeños.
¿Cómo pruebo sin SOL de mainnet?
Bifurcación de Surfpool con ATAs de usuario y estado del pool clonados; no devnet desnudo para pruebas de enrutamiento.
¿Cuál es el principal error de integración?
Cotizaciones obsoletas y falta de comprobaciones de slippage; causan transacciones fallidas o llenados incorrectos.
Relacionados
- DeFi Basics on Solana - entrada de sección
- Swaps con Jupiter - ruta de swap principal
- Mejores Prácticas de Seguridad - seguridad on-chain
- Mejores Prácticas de Pruebas - política de pruebas DeFi
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.