Generating Solana Projects
Goal: Create production-ready Solana blockchain projects with Anchor framework and Next.js frontend.
Workflow
- •Gather requirements: Ask user for project name, program functionality, required instructions, and frontend features
- •Generate project structure: Create complete directory tree following Anchor conventions
- •Create Rust smart contract: Generate lib.rs, state.rs, errors.rs, and instruction handlers in
programs/ - •Create configuration files: Generate Anchor.toml, Cargo.toml, package.json, tsconfig.json with version 0.32.1
- •Create tests: Generate TypeScript test file with Anchor testing framework setup
- •Create Next.js frontend: Generate wallet provider setup, Anchor client, and UI components in
app/ - •Provide setup instructions: Tell user to run
anchor keys list, update program IDs, build, deploy, and test
Critical versions
Always use these exact versions for compatibility:
- •Anchor: 0.32.1
- •anchor-lang (Rust): 0.32.1
- •@coral-xyz/anchor (JS): ^0.32.1
- •@solana/web3.js: ^1.87.6
- •Next.js: 14.0.4
Project structure template
code
{project-name}/
├── Anchor.toml
├── Cargo.toml (workspace)
├── package.json
├── programs/{program-name}/
│ ├── Cargo.toml
│ └── src/
│ ├── lib.rs
│ ├── state.rs
│ ├── errors.rs
│ └── instructions/
├── tests/{program-name}.ts
└── app/ (Next.js)
├── package.json
└── src/
├── pages/_app.tsx
├── components/
└── utils/anchorSetup.ts
Important reminders
After generation, user must:
- •Generate program ID:
anchor keys list - •Update program ID in three locations: Anchor.toml, lib.rs (declare_id!), anchorSetup.ts
- •Build before deploying:
anchor buildgenerates IDL and types needed by frontend
For detailed templates, code snippets, and examples, see reference.md and examples.md.