Noções Básicas de Pinocchio
10 exemplos para começar com Pinocchio - 7 básicos e 3 intermediários.
Busque em todas as páginas da documentação
10 exemplos para começar com Pinocchio - 7 básicos e 3 intermediários.
Pinocchio substitui entry do solana-program para overhead mínimo.
[dependencies]
pinocchio = "0.8"#![no_std] on-chain.Pinocchio fornece wiring de entrypoint.
use pinocchio::{account_info::AccountInfo, entrypoint, pubkey::Pubkey, ProgramResult};
entrypoint!(process_instruction);Leia flags de signer e writable.
if !account.is_signer() { return Err(ProgramError::MissingRequiredSignature); }Padrões opcionais de allocator.
#![no_std]
extern crate alloc;Tipos pubkey do Pinocchio alinham com bytes do SDK.
let key = account.key();Padrão ProgramResult inalterado.
return Err(ProgramError::InvalidArgument);Helpers invoke com semântica similar.
pinocchio::program::invoke(&ix, &accounts)?;Dispatch manual ou Borsh.
let (tag, rest) = data.split_at(1);
match tag[0] { 0 => init(rest), 1 => swap(rest), _ => Err(...) }Relacionado: Construindo um Programa com Pinocchio
Evite fmt e logs em hot paths.
// sem msg no loopRelacionado: Ganhos de CU e Tamanho de Binário
LiteSVM 0.6.x executa binários pinocchio.
// deploy .so em fixture de testeRelacionado: LiteSVM
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