Skip to main content

Welcome to Rainbow

Rainbow is a fun, simple, and secure Ethereum wallet that makes managing your crypto and exploring web3 a joyful experience. Built with React Native, Rainbow is available on iOS, Android, and as a browser extension.

Quick Start

Get your development environment ready with Node.js, Ruby, and required tools

Installation

Install dependencies and configure the project for development

iOS Setup

Configure Xcode, CocoaPods, and iOS-specific dependencies

Android Setup

Set up Android Studio, JDK, and Android development tools

What You’ll Build

Rainbow is a production-ready React Native application featuring:
  • Multi-platform Support: iOS, Android, and browser extension
  • Modern Architecture: Custom state management with Zustand, React Navigation, and domain-driven design
  • Blockchain Integration: Full Ethereum wallet functionality using ethers.js and viem
  • Advanced UI: Reanimated animations, Skia graphics, and custom design system
  • TypeScript First: Comprehensive type coverage with strict TypeScript configuration

Key Features

State Management

Custom store creators built on Zustand for client, server, and derived state

React Native 0.79

Latest React Native with React 19 and modern native modules

E2E Testing

Maestro-based end-to-end tests for iOS and Android

Type Safety

99%+ TypeScript coverage with ESLint enforcement

Performance

Optimized with Flash List, Skia rendering, and performance monitoring

Web3 Ready

WalletConnect, ENS, NFTs, and multi-chain support

Development Workflow

Once set up, your typical development workflow will be:
1

Start Metro Bundler

Run yarn start to start the React Native Metro bundler
2

Run on Platform

Launch the app with yarn ios or yarn android, or open in Xcode/Android Studio
3

Make Changes

Edit TypeScript files with hot reload enabled for instant feedback
4

Run Tests

Verify changes with yarn test for unit tests or yarn lint for type checking

Next Steps

Ready to get started? Follow our setup guides:
  1. Prerequisites - Install Node.js, Ruby, and required tools
  2. Installation - Set up the project and dependencies
  3. Platform Setup - Configure iOS and/or Android development
  4. Running the App - Launch Rainbow on your device or simulator
Internal developers can use the rainbow-me/rainbow-setup script to automate the entire setup process.

Get Help

Have questions or need help?

Available Apps

📲 iOS App Store 🤖 Google Play Store 💻 Browser Extension: Chrome | Firefox | Brave | Edge

Build docs developers (and LLMs) love