This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
This is an Expo React Native starter template for building Web3/blockchain applications using the thirdweb SDK. The app demonstrates wallet connections and cryptocurrency transfers on the Monad blockchain.
# Install dependencies
yarn install
# Start development server
yarn start
# Run on iOS (requires prebuild)
npx expo prebuild
yarn ios
# Run on Android (requires prebuild)
npx expo prebuild
yarn android
# Run tests
yarn test
# Lint code
yarn lint
# Reset project to minimal starter
yarn reset-project- Environment Variables: Copy
.env.exampleto.envand add your thirdweb client ID - Native Modules: This app requires native builds - cannot run on Expo GO
- Xcode 16: Update OpenSSL version to
3.3.2000inapp.jsonunderios.extraPods
The app uses Expo Router (file-based routing) with a single main screen:
/app/(tabs)/index.tsx- Main transfer screen with wallet connection and MON token transfers
-
ThirdwebProvider Configuration (
/app/_layout.tsx):- Wraps the entire app with ThirdwebProvider
- Validates required environment variables before initialization
- Handles client configuration loading
-
Thirdweb Client Configuration (
/constants/thirdweb.ts):- Creates and manages thirdweb client instance
- Configures Monad testnet chain
- Handles environment variable validation for client ID
-
Wallet Connections:
- In-app wallet with email authentication
- Wallet balance display
- Account management with disconnect functionality
/components/- Reusable UI components following themed pattern (ThemedButton, ThemedText, etc.)- Components use the color scheme hook for automatic light/dark mode support
- All themed components accept standard React Native props plus theme variations
- Jest with
jest-expopreset - Test files should be placed alongside components with
.test.tsxextension - Run specific tests:
yarn test -- --testPathPattern=<pattern>
- Blockchain Interactions: Always use the thirdweb SDK hooks and components
- Styling: Use themed components and constants from
/constants/Colors.ts - Navigation: Add new screens under
/app/following Expo Router conventions - Environment: Never commit
.envfile - use.env.exampleas reference