React Native components and hooks for fast building dApps without running own backend
This project is using:
- create-react-native-dapp to bootstrap the project.
- WalletConnect v1 react-native integration for authenthication (we use a slightly modiefied version, located in
./src/WalletConnect
to allow to modify theenable
function of Moralis). - react-moralis for react hooks
There are many components in this boilerplate that do not require an active web3 provider, they use Moralis Web3 API. Moralis supports the most popular blockchains and their test networks. You can find a list of all available networks in Moralis Supported Chains
Please check the official documentation of Moralis for all the functionalities of Moralis.
Check the corresponding docs for additional information and help.
App Home | WalletConnect Authentication |
---|---|
If this boilerplate helps you build Ethereum mobile dapps faster - please star this project, every star makes us very happy!
If you need help with setting up the boilerplate or have other questions - don't hesitate to write in our community forum and we will check asap. Forum link. The best thing about this boilerplate is the super active community ready to help at any time! We help each other.
📄 Clone or fork ethereum-react-native-boilerplate
:
git clone https://github.com/ethereum-boilerplate/ethereum-react-native-boilerplate.git
💿 Install the expo CLI globally:
npm i -g expo-cli
✏ Rename .env.example
to .env
in the main folder and provide your appId
and serverUrl
from Moralis (How to start Moralis Server)
Example:
REACT_APP_MORALIS_APPLICATION_ID = xxxxxxxxxxxx
REACT_APP_MORALIS_SERVER_URL = https://xxxxxx.grandmoralis.com:2053/server
💿 Install all dependencies:
cd ethereum-react-native-boilerplate
yarn install
🚴♂️ Run your App:
- Web:
yarn web
- IOS:
yarn ios
- Android:
yarn android
ethereum-react-native-boilerplate
- ⭐️
Star us
- 🤝
Need help?
- 🚀 Quick Start
- 🧭 Table of contents
- 🏗 Ethereum Components
- 🧰 Ethereum Hooks
🛠 The ready for use react-native-components are located in frontend/Components
. They are designed to be used anywhere in your dApp.
📒 <CryptoAuth />
: Easy web3 authentication via WalletConnect.
Options:
- chain: chain to fetch data from.
📨 <ERC20Balance />
: Displays all ERC20 Balances with Price.
Options:
- chain: chain to fetch data from.
💰 <Assets />
: Screen to display all Chain ERC20 and NAtive Assets with Prices
💰 <RecentTransactions />
: Screen to display all Chain ERC20 Transactions
<TransactionDetails />
: Modal to display all ERC20 Transaction related content
Displays The user address that is copyable
💰 Gets all token balances of a current user or specified address.
Options:
chain
(optional): The blockchain to get data from. Valid values are listed on the intro page in the Transactions and Balances section. Default value: current chain.address
(optional): A user address (i.e. 0x1a2b3x...). If specified, the user attached to the query is ignored and the address will be used instead.to_block
(optional): The block number on which the balances should be checked
Returns (Object) : number of tokens and the array of token objects
const { fetchERC20Balance, assets } = useERC20Balance({ chain: "eth" });
🧾 Gets ERC20 token transfers of a current user or specified address.
Options:
chain
(optional): The blockchain to get data from. Valid values are listed on the intro page in the Transactions and Balances section. Default value: current chain.address
(optional): A user address (i.e. 0x1a2b3x...). If specified, the user attached to the query is ignored and the address will be used instead.from_date
(optional): The date from where to get the transactions (any format that is accepted by momentjs). Provide the param 'from_block' or 'from_date' If 'from_date' and 'from_block' are provided, 'from_block' will be used.to_date
(optional): Get the transactions to this date (any format that is accepted by momentjs). Provide the param 'to_block' or 'to_date' If 'to_date' and 'to_block' are provided, 'to_block' will be used.from_block
(optional): The minimum block number from where to get the transactions Provide the param 'from_block' or 'from_date' If 'from_date' and 'from_block' are provided, 'from_block' will be used.to_block
(optional): The maximum block number from where to get the transactions. Provide the param 'to_block' or 'to_date' If 'to_date' and 'to_block' are provided, 'to_block' will be used.offset
(optional): Offset.limit
(optional): Limit.
Returns (Array) : ERC20 token transfers
🧾 Gets the transactions from the current user or specified address. Returns an object with the number of transactions and the array of native transactions
Options:
chain
(optional): The blockchain to get data from. Valid values are listed on the intro page in the Transactions and Balances section. Default value: current chain.address
(optional): A user address (i.e. 0x1a2b3x...). If specified, the user attached to the query is ignored and the address will be used instead.from_date
(optional): The date from where to get the transactions (any format that is accepted by momentjs). Provide the param 'from_block' or 'from_date' If 'from_date' and 'from_block' are provided, 'from_block' will be used.to_date
(optional): Get the transactions to this date (any format that is accepted by momentjs). Provide the param 'to_block' or 'to_date' If 'to_date' and 'to_block' are provided, 'to_block' will be used.from_block
(optional): The minimum block number from where to get the transactions Provide the param 'from_block' or 'from_date' If 'from_date' and 'from_block' are provided, 'from_block' will be used.to_block
(optional): The maximum block number from where to get the transactions. Provide the param 'to_block' or 'to_date' If 'to_date' and 'to_block' are provided, 'to_block' will be used.offset
(optional): Offset.limit
(optional): Limit.
Returns (Array) : native transactions