Saltar para o conteúdo principal

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 foi traduzida automaticamente por IA. A versão em inglês é a fonte oficial.Ver versão em inglês →
Os produtos principais do Raydium não dependem de oracles externos para precificação — o estado do pool é o oracle. Porém, a API e SDK usam oracles externos para precificação em USD exibida aos usuários, e mints Token-2022 trazem um conjunto mais rico de controles que SPL Token, alguns dos quais mudam fundamentalmente o modelo de confiança de um pool. Esta página cataloga ambos.

Oracles no Raydium

Interno: o pool é o oracle

Para AMM v4, CPMM e CLMM, a definição do protocolo de “preço atual” é derivada apenas do estado do pool:
  • AMM v4 / CPMM: price = vaultB_balance / vaultA_balance (contabilizando decimais).
  • CLMM: price = (sqrtPriceX64 / 2^64)^2 × 10^(decimalsA - decimalsB).
Nenhum oracle externo é consultado durante um swap, depósito ou saque. Esta é a parte “sem permissão” do design de AMM: se a matemática do pool estiver correta, nenhuma manipulação externa de um feed de preços pode corrompê-lo.

ObservationState do CLMM como oracle TWAP

Os pools CLMM mantêm uma conta ObservationState que registra snapshots históricos de sqrt_price. Outros programas podem compor contra isso para derivar um preço médio ponderado no tempo resistente a manipulação:
// Um TWAP simplificado: média de (atual, N slots atrás).
let obs_now  = load_observation(pool, Clock::slot());
let obs_past = load_observation(pool, Clock::slot() - 300);  // ~2 min atrás
let twap = (obs_now.price_cumulative - obs_past.price_cumulative)
         / (obs_now.slot - obs_past.slot);
Este é o mesmo padrão que Uniswap V3 usa. Uma manipulação de preço de curto prazo (uma baleia empurrando temporariamente o pool) não corrompe o TWAP porque é mediado em centenas de slots. Programas que precisam de um feed de preço mais seguro para mints CLMM (oracles de liquidação, precificação de opções, etc.) devem usar TWAPs de ObservationState em vez de preços instantâneos. Não use preços instantâneos de CLMM para composabilidade. Um único swap grande pode empurrar o preço spot 10%+ em um pool raso; o TWAP amortece isso. Veja products/clmm/accounts#observation-state para o layout dos dados.

Externo: precificação em USD no frontend/API

O frontend do Raydium e api-v3.raydium.io exibem valores em USD (TVL, APR de taxa, volume em $). Esses vêm de:
  • Pyth como oracle primário para mints principais.
  • Aggregator price do Jupiter como fallback.
  • Pool-derived price para mints de cauda longa sem cobertura de oracle externo.
Exibições em USD são puramente cosméticas — operações on-chain nunca lêem Pyth, e nenhuma matemática de pool usa USD. Se Pyth parar de fornecer dados para um mint, a UI mostra ”—”; o pool continua funcionando.

Manipulação de oracle não aplicável a pools Raydium

Porque o estado do pool é o oracle, não há “ataque de oracle” no sentido que a literatura de bug-bounty significa — nenhuma fonte de dados externa manipulável que o atacante possa corromper. Ataques econômicos no estado do pool (manipulação de estilo flash-loan) são cobertos em security/attack-vectors.

Riscos de extensão Token-2022

SPL Token-2022 (aka “Token Extensions”) adiciona comportamento configurável a mints via extensões. Algumas extensões mudam as propriedades de confiança de pools que as incluem. Os programas Raydium lidam com algumas automaticamente e expõem outras como avisos ao usuário.

Transfer fee

O que é: Uma taxa configurável (percentual de transferência, até um limite de maximum_fee em termos absolutos) paga pelo remetente à autoridade de mint em cada transferência. Risco: A taxa pode ser alterada pela autoridade fee-config do mint. Se você depositar liquidez quando a taxa é 1%, e a autoridade a aumenta para 50%, swaps subsequentes retornam muito menos do que o esperado. Mitigação no Raydium: Os pools lêem o transferFeeConfig atual no momento do swap e ajustam a matemática. O pool em si não é corrompido, mas os usuários veem saída pior. A autoridade de taxa também pode agendar uma mudança de taxa atrasada; a UI do Raydium sinaliza pools com mudanças de taxa iminentes. Risco residual: Se uma autoridade de taxa maliciosa alterar a taxa durante seu swap em voo, seu minimumAmountOut protege o lado negativo — a tx reverte. Se você confia no emissor do mint, tudo bem; se não, não faça LP.

Transfer hook

O que é: Uma transferência invoca um programa separado (o “hook”) para executar validação customizada ou efeitos colaterais. Risco: O hook pode bloquear qualquer transferência, incluindo as transferências internas do pool durante um swap. Um hook atualizável pode se tornar malicioso mais tarde — o que era seguro no momento do depósito pode se tornar não-permutável no momento da retirada. Mitigação no Raydium: O Raydium lista um ID de programa hook no estado do pool. Integrações devem exibir o ID de programa hook aos usuários para que possam verificar se é o programa esperado (não-atualizável, auditado). Risco residual: Se um hook for atualizável e sua autoridade se tornar hostil, o pool pode ser congelado. O Raydium não bloqueia pools com transfer hooks, mas os sinaliza. Faça LP em um pool transfer-hook apenas se o hook for verificado como seguro.

Freeze authority

O que é: A autoridade de congelamento de um mint pode congelar qualquer conta de token mantendo esse mint, impedindo todas as transferências. Risco: Uma autoridade de congelamento com a capacidade de congelar a conta de cofre do pool efetivamente desliga o pool — usuários não podem sacar, traders não podem fazer swap. Isso se aplica a SPL Token e Token-2022; não é novo com Token-2022, mas continua sendo um risco. Mitigação no Raydium: Nenhuma no nível do programa — o congelamento de SPL Token é opaco para o pool. A UI do Raydium avisa em pools com mints congelados. Usuários depositando devem verificar que a autoridade de congelamento é nula ou um multisig em que confiam (USDC tem uma autoridade de congelamento; é do emissor Circle). Risco residual: Aceite que mints congelados podem ser congelados. Mints principais (USDC, USDT, USDY) têm autoridades de congelamento mantidas pelo emissor e usadas apenas para conformidade regulatória; isto é geralmente aceitável.

Permanent delegate

O que é: Uma extensão Token-2022 que designa um permanent delegate que pode transferir tokens de qualquer titular sem aprovação. Risco: O permanent delegate pode drenar o cofre do pool a qualquer momento. Mitigação no Raydium: CPMM e CLMM recusam criar pools com mints que têm um permanent delegate. A inicialização reverte. Nenhum pool Raydium em execução tem um mint permanent-delegate. Risco residual: Zero (contanto que a verificação esteja correta, o que ambas as auditorias verificaram).

Non-transferable

O que é: Mints que não podem ser transferidos por detentores. Risco: Os pools dependem de transferibilidade para mover tokens entre ATAs de usuário e cofres de pool. Mints não-transferíveis trivialmente quebram pools. Mitigação no Raydium: A criação do pool reverte em mints não-transferíveis. Farms também recusam mints de staking não-transferíveis.

Default-frozen / close-authority / interest-bearing

Extensões de impacto menor manipuladas pelo Raydium:
  • Default-frozen: novas contas de token precisam ser descongeladas antes de uso. O Raydium lida com isso transparentemente na criação de ATA.
  • Close-authority: uma autoridade designada pode fechar contas de token. Os cofres de pool são possuídos pela autoridade derivada do programa do pool, então close-authority no mint não se aplica ao cofre.
  • Interest-bearing: o saldo exibido acumula juros; amount fica fixo mas uiAmount cresce. A matemática do pool Raydium usa amount, não juros acumulados; a exibição se ajusta separadamente.

Mint authority

Não é um risco específico de Token-2022, mas vale a pena notar: se um mint retém a autoridade de mint, o titular pode inflar o suprimento à vontade. Para tokens lançados, isto dilui LPs no preço atual do pool. O LaunchLab recusa criar lançamentos a menos que a autoridade de mint seja nula.

Rótulos de risco na UI

O frontend do Raydium rotula cada pool com tags de risco aplicáveis:
  • TRANSFER_FEE — taxa de transferência não-zero.
  • TRANSFER_HOOK — extensão transfer-hook ativa.
  • FREEZE — mint tem uma autoridade de congelamento.
  • MINT — mint tem uma autoridade de mint (o suprimento pode inflar).
  • CLOSE — mint tem uma autoridade de fechamento.
Agregadores que consomem a API do Raydium devem expor esses rótulos aos usuários.

Checklist de integrador

Antes de compor com um pool Raydium:
  • Verifique as extensões de cada mint via getMint(mint, TOKEN_2022_PROGRAM_ID).
  • Pule pools onde qualquer mint tem permanent_delegate ou non_transferable (esses não devem existir no Raydium, mas defesa em profundidade).
  • Verifique a autoridade de congelamento para ambos os mints; nula ou autoridade confiável apenas.
  • Para pools transfer-hook, verifique o ID de programa hook em relação a uma lista de permissões.
  • Dimensione exposição contra cenários de transfer-fee (e se a taxa fosse para o máximo?).
  • Use CLMM TWAP (ObservationState) em vez de preço spot para precificação de derivativos.

Declaração de aceitação de risco residual

Os programas do Raydium aplicam o que pode ser aplicado no nível do programa:
  • A criação do pool recusa mints permanent-delegate / non-transferable.
  • A matemática do swap se ajusta corretamente para transfer fees atuais.
  • ObservationState fornece um oracle resistente a manipulação.
Riscos residuais que os usuários devem aceitar:
  • A autoridade de congelamento de um mint pode congelar o pool.
  • A autoridade de taxa de um mint pode aumentar a transfer fee (até limite de maximum_fee) a qualquer momento.
  • Um programa transfer-hook pode ser atualizado para código malicioso.
  • A taxa de acúmulo de um mint interest-bearing pode ser alterada.
A defesa certa é a diligência pré-LP: não deposite em pools com mints que têm autoridades concentradas em que você não confia. O Raydium não pode decidir essa confiança por você; pode apenas expor os fatos relevantes.

Referências

Fontes: