> For the complete documentation index, see [llms.txt](https://pools-chain.gitbook.io/documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://pools-chain.gitbook.io/documentation/built-for-developers/pools-sdk/supported-platforms/javascript/react-native.md).

# React Native

You can import Pools SDK into your React Native dapp to enable your users to easily connect to the Pools Wallet

### Install the SDK[​](https://docs.metamask.io/wallet/how-to/connect/set-up-sdk/javascript/react-native/#install-the-sdk) <a href="#install-the-sdk" id="install-the-sdk"></a>

Use `rn-nodeify` to install the SDK. In your project directory, install `rn-nodeify`:

```
yarn add --dev rn-nodeify
```

or

```
npm i --dev rn-nodeify
```

Install the `rn-nodeify` libraries:

```
yarn add react-native-crypto
yarn add react-native-randombytes
yarn add crypto
yarn add process
yarn add stream
yarn add events
```

In your project's `package.json` file, insert the `rn-nodeify` command into the postinstall script:

package.json

```
"scripts": {
  ...,
  "postinstall": "rn-nodeify --install 'crypto,process,stream,events' --hack"
}
```

`rn-nodeify` creates a `shim.js` file in your project root directory. Import it in the root file of your application:

```
import './shim'
```

Install `react-native-background-timer`:

```
yarn add react-native-background-timer

cd ios && pod install && cd ..
```

Install Pools SDK:

```
yarn add @pools/sdk
```

Run the postinstall script after everything is installed:

```
yarn postinstall
```

Finally, install the necessary pods that come with the libraries:

```
cd ios && pod install && cd ..
```

### Use the SDK[​](https://docs.metamask.io/wallet/how-to/connect/set-up-sdk/javascript/react-native/#use-the-sdk) <a href="#use-the-sdk" id="use-the-sdk"></a>

Import, instantiate, and use the SDK by adding something similar to the following to your project script:

```
import PoolsSDK from '@pools/sdk';
import { Linking } from 'react-native';
import BackgroundTimer from 'react-native-background-timer';

const PSDK = new PoolsSDK({
  openDeeplink: (link) => {
    Linking.openURL(link); // Use React Native Linking method or another way of opening deeplinks.
  },
  timer: BackgroundTimer, // To keep the dapp alive once it goes to background.
  dappMetadata: {
    name: 'My dapp', // The name of your dapp.
    url: 'https://mydapp.com', // The URL of your website.
  },
});

const ethereum = PSDK.getProvider();

const accounts = await ethereum.request({ method: 'eth_requestAccounts' });
```

You can configure the SDK using any options and call any provider API methods. Always call `eth_requestAccounts` using `ethereum.request(args)` first, since it prompts the installation or connection popup to appear.

You can use EthersJS with your React Native app:

```
const provider = new ethers.providers.Web3Provider(ethereum);

// Get the balance of an account (by address or ENS name, if supported by network).
const balance = await provider.getBalance(ethereum.selectedAddress);

// Often you need to format the output to something more user-friendly,
// such as in ether (instead of wei).
const balanceInETH = ethers.utils.formatEther(balance);
// '0.182826475815887608'
```

[Edit this page](https://github.com/MetaMask/metamask-docs/edit/main/wallet/how-to/connect/set-up-sdk/javascript/react-native.md)<br>
