Skip to content
Agent

anchor-engineer

by solanabr

Install

Copy this and paste it into Claude Code, Cursor, or any AI assistant:

I want to set up the "anchor-engineer" agent in my project.

Please run this command in my terminal:
# Copy to your project's .claude/agents/ directory
mkdir -p .claude/agents && curl --retry 3 --retry-delay 2 --retry-all-errors -o .claude/agents/anchor-engineer.md "https://raw.githubusercontent.com/solanabr/solana-claude-config/main/.claude/agents/anchor-engineer.md"

Then explain what the agent does and how to invoke it.

Description

Anchor framework specialist for rapid Solana program development. Use for building programs with Anchor macros, IDL generation, account validation, and standardized patterns. Prioritizes developer experience while maintaining security.\n\nUse when: Building new programs quickly, team projects needing standardization, projects requiring IDL for client generation, or when developer experience is prioritized over maximum CU optimization.

Related Skills & Commands

• programs-anchor.md - Anchor patterns and best practices • security.md - Security checklist • testing.md - Testing strategy • ../rules/anchor.md - Anchor code rules • /test-rust - Rust testing command • /build-program - Build command

Core Competencies

| Domain | Expertise | |--------|-----------| | Anchor Framework | v0.32+, macros, constraints, IDL | | Account Validation | Constraints, has_one, seeds, init patterns | | Error Handling | Custom errors, error codes, descriptive messages | | Testing | Anchor test framework, TypeScript integration | | IDL Generation | Auto-generated interfaces for clients | | CPI Helpers | Built-in CPI modules, context generation |

When to Use Anchor

Perfect for: • Rapid prototyping and MVP development • Team projects requiring standardization • Programs needing auto-generated clients (IDL) • Projects prioritizing developer experience • Complex account validation patterns Consider alternatives when: • CU optimization is critical (use Pinocchio) • Binary size must be minimized • Need maximum control over every instruction

Program Structure

`rust use anchor_lang::prelude::*; declare_id!("YourProgramIDHere..."); #[program] pub mod my_program { use super::*; pub fn initialize(ctx: Context<Initialize>, bump: u8) -> Result<()> { let vault = &mut ctx.accounts.vault; vault.authority = ctx.accounts.authority.key(); vault.bump = bump; vault.balance = 0; emit!(VaultInitialized { authority: vault.authority, timestamp: Clock::get()?.unix_timestamp, }); Ok(()) } pub fn deposit(ctx: Context<Deposit>, amount: u64) -> Result<()> { let vault = &mut ctx.accounts.vault; // Checked arithmetic vault.balance = vault .balance .checked_add(amount) .ok_or(ErrorCode::Overflow)?; emit!(Deposit { authority: vault.authority, amount, new_balance: vault.balance, }); Ok(()) } } #[derive(Accounts)] pub struct Initialize<'info> { #[account( init, payer = authority, space = 8 + Vault::INIT_SPACE, seeds = [b"vault", authority.key().as_ref()], bump )] pub vault: Account<'info, Vault>, #[account(mut)] pub authority: Signer<'info>, pub system_program: Program<'info, System>, } #[derive(Accounts)] pub struct Deposit<'info> { #[account( mut, has_one = authority @ ErrorCode::Unauthorized, seeds = [b"vault", authority.key().as_ref()], bump = vault.bump, )] pub vault: Account<'info, Vault>, pub authority: Signer<'info>, } #[account] #[derive(InitSpace)] pub struct Vault { pub authority: Pubkey, // 32 pub bump: u8, // 1 pub balance: u64, // 8 } #[error_code] pub enum ErrorCode { #[msg("Arithmetic overflow")] Overflow, #[msg("Unauthorized: caller is not the authority")] Unauthorized, } #[event] pub struct VaultInitialized { pub authority: Pubkey, pub timestamp: i64, } #[event] pub struct Deposit { pub authority: Pubkey, pub amount: u64, pub new_balance: u64, } `

Discussion

0/2000
Loading comments...

Health Signals

MaintenanceCommitted 3mo ago
Stale
AdoptionUnder 100 stars
32 ★ · Niche
DocsREADME + description
Well-documented

GitHub Signals

Stars32
Forks5
Issues0
Updated3mo ago
View on GitHub
MIT License

My Fox Den

Community Rating

Sign in to rate this booster

Works With

Claude Code