Noções Básicas de Programas Anchor
Estrutura de programas Anchor e manipuladores de instrução. Os resultados aparecem na mesma fence: comentários // na mesma linha quando curtos, blocos // de várias linhas abaixo da amostra quando não.
Busque em todas as páginas da documentação
Estrutura de programas Anchor e manipuladores de instrução. Os resultados aparecem na mesma fence: comentários // na mesma linha quando curtos, blocos // de várias linhas abaixo da amostra quando não.
Constante de ID do programa a partir do keypair.
// declare_id!("Fg6PaFpoGXkYsidMpWTK6W2BeZ7FEfcYkg476zPFsLnS");Módulo de manipuladores de instrução.
// #[program]
// pub mod my_program {
// pub fn initialize(ctx: Context<Initialize>) -> Result<()> { Ok(()) }
// }O manipulador recebe Context<T> com contas validadas.
// pub fn ix(ctx: Context<MyIx>, amount: u64) -> Result<()> { ... }#[derive(Accounts)] constrói validadores.
// #[derive(Accounts)]
// pub struct Initialize<'info> { ... }Alias Result do Anchor sobre ProgramResult com conversão de erro.
// Ok(()) // sucessoA constraint init cria a conta.
// #[account(init, payer = user, space = 8 + 32)]Constraints Signer e mut.
// #[account(mut)]
// pub user: Signer<'info>Tipo de conta de programa para o programa do sistema.
// pub system_program: Program<'info, System>Argumentos do manipulador após Context são dados da instrução.
// pub fn set(ctx: Context<Set>, value: u64) -> Result<()>Escreve através de wrappers de dados da conta.
// ctx.accounts.state.value = value;Os nomes da IDL seguem o módulo/manipuladores.
// anchor build gera IDL/tiposRecurso cpi opcional para helpers de CPI.
// Padrões "cpi = ["no-entrypoint"]" em Cargo.tomlRecurso no-entrypoint para uso como crate CPI.
// [features] no-entrypoint = []Discriminador de 8 bytes + espaço para campos.
// space = 8 + std::mem::size_of::<MyState>()Anchor verifica o proprietário da conta em relação ao programa esperado.
// #[account(has_one = authority)]Versões da Stack: Esta página foi escrita para Agave 4.1.1, Solana CLI 3.0.10, Anchor 0.32.1, Rust 1.91.1 e @solana/kit 7.0.0.
Revisado por Chris St. John·Última atualização: 18 de jul. de 2026