React Native Web3 Gateway for Ethereum & Solana.
Explore the docs »
Report Bug
·
Request Feature
Table of Contents
Rely Wallet is a mobile wallet that allows you to store, send, and receive tokens on any EVM compatible blockchain. Rely also supports Solana. You can use Rely to connect to any dApp on Ethereum or Solana.
- Send and receive tokens on any EVM compatible blockchain and Solana.
- Connect to any dApp on Ethereum or Solana.
- View your transaction history on various blockchains.
- View and manage your NFTs on various blockchains.
Rely is completely open source and free to use. Rely is built with React Native and uses the Moralis Stream API in order to send push notifications to users when they make a transaction or receive any tokens. Rely uses AWS API Gateway, AWS Lambda and AWS DynamoDB to store user data and send push notifications. Only the user's public address and unique device ID are stored in the database. The user's private key is never stored on the server. Our Lambda functions are written in Node.js and the Lambda functions are open source and can be found here.
Rely Wallet is built with the following technologies:
Rely Wallet is completely open source and free to use. You can download the app from the App Store or Google Play. You can also run the app locally by following the steps below.
You will need to install React Native and Node.js requirements in order to run the app locally. Follow the instructions here to install React Native.
- Clone the repo
git clone https://github.com/hsyndeniz/rely-wallet.git
- Install NPM packages
yarn
- Edit the .env file and configure your API keys
const API_KEY = 'ENTER YOUR API'
- cd into the ios folder and run pod install
cd ios pod install
- Run the app
or
yarn ios
yarn android
-
Ethereum
- HD Wallet
- web3 provider for web3 browser
- Transaction History
- ERC20 Token Support
- ERC721 Token Support
- ERC1155 Token Support
-
Solana
- HD Wallet
- Develop a web3 provider for Solana
- Add Solana to the wallet list
- Add Solana to the network list
- Add Solana to the transaction history
-
Security
- Add react-native-dotenv or react-native-config to hide API keys and other sensitive data
- Update redux persist to use secure storage
- Encrypt wallet
- Use AWS API Gateway to secure API keys
- Send signed personal message to API Gateway to register user, retrieve user data, and update user data
-
Web3 Browser for Ethereum
- window.ethereum
- connect
- disconnect
- isConnected
- isUnlocked
- on
- request
- send
- eth_accounts
- eth_chainId
- eth_requestAccounts
- eth_sendTransaction
- eth_sign
- eth_signTypedData
- eth_signTypedData_v3
- eth_signTypedData_v4
- eth_personalSign
- eth_personal_ecRecover
-
Web3 Browser for Solana
- window.solana
- connect
- disconnect
- isConnected
- events
- request
- send
- signatures
-
UI/UX
- Update Colors and other theme variables
- Update Icons
- Update Splash Screen
- Update App Icon
- Update App name, description, and screenshots
- Update Language files
- Update bottom sheet styles and appearance
- Update transaction history styles
- Update transaction history appearance
- Update transaction history animations
- Update transaction history filters
- Update transaction history search
- Update transaction history pagination
- Update transaction history sorting
- Update transaction history grouping
- Update transaction history date range
- Update transaction history details
- Update App Store and Google Play descriptions
- Update App Store and Google Play screenshots
- Update App Store and Google Play privacy policy
- Update App Store and Google Play terms of service
-
Features
- Add support for other blockchains (Klaytn)
- Touch ID
- Login with Touch ID
- Disable login for 15 minutes
- Permissions
- Handle camera permissions
- Home Screen
- Convert to USD
- Fetch all assets of active wallet
-
Performance
- Review and optimize code
- Delete inlined styles
- Delete unused components
- Delete unused images and fonts
- Delete unused dependencies
- Move business logic to utils, services, helpers, and redux actions
- Unsubscribe from onesignal when user deletes wallet or uninstalls app
-
Bug Fixes
See the open issues for a full list of proposed features (and known issues).
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/amazing-feature
) - Commit your Changes (
git commit -m 'Add some amazing-feature'
) - Push to the Branch (
git push origin feature/amazing-feature
) - Open a Pull Request
Distributed under the MIT License. See LICENSE
for more information.
Your Name - @huseyindeniz_ - [email protected]
Project Link: rely.craftlabs.tech
Use this space to list resources you find helpful and would like to give credit to. I've included a few of my favorites to kick things off!