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. Mas 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 do 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).
ObservationState do CLMM como oracle TWAP
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 por tempo resistente a manipulação:
products/clmm/accounts#observation-state para o layout dos dados.
Externo: precificação em USD no frontend/API
O frontend do Raydium eapi-v3.raydium.io exibem valores em USD (TVL, APR de taxa, volume em $). Estes vêm de:
- Pyth como oracle primário para mints principais.
- Preço agregador do Jupiter como fallback.
- Preço derivado do pool para mints de cauda longa sem cobertura de oracle externo.
Manipulação de oracle não aplicável a pools Raydium
Como 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 estilo flash-loan) são cobertos emsecurity/attack-vectors.
Riscos de extensão Token-2022
SPL Token-2022 (também conhecido como “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. 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 demaximum_fee em termos absolutos) paga pelo remetente à autoridade de mint em cada transferência.
Risco: A taxa pode ser alterada pela autoridade de configuração de taxa do mint. Se você depositar liquidez quando a taxa é 1%, e a autoridade a aumentar para 50%, swaps subsequentes retornam muito menos do que o esperado.
Mitigação no Raydium: Pools leem a 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 depois — o que era seguro no momento do depósito pode se tornar não-swappable no momento do saque. Mitigação no Raydium: Raydium lista um ID de programa hook no estado do pool. Integrações devem exibir o ID do programa hook aos usuários para que possam verificar se é o programa esperado (não-atualizável, auditado). Risco residual: Se um hook é atualizável e sua autoridade se torna hostil, o pool pode ser congelado. Raydium não bloqueia pools com transfer hooks, mas os sinaliza. Faça LP em um pool com 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 que detenha esse mint, prevenindo todas as transferências. Risco: Uma autoridade de congelamento com a capacidade de congelar a conta vault do pool efetivamente desativa 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 ainda é um risco. Mitigação no Raydium: Nenhuma no nível do programa — o congelamento de SPL Token é opaco ao pool. A UI do Raydium avisa em pools com mints congeláveis. Usuários depositando devem verificar se 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 congeláveis podem ser congelados. Mints principais (USDC, USDT, USDY) têm autoridades de congelamento mantidas pelo emissor e usadas apenas para conformidade regulatória; isso geralmente é aceitável.NFTs de posição CLMM com freeze authority de emissor restrito
CLMM aplica um controle adicional para autoridades de congelamento de emissor restrito por KYC selecionadas. Quando a autoridade de congelamento de qualquer mint do pool corresponde à lista codificada do programa, novas posições abertas através deOpenPositionV2 ou OpenPositionWithToken22Nft têm sua conta de token NFT congelada imediatamente. O PDA correspondente do pool é a autoridade de congelamento do mint do NFT da posição.
Isso previne que a posição seja transferida para uma carteira não aprovada ou que mude o proprietário de sua conta de token. Isso não dá ao emissor do token subjacente controle da posição NFT: apenas o PDA do pool CLMM é a autoridade de congelamento do NFT da posição, e o programa a usa para descongelar apenas como parte de ClosePosition antes de queimar. Gerenciamento de liquidez e coleta de taxa ou recompensa continuam exigindo o proprietário do NFT.
Posições existentes permanecem descongeladas. Integradores devem tratar transferibilidade como estado específico da posição e ler a flag isFrozen da conta de token do NFT.
Permanent delegate
O que é: Uma extensão Token-2022 que designa um delegado permanente que pode transferir tokens de qualquer detentor sem aprovação. Risco: O delegado permanente pode drenar o vault do pool a qualquer momento. Mitigação no Raydium: CPMM e CLMM recusam criar pools com mints que têm um delegado permanente. A inicialização reverte. Nenhum pool Raydium em execução tem um mint com delegado permanente. 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: Pools dependem de transferibilidade para mover tokens entre ATAs de usuário e vaults de pool. Mints não-transferíveis trivialmente quebram pools. Mitigação no Raydium: Criação de 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 menor impacto tratadas pelo Raydium:- Default-frozen: novas contas de token precisam ser descongeladas antes do uso. Raydium lida com isso transparentemente na criação de ATA.
- Close-authority: uma autoridade designada pode fechar contas de token. Vaults de pool são possuídos pela autoridade derivada do programa do pool, então close-authority no mint não se aplica ao vault.
- Interest-bearing: o saldo exibido acumula juros;
amountpermanece fixo masuiAmountcresce. Matemática de pool Raydium usaamount, não juros acumulados; 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 autoridade de mint, o detentor pode inflar a oferta à vontade. Para tokens lançados, isso dilui LPs ao preço atual do pool. 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 (oferta pode inflar).
- CLOSE — mint tem uma autoridade de fechamento.
Checklist para integradores
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 (estes não deveriam existir no Raydium, mas defesa em profundidade).
- Verifique freeze authority para ambos os mints; apenas nula ou autoridade confiável.
- Antes de oferecer transferência de posição, escrow ou Burn & Earn, confirme que a conta de token NFT da posição CLMM não está congelada.
- Para pools com transfer-hook, verifique o ID do programa hook contra uma whitelist.
- Dimensione exposição contra cenários de transfer-fee (e se a taxa for para o máximo?).
- Use TWAP CLMM (ObservationState) em vez de preço spot para precificação de derivativos.
Declaração de aceitação de risco residual
Programas Raydium aplicam o que pode ser aplicado no nível do programa:- Criação de pool recusa mints com permanent-delegate / non-transferable.
- Matemática de swap se ajusta corretamente para taxas de transferência atuais.
- ObservationState fornece um oracle resistente a manipulação.
- A autoridade de congelamento de um mint pode congelar o pool.
- A autoridade de taxa de um mint pode aumentar a taxa de transferência (até o 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.
Referências
algorithms/token-2022-transfer-fees— ajustes matemáticos para mints com transfer-fee.security/attack-vectors— como esses riscos se manifestam como ataques concretos.integration-guides/wallet-integration— exibindo rótulos de risco Token-2022.products/clmm/accounts— layout de ObservationState.
- Documentação de extensões SPL Token-2022.
- Lógica de validação de inicialização de pool:
src/raydium/cpmm/instrument.ts,src/raydium/clmm/instrument.ts. - Pyth — oracle de preço externo usado no frontend.

