Prerequisites
Before diving into blockchain and Solana development, let's ensure you have the foundational knowledge and tools needed for success. This chapter covers what you should already know and what we'll teach you.
Required Knowledge
Programming Fundamentals
You should be comfortable with:
- Variables and data types: Understanding how to store and manipulate data
- Control flow: if/else statements, loops (for, while)
- Functions: Defining, calling, and understanding parameters/return values
- Data structures: Arrays, objects/dictionaries, understanding when to use each
- Basic algorithms: Searching, sorting concepts (not implementation details)
JavaScript/TypeScript Basics
For client-side development (Chapters 6-9), you need:
If this looks foreign, spend time with JavaScript.info or the TypeScript Handbook first.
Command Line Basics
You should know how to:
What We'll Teach You
Don't worry if you're missing these—the handbook covers them:
Rust Programming
Chapters 11-12 teach Rust from scratch, focusing specifically on what you need for Solana development. You don't need prior Rust experience.
Cryptography Concepts
Chapter 2 explains hashing, public key cryptography, and digital signatures. No math background required—we focus on intuition.
Distributed Systems
We explain concepts like consensus, Byzantine fault tolerance, and network partitions as we encounter them.
Development Environment Setup
Let's set up everything you need.
1. Install Node.js
We recommend Node.js 18 or later:
2. Install Bun
This handbook uses Bun as the package manager for speed:
3. Install Rust
Rust is required for on-chain program development:
4. Install Solana CLI
The Solana command-line tools:
5. Install Anchor (for later chapters)
Anchor is the framework for Solana program development:
6. Set Up Your Editor
We recommend VS Code with these extensions:
- rust-analyzer: Rust language support
- Even Better TOML: For Cargo.toml files
- Solana Playground: Solana development helpers
Creating Your First Solana Keypair
Before interacting with Solana, you need a keypair (your identity on the network):
Important: The keypair file contains your private key. Never share it or commit it to version control. For production, use hardware wallets.
Project Structure Convention
Throughout this handbook, we'll use this structure:
Create this structure:
Verifying Your Setup
Let's verify everything works:
Common Setup Issues
"command not found" Errors
Usually means the tool isn't in your PATH:
Airdrop Failures
Devnet airdrops can fail during high traffic:
WSL-Specific Issues (Windows)
If using Windows Subsystem for Linux:
What's Next
With your environment set up, you're ready to begin learning. We'll start with the foundations—understanding where blockchain came from and the problems it solves.
Next: History of Blockchain
Quick Reference
| Tool | Command | Purpose |
|---|---|---|
| Node.js | node --version | JavaScript runtime |
| Bun | bun --version | Package manager |
| Rust | rustc --version | Systems programming language |
| Cargo | cargo --version | Rust package manager |
| Solana CLI | solana --version | Blockchain interaction |
| Anchor | anchor --version | Program framework |