This project is a React Native application for managing cryptocurrency transactions and balances. It utilizes the Expo framework, the Alchemy API for blockchain interaction, and is built with a focus on Ethereum and Solana cryptocurrencies.
Testnet-Only Application: This application is specifically designed for interaction with the Sepolia testnet for Ethereum and the Solana Devnet. It is crucial that you do not use real wallets or wallets containing actual cryptocurrencies with this application. Use this app strictly with wallet addresses generated within this application or with other testnet wallets that do not hold any real value.
The testnet environments allow developers and users to experiment with blockchain features without any financial risk. Testnet tokens do not have real-world value but mimic the behavior of actual tokens to allow comprehensive testing and interaction:
-
Ethereum (Sepolia Testnet): You can obtain Sepolia testnet ETH from the Sepolia Faucet, which provides free testnet tokens.
-
Solana (Devnet): For testing on the Solana blockchain, use the Solana Devnet Faucet to receive free SOL tokens for the Devnet.
Network Configuration Assurance:It is crucial to understand that as long as the .env
variables are correctly set to point to these testnet environments, the application cannot connect to the mainnet. Ensuring there is no risk of accidental transactions involving real cryptocurrencies. Please be diligent in using only testnet addresses while interacting with this application.
Note: The security architecture for this project is currently in a developmental phase and has not yet been fully implemented. It is intended solely for development and testing purposes, with plans to enhance security features in future updates.
- Create wallet
- View seed phrase
- Confirm seed phrase
- Import wallet
- Switch accounts
- View all asset net worth
- View Ethereum balance
- View Solana balance
- Send Ethereum
- List transactions on Ethereum
- Send Solana
- List transactions transactions on Solana
- UI improvements - loaders, animation, etc
- Android ui bugs
- Refactor repeating styled components and some logic
- Improve security and management of private keys (this wallet will never be production but it'd be fun to add)
Before you begin, ensure you have the following installed:
- Node.js (v14.x or later)
- Yarn (v1.22.x or later)
- Expo CLI (
npm install -g expo-cli
)
To get the project up and running on your local machine, follow these steps:
- Clone the repository:
git clone https://github.com/vinnyhoward/react-native-crypto-wallet.git
cd react-native-crypto-wallet
- Install dependencies:
yarn install
- Set up environment variables. Rename .env.example to .env and update the following keys with appropriate values:
EXPO_PUBLIC_ALCHEMY_ETH_KEY=YOUR_ALCHEMY_KEY
EXPO_PUBLIC_ALCHEMY_ETH_URL=https://eth-sepolia.g.alchemy.com/v2/
EXPO_PUBLIC_ALCHEMY_SOCKET_URL=wss://eth-sepolia.g.alchemy.com/v2/
EXPO_PUBLIC_ALCHEMY_SOL_URL=https://solana-devnet.g.alchemy.com/v2/
EXPO_PUBLIC_ALCHEMY_SOL_API_KEY=YOUR_ALCHEMY_KEY
EXPO_PUBLIC_ENVIRONMENT=development
EXPO_PUBLIC_PASSWORD=
EXPO_PUBLIC_SALT=
- Start the development server:
expo start
EXPO_PUBLIC_ALCHEMY_ETH_KEY
: Your Alchemy API key for accessing Ethereum blockchain data.
EXPO_PUBLIC_ALCHEMY_ETH_URL
: The base URL for Alchemy API requests.
EXPO_PUBLIC_ALCHEMY_SOCKET_URL
: The WebSocket URL for real-time updates from Alchemy.
EXPO_PUBLIC_ENVIRONMENT
: Environment setting, e.g., development or production.