Documentation Index
Fetch the complete documentation index at: https://mintlify.com/0xchriswilder/journey/llms.txt
Use this file to discover all available pages before exploring further.
Overview
This guide provides comprehensive instructions for installing and configuring the FHEVM Developer Bootcamp on your local machine. Follow these steps to set up your complete development environment.Looking for a quick setup? Check out the Quick Start guide for a streamlined installation process.
System Requirements
Before installing the bootcamp, ensure your system meets these requirements:Hardware Requirements
- RAM: Minimum 4GB, recommended 8GB+
- Storage: At least 1GB free disk space
- CPU: Any modern processor (2+ cores recommended)
- Network: Stable internet connection for package installation
Operating System Support
- macOS
- Linux
- Windows
- macOS 10.15 (Catalina) or later
- Both Intel and Apple Silicon (M1/M2/M3) supported
- Xcode Command Line Tools (installed automatically with Homebrew)
Prerequisites
1. Node.js and npm
The bootcamp requires Node.js 18.x or higher.Install Node.js (if needed)
- Using nvm (Recommended)
- macOS (Homebrew)
- Ubuntu/Debian
- Windows
Install Node Version Manager for easy version switching:
2. Git Version Control
Git is required to clone the bootcamp repository.3. Code Editor (Recommended)
While any text editor works, we recommend Visual Studio Code with these extensions:- ES7+ React/Redux/React-Native snippets - Code snippets
- Tailwind CSS IntelliSense - Tailwind autocomplete
- ESLint - Code quality
- Prettier - Code formatting
- Solidity (if you plan to modify smart contracts) - Solidity syntax
Installation Steps
Step 1: Clone the Repository
Clone the bootcamp repository to your local machine:Replace
your-org/fhevm-bootcamp with the actual repository URL. If you’re running this for your own community, consider forking the repository first.Step 2: Install Dependencies
Install all required npm packages:- 82 direct dependencies including React, TypeScript, Vite, wagmi, fhevmjs, and more
- All transitive dependencies (approximately 350MB total)
Installation takes too long?
Installation takes too long?
If Using bun (fastest):Note: The project includes a
npm install is slow, you can try alternative package managers:Using pnpm (faster):bun.lockb file, so Bun is fully supported.Step 3: Environment Configuration
Configure environment variables for the bootcamp:Understanding Environment Variables
VITE_RPC_URL
VITE_RPC_URL
Purpose: RPC endpoint for blockchain connectionOptions:
https://devnet.zama.ai- Zama’s development network (default)https://rpc.sepolia.org- Ethereum Sepolia testnet- Custom RPC endpoint for your network
VITE_USE_MOCKS
VITE_USE_MOCKS
Purpose: Toggle between mock and real FHE clientValues:
true- Use mock FHE client (recommended for tutorials)false- Use real fhevmjs library (requires proper network setup)
VITE_CONTRACT_ADDRESS
VITE_CONTRACT_ADDRESS
Purpose: Deployed smart contract addressLeave as
0x0000... for tutorial mode. Update with actual deployed contract address when ready for live interactions.Step 4: Verify Installation
Test that everything is set up correctly:Post-Installation Configuration
TypeScript Configuration
The bootcamp uses TypeScript with these configurations:- tsconfig.json (Root)
- tsconfig.app.json
- tsconfig.node.json
Vite Configuration Details
Thevite.config.ts includes important configurations:
vite.config.ts
Why Node.js polyfills? The fhevmjs library and blockchain tools like ethers.js were designed for Node.js. The polyfills allow these libraries to work in the browser.
Tailwind CSS Configuration
The bootcamp uses Tailwind CSS with custom theme extensions:tailwind.config.ts
Development Workflow
Available Scripts
Project Structure
Understanding the codebase organization:Troubleshooting
Common Installation Issues
npm install fails with EACCES permission error
npm install fails with EACCES permission error
Problem: Permission denied when installing global packagesSolution: Fix npm permissions or use a Node version manager:
Module not found: Can't resolve '@/...'
Module not found: Can't resolve '@/...'
Problem: TypeScript path aliases not workingSolution: Ensure Then restart your development server and IDE.
tsconfig.json has the correct path configuration:Vite build fails with 'Buffer is not defined'
Vite build fails with 'Buffer is not defined'
Problem: Node.js polyfills not loadedSolution: Verify Check
vite-plugin-node-polyfills is installed and configured:vite.config.ts includes the plugin with correct options (see configuration above).Port 8080 already in use
Port 8080 already in use
Problem: Another service is using port 8080Solution: Kill the process or use a different port:
React hooks error or duplicate React
React hooks error or duplicate React
Problem: Multiple React versions in node_modulesSolution: Clear dependencies and reinstall:If using npm workspaces or linking packages, ensure React is de-duplicated:
Tailwind styles not applying
Tailwind styles not applying
Problem: Tailwind CSS not processing stylesSolution:
- Verify
tailwind.config.tshas correct content paths - Ensure
@tailwinddirectives are insrc/index.css: - Restart the dev server (Ctrl+C, then
npm run dev)
Type errors with fhevmjs or ethers
Type errors with fhevmjs or ethers
Problem: TypeScript can’t find type definitionsSolution: Install missing type definitions:If errors persist, add to
tsconfig.json:Platform-Specific Issues
- Windows
- macOS
- Linux
Issue: Line ending problemsIssue: Long path errorsRecommendation: Use WSL 2 for best compatibility
Updating the Bootcamp
To update to the latest version:Production Deployment
When ready to deploy your bootcamp:Build for Production
dist/ directory.
Deploy to Static Hosting
The bootcamp works with any static hosting service:- Netlify
- Vercel
- GitHub Pages
public/_redirects file handles SPA routing automatically.Next Steps
Start Learning
Begin Week 1 and start your FHEVM journey
Curriculum Overview
Explore the complete 4-week learning path
Instructor Guide
Learn how to run this bootcamp for your community
Contributing
Help improve the bootcamp for future learners
Getting Help
If you encounter issues not covered in this guide:- Check the Console: Browser DevTools (F12) often show helpful error messages
- Search Issues: Check the GitHub Issues for similar problems
- Community Support: Join the Zama Discord or community forums
- Report Bugs: Open a new issue with reproduction steps and system details