The System & Token Programs
Inclua Program<'info, System>, Program<'info, Token> e contas de programa relacionadas em toda instrução que faz CPI para eles. O Anchor fixa IDs para impedir substituição de programa.
Busque em todas as páginas da documentação
Inclua Program<'info, System>, Program<'info, Token> e contas de programa relacionadas em toda instrução que faz CPI para eles. O Anchor fixa IDs para impedir substituição de programa.
pub system_program: Program<'info, System>,
pub token_program: Program<'info, Token>,
pub associated_token_program: Program<'info, AssociatedToken>,Quando usar: Instruções criam contas, transferem SOL ou movem tokens SPL.
#[derive(Accounts)]
pub struct CreateAta<'info> {
#[account(mut)]
pub payer: Signer<'info>,
pub mint: Account<'info, Mint>,
#[account(
init,
payer = payer,
associated_token::mint = mint,
associated_token::authority = owner,
)]
pub ata: Account<'info, TokenAccount>,
pub owner: SystemAccount<'info>,
pub system_program: Program<'info, System>,
pub token_program: Program<'info, Token>,
pub associated_token_program: Program<'info, AssociatedToken>,
}O que isso demonstra:
| Programa | Tipo Anchor |
|---|---|
| System | Program<'info, System> |
| SPL Token | Program<'info, Token> |
| Associated Token | Program<'info, AssociatedToken> |
| Token-2022 | Interface<'info, TokenInterface> |
Importe de anchor_lang::system_program e anchor_spl::token.
| Alternativa | Use quando | Não use quando |
|---|---|---|
| CpiContext com conta de programa | Mesmo requisito | AccountInfo de programa não verificado |
| invoke nativo com IDs fixos | Sem Anchor | Segurança de Program<T> do Anchor |
0.32.1 em toda esta seção.
Não. Use constraints de seeds e assinatura em CPI.
No campo da struct de conta, definido na inicialização.
Use @solana/kit 7.0.0 com os mesmos bytes de seed.
O endereço declare_id do seu programa Anchor.
Não no array de seeds; bump é parâmetro separado em find_program_address.
Compare chaves logadas; verifique seeds e program id no client-side.
Sim quando mantêm dados; financie com payer no init.
Sim, com as mesmas signer seeds em cada CPI.
Veja os links em Relacionados para tópicos mais profundos sobre system e token.
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