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
{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.