Melhores Práticas para Integrações DeFi
Um resumo condensado das 25 práticas mais importantes para integrações DeFi, extraídas de todas as páginas desta seção.
Busque em todas as páginas da documentação
Um resumo condensado das 25 práticas mais importantes para integrações DeFi, extraídas de todas as páginas desta seção.
Listar pubkeys de mints: Nunca confie em strings de ticker - codifique os mints da mainnet na configuração (Noções Básicas de DeFi).
Recotar antes de enviar: As cotações da Jupiter expiram em segundos - obtenha uma cotação nova imediatamente antes da troca (Trocas com Jupiter).
Definir slippage explícito: Padrão de 50 bps para pares líquidos; aumente para pools finos - registre o slippageBps escolhido por tx.
Simular toda tx da mainnet: Use simulateTransaction da RPC ou o fork do Surfpool 0.12.0 antes de gastar SOL.
Usar limites de computação dinâmicos: Trocas multi-hop excedem 200k CU - habilite dynamicComputeUnitLimit da Jupiter ou defina um orçamento ix.
Lidar com wSOL explicitamente: Habilite wrapAndUnwrapSol ou gerencie o ciclo de vida do ATA wSOL manualmente.
Validar IDs de programas de pool: CPIs diretas de AMM devem verificar se o proprietário do pool corresponde ao programa Raydium/Orca/Meteora (AMMs).
Ler reservas na execução: Pré-visualizações do cliente usam estado obsoleto - simule ou leia reservas on-chain no mesmo slot.
Verificar obsolescência de oráculos: Empréstimos e perps devem falhar fechados quando a idade do Pyth/Switchboard exceder o limite (Oráculos).
Separar LTV e liquidação: Exiba o LTV máximo de empréstimo e o limite de liquidação com um buffer de segurança (Empréstimos).
Rastrear taxas de câmbio de LST: Nunca assuma 1 LST = 1 SOL - leia a taxa do pool de staking (Staking Líquido).
Listar mints de LST: Rejeite tokens de pool de staking desconhecidos - golpes imitam tickers jitoSOL.
Agrupar sob contenção: Grandes trocas na mainnet usam bundles Jito ou RPC privado (Jito e MEV).
Limitar impacto no preço: Aborte trocas quando priceImpactPct exceder a política do produto.
Usar transações versionadas: Rotas DeFi precisam de ALTs - formatos de tx legados atingem limites de conta.
Taxas de prioridade na mainnet: Defina prioritizationFeeLamports de um oráculo de taxas durante congestionamento.
Testar em fork da mainnet: A liquidez da devnet é escassa - Surfpool 0.12.0 para rotas Jupiter realistas.
Registrar planos de rota: Persista o JSON routePlan para depuração de incidentes e suporte ao usuário.
Isolar loops de alavancagem: Cadeias de empréstimo-troca-depósito falham atomicamente - modele a saúde do estado final antes de enviar.
Marcas de oráculo Perp: Liquidações usam preço do oráculo, não a última negociação (Perps).
Apenas inteiros de tick/lote: Preços CLOB são ticks - sem matemática de ponto flutuante JavaScript em caminhos de produção.
Monitorar saldos de tokens de recebimento: Depósitos de empréstimo podem retornar cTokens - rastreie o mint correto para saques.
Limitar taxa da API de cotação: Faça backoff em HTTP 429 da Jupiter; armazene em cache cotações < 5s apenas.
Falhar fechado em erros de CPI: Propague erros de programa - nunca ignore CPIs DeFi falhas em seu programa.
Documentar risco do local: Divulgue riscos de contrato inteligente, oráculo e depeg por protocolo integrado na cópia da UX.
50 bps é um padrão comum; ajuste para verificações de impacto dependentes do tamanho usando priceImpactPct.
Opcional para negociações grandes; taxas de prioridade sozinhas podem ser suficientes para trocas pequenas.
Fork do Surfpool com ATAs de usuário e estado do pool clonados - não devnet crua para testes de roteamento.
Cotações obsoletas e falta de verificações de slippage - causam txs falhas ou preenchimentos ruins.
Versões da Stack: Esta página foi 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, e LiteSVM 0.6.x.
Revisado por Chris St. John·Última atualização: 16 de jul. de 2026