Esta página foi traduzida automaticamente por IA. A versão em inglês é a fonte oficial.Ver versão em inglês →
Stable AMM é seu próprio programa; sua estrutura de contas no lado do pool se assemelha ao AMM v4 (AmmInfo, vaults, authority), e adicionalmente possui uma conta
ModelDataInfo que armazena a tabela de consulta. Esta página cobre ambas.Inventário
AMM puro. Stable AMM mantém toda a liquidez em seus próprios vaults e não depende do OpenBook. Ele carregava um caminho de market-making do OpenBook no início de sua vida, mas esse caminho ficou inativo por anos, e a atualização de 2026-06-22 removeu o código remanescente. As contas de mercado
serum_* e amm_open_orders abaixo são, portanto, legado: podem ainda aparecer em transações de layout antigo para compatibilidade com versões anteriores, mas o programa não as valida ou lê, e as instruções de novo layout as omitem inteiramente.| Categoria | Conta | Proprietário | Função |
|---|---|---|---|
| Pool | AmmInfo | Programa Stable | Estado do pool, referências aos vaults e à conta de dados do modelo. |
| Pool | amm_authority | Programa Stable | PDA de propriedade do programa que assina movimentos de vault. Compartilhado entre todos os pools Stable AMM. |
| Pool | amm_target_orders | Programa Stable | Conta de grid no lado do pool (retida em layouts; não mais impulsiona ordens do OpenBook). |
| Pool | pool_coin_token_account | SPL Token | Vault no lado da moeda do pool. |
| Pool | pool_pc_token_account | SPL Token | Vault no lado do pc do pool. |
| Pool | lp_mint | SPL Token | Mint de LP fungível. |
| Modelo | model_data_account | Programa Stable | A tabela de consulta: 50.000 × DataElement. |
| Legado | amm_open_orders | OpenBook | A antiga conta OpenOrders do OpenBook do pool. Não utilizada. |
| Legado | serum_market | OpenBook | Mercado OpenBook. Não utilizado. |
| Legado | serum_bids, serum_asks | OpenBook | Filas de bid/ask. Não utilizadas. |
| Legado | serum_event_queue | OpenBook | Fila de eventos. Não utilizada. |
| Legado | serum_coin_vault, serum_pc_vault | SPL Token | Vaults de nível de mercado do OpenBook. Não utilizados. |
| Legado | serum_vault_signer | OpenBook | Assinante de vault de nível de mercado. Não utilizado. |
AmmInfo
Conta de estado raiz. O layout é quase idêntico ao AMM v4 — parâmetros do pool, decimais, taxas, referências de vault/mint — com uma adição: um campo model_data_key apontando para a tabela de consulta.
model_data_key— o endereço da tabela de consulta. Deve ser passado para cada instrução.fees— estrutura idêntica ao AMM v4. Padrão de 0,25% de taxa de negociação, divisão de 0,22% LP / 0,03% protocolo.coin_vault,pc_vault— os vaults dos pools.status— bitmask controlando swap/deposit/withdraw/crank.out_put.need_take_pnl_*— removido porWithdrawPnl.
ModelDataInfo
A tabela de consulta. Um grande array esparso de pontos de preço/quantidade.
InitModelData (criou a conta) e UpdateModelData (preencheu elementos, definindo valid_data_count) — foram removidas na atualização de 2026-06-22. As tabelas em pools existentes agora são fixas. Em tempo de execução, as instruções chamáveis restantes ainda as consomem:
- Swap / deposit / withdraw chamam funções de consulta que fazem busca binária e interpolação dentro de
elements[0..valid_data_count].
DataElement
A entrada atômica na tabela. Deve estar ordenada (x ascendente, y descendente, preço ascendente) para que a busca binária funcione.
Authority e vaults
Igual ao AMM v4:amm_authorityé um único PDA de programa derivado com seed["amm authority"]. Ele possui todos os vaults do pool e assina seus movimentos.- Vaults são contas SPL Token cujo proprietário é
amm_authority, não ATAs.
Bitmask de status
Idêntico ao AMM v4. Controla se swap/deposit/withdraw/crank estão habilitados.Rastreamento de taxa e PnL
A structout_put rastreia:
need_take_pnl_coin,need_take_pnl_pc— taxas de protocolo acumuladas mas ainda não removidas.WithdrawPnlmove essas para fora.swap_coin_in_amount,swap_pc_in_amount, etc. — contadores de análise.
Tamanho da conta
OModelDataInfo é grande (~1,2 MB, já que 50.000 elementos × 24 bytes por elemento). É por isso que criar um pool Stable requer alocação explícita de rent e pré-alocação de conta. O SDK e ferramentas do Raydium lidam com isso de forma transparente; integradores raramente precisam alocar manualmente.
Derivando contas do zero
Como AMM v4, Stable AMM usa chaves com seed (não PDAs puras). A identidade canônica do pool é derivada via:O que ler onde
- Listas de contas de instrução:
products/stable/instructions. - Como a interpolação usa a tabela:
products/stable/math. - Estrutura de taxa e WithdrawPnl:
products/stable/fees. - O desacoplamento do OpenBook de 2026-06-22:
reference/changelog.

