Setup Guide
Development Setup
Get your development environment ready to contribute to LaserEyes. Follow this guide to set up your workspace and start building.
Prerequisites
Required Tools
- Node.jsVersion 18 or higher
 - pnpmPackage manager
 - GitVersion control
 - VS CodeRecommended editor
 
Knowledge Prerequisites
- TypeScriptCore language
 - ReactFor components
 - BitcoinBasic concepts
 - TestingJest & RTL
 
Repository Setup
Fork & Clone
# Clone your fork
git clone https://github.com/YOUR_USERNAME/lasereyes.git
# Navigate to the project
cd lasereyes
# Add upstream remote
git remote add upstream https://github.com/omnisat/lasereyes.gitInstall Dependencies
pnpm installThis will install all dependencies for the monorepo packages.
Project Structure
Monorepo Layout
lasereyes/
├── packages/
│   ├── core/                 # Core functionality
│   ├── react/                # React integration
│   ├── datasources/          # DataSource implementations
│   │   ├── maestro/          # Maestro DataSource
│   │   ├── sandshrew/        # Sandshrew DataSource
│   │   └── mempool-space/    # Mempool.space DataSource
│   └── utils/                # Shared utilities
├── examples/                 # Example applications
├── docs/                     # Documentation
├── scripts/                  # Build scripts
├── tests/                    # Test suites
└── package.json             # Root package.jsonDevelopment Workflow
Build & Watch
# Build all packages
pnpm build
# Watch mode
pnpm devTesting
# Run all tests
pnpm test
# Test specific package
pnpm test --filter=@omnisat/lasereyes-core
# Watch mode
pnpm test:watchTesting Environment
API Keys Setup
# .env.local
MAESTRO_API_KEY=test_key_123
SANDSHREW_API_KEY=test_key_456Never commit API keys to the repository
Test Networks
- • Bitcoin Testnet for integration testing
 - • Regtest for local development
 - • Mock DataSources for unit testing
 
Get testnet coins from:
Troubleshooting
Common Issues
- Clean and rebuild:
pnpm clean && pnpm install && pnpm build - Check dependencies:
pnpm why package-name - Node.js version: Use version in 
.nvmrc 
Need more help? Join our Discord or open a GitHub discussion