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 →
O AMM v4 é significativamente mais pesado em contas do que CPMM ou CLMM, pois toda operação toca no estado do OpenBook. Esta página agrupa as contas em seções “de propriedade do pool” e “de propriedade do OpenBook” para que um integrador veja rapidamente qual lado é qual.
Inventário
Um pool AMM v4 se vincula a exatamente um mercado OpenBook na criação. O quadro completo atual é:| Categoria | Conta | Proprietário | Função |
|---|---|---|---|
| Pool | AmmInfo | Programa AMM v4 | Estado do pool: taxas acumuladas, status, referências para vaults e mercado OpenBook. |
| Pool | amm_authority | Programa AMM v4 | PDA de propriedade do programa que assina movimentos de vault. Compartilhado entre todos os pools AMM v4. |
| Pool | amm_open_orders | OpenBook | A conta OpenOrders do pool no OpenBook para este mercado. |
| Pool | amm_target_orders | Programa AMM v4 | Grid de ordens limite alvo do lado do pool para postar no OpenBook. |
| Pool | pool_coin_token_account | SPL Token | Vault do lado coin do pool (ATA de amm_authority). |
| Pool | pool_pc_token_account | SPL Token | Vault do lado pc do pool. |
| Pool | lp_mint | SPL Token | Mint de LP fungível. |
| Pool | pool_withdraw_queue | Programa AMM v4 | Fila legada para saques atrasados; mantida com comprimento zero. |
| Pool | pool_temp_lp | Programa AMM v4 | Conta LP auxiliar usada durante Initialize. |
| Mercado (OpenBook) | serum_market | OpenBook | O mercado em si (mints de base/quote, vault signer, etc.). |
| Mercado | serum_bids, serum_asks | OpenBook | As filas de ofertas e pedidos. |
| Mercado | serum_event_queue | OpenBook | Eventos pendentes (preenchimentos, cancelamentos). |
| Mercado | serum_coin_vault, serum_pc_vault | SPL Token | Vaults do nível de mercado do OpenBook. |
| Mercado | serum_vault_signer | OpenBook | PDA de nível de mercado que assina movimentos de serum_*_vault. |
AmmInfo
A conta de estado raiz do pool. Grande (≈ 752 bytes) porque carrega referências de pool e OpenBook inline.
coin_vault,pc_vault— os vaults SPL Token do pool.coinétoken_0por convenção Serum/OpenBook (base),pcétoken_1(quote).coin_decimals,pc_decimals— correspondendo aos mints.open_orders,target_orders,market— devem ser passados para toda instrução de swap/deposit/withdraw.fees.swap_fee_numerator / swap_fee_denominator— a taxa de negociação combinada. Padrão25 / 10_000 = 0.25%.status— bitmask controlando operações. Configurável por admin viaAdminSetStatus.state_data.need_take_pnl_*— delta entre taxas brutas acumuladas e o que foi varrido.TakePnlzera estes.
A fiação OpenBook
Não está mais ativa. Pools AMM v4 não compartilham mais liquidez com OpenBook — a grid de ordens de limite foi desativada. As contas OpenBook descritas nesta seção permanecem no
AmmInfo de cada pool e ainda são validadas pelos endpoints de swap V1 (e por Initialize, Deposit, Withdraw) para compatibilidade com versões anteriores, mas o estado on-book que elas referenciam está vazio na prática. Use os endpoints de swap V2 (SwapBaseInV2 / SwapBaseOutV2) que pulam completamente essas contas e representam o caminho de execução canônico atualmente.amm_open_orders do AMM é uma conta de propriedade do OpenBook contendo o estado de ordem limite do pool neste mercado: ordens ativas, saldos liquidados, referenciadores, etc. amm_target_orders é do lado do AMM: contém a grid pretendida do AMM (preço/tamanho para cada slot de ordem) para que o programa possa comparar barato com o que está atualmente postado e colocar/cancelar o diff.
PDAs de Autoridade
Há exatamente um PDAamm_authority para todo o programa AMM v4. Sua seed é trivial (["amm authority"]) e seu bump é armazenado em cada AmmInfo. Esta autoridade assina todos os movimentos de token para todos os pools AMM v4.
amm_authority acima na verdade cobre ambas neste design de programa; versões diferentes usaram derivações diferentes, então verifique o AmmInfo.nonce do pool específico no código).
Vaults
Os vaults SPL Token do pool são contas de token padrão cujoowner é amm_authority. Não ATAs — seus endereços são PDAs específicas derivadas em Initialize com seeds ["amm_associated_seed", coin_mint_or_pc_mint, market, amm_id]. Endereços são armazenados em AmmInfo; derivação é uma curiosidade única.
Token-2022 não é suportado. O programa codifica o ID do programa SPL Token para todos os movimentos de vault. Tentar vincular um pool AMM v4 a um mint Token-2022 falha em Initialize.
Mint de LP
Um mint SPL Token clássico cuja autoridade éamm_authority. O fornecimento total rastreia a propriedade de LP do pool; queimar LP retorna tokens de ambos os vaults proporcionalmente. Como AMM v4 é anterior a CPMM, não há espelho lp_supply no estado do pool — leia o fornecimento on-chain do mint diretamente.
Bitmask de status
AmmInfo.status controla operações. Bits (a posição pode diferir entre versões de programa — confirme via a fonte):
| Bit | Flag | Efeito |
|---|---|---|
| 0 | SWAP_DISABLED | Swap* rejeita. |
| 1 | DEPOSIT_DISABLED | Deposit rejeita. |
| 2 | WITHDRAW_DISABLED | Withdraw rejeita. |
| 3 | CLMM_LIKE_MIGRATE | Flag de gate de migração usado por ops. |
AdminCancelOrders, AdminSetParams, etc.
Observação / oráculo
AMM v4 não possui conta de observação dedicada. Outros protocolos que precisam de um TWAP on-chain normalmente consomem travessias de livro do OpenBook indiretamente ou leem off-chain. Se você precisa de um TWAP Raydium com suporte de programa, use CPMM ou CLMM.Derivando as contas de um pool do zero
Como AMM v4 não foi projetado para PDAs determinísticas por par (é anterior a essa convenção Solana), oamm_id canônico é um keypair seeded derivado com:
amm_open_orders, amm_target_orders, amm_withdraw_queue, pool_temp_lp, pool_coin_token_account, pool_pc_token_account, e lp_mint. O SDK e API pré-computam estes para você; veja raydium-sdk-v2’s Liquidity.getAssociatedPoolKeys.
Na prática, integradores leem o conjunto de contas completo do pool de GET https://api-v3.raydium.io/pools/info/ids?ids=<POOL_ID> ou do SDK. Derivar manualmente é raramente necessário.
Referência rápida de ciclo de vida
| Evento | Contas criadas | Contas destruídas |
|---|---|---|
Initialize2 | amm_info, amm_open_orders, amm_target_orders, vaults, lp_mint, pool_withdraw_queue, pool_temp_lp | — |
Deposit | — (pode criar ATA de LP do usuário) | — |
Withdraw | — | — |
SwapBaseIn / SwapBaseOut | — (pode criar ATA do usuário) | — |
TakePnl | — | — |
MonitorStep (crank) | — | — |
AmmInfo permanece.
O que ler onde
- Matemática e aritmética de taxas:
products/amm-v4/math. - Divisão de taxa e como se compara com CPMM/CLMM:
products/amm-v4/fees. - Listas de contas de instrução:
products/amm-v4/instructions. - Derivação de conta OpenBook: Documentação do programa OpenBook (
github.com/openbook-dex/program).
- Programa AMM Raydium —
raydium-io/raydium-amm reference/program-addressespara IDs de programa canônicos- Protocolo OpenBook / Serum para as contas de contraparte


