Construindo um Programa com Pinocchio
Um programa Pinocchio combina entrypoint fino, validação rigorosa de contas, dispatch Borsh ou opcode, e helpers CPI - espelhando estrutura native com menos boilerplate.
Busque em todas as páginas da documentação
Um programa Pinocchio combina entrypoint fino, validação rigorosa de contas, dispatch Borsh ou opcode, e helpers CPI - espelhando estrutura native com menos boilerplate.
entrypoint!(process_instruction);
fn process_instruction(id: &Pubkey, accounts: &[AccountInfo], data: &[u8]) -> ProgramResult {
match data.first() { Some(0) => init(id, accounts), _ => Err(ProgramError::InvalidInstructionData) }
}Quando usar isso:
pub fn init(program_id: &Pubkey, accounts: &[AccountInfo]) -> ProgramResult {
let [payer, state, system @ ..] = accounts else { return Err(ProgramError::NotEnoughAccountKeys) };
if !payer.is_signer() { return Err(ProgramError::MissingRequiredSignature); }
// CPI create via pinocchio invoke / system instructions
Ok(())
}O que isso demonstra:
Gere com Codama para clientes @solana/kit 7.0.0.
// Centralize helpers de validação de conta.| Alternativa | Use Quando | Não Use Quando |
|---|---|---|
| Novo projeto Anchor | Velocidade | CU |
| Framework Steel | Mais açúcar | Ligeiramente mais pesado |
| Repos de template | Bootstrap | Manutenção |
Programas separados via CPI.
Configure conforme docs.
Mesmos helpers spl.
Equivalente invoke_signed.
cargo build-sbf.
solana-verify.
solana program deploy.
Mesmo loader que native.
Códigos u32 customizados.
Syscall log mínimo.
Teste de deploy local.
Fixe toolchain.
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