> For the complete documentation index, see [llms.txt](/llms.txt).

# Integrate Embedded Wallets with the Skale Blockchain in React Native

While using the Embedded Wallets React Native SDK, you get a [EIP1193](https://eips.ethereum.org/EIPS/eip-1193) provider, similar to the [MetaMask Provider](/metamask-connect/evm/reference/provider-api/). Use it with libraries such as [viem](https://viem.sh) or [ethers](https://docs.ethers.org/v6/) to make [Skale](https://ethereum.org/) blockchain calls like getting the user's `account`, fetching `balance`, `sign transaction`, `send transaction`, `read` from and `write` to the smart contract, etc.

## Chain details for Skale

**Europa Hub**

**Calypso Hub**

- **Chain ID:** 0x79f99296
- **Public RPC URL:** `https://mainnet.skalenodes.com/v1/elated-tan-skat`
- **Display Name:** SKALE Europa Hub Mainnet
- **Block Explorer Link:** `https://elated-tan-skat.explorer.mainnet.skalenodes.com`
- **Ticker:** sFUEL
- **Ticker Name:** SKALE Fuel

**Nebula Gaming Hub**

- **Chain ID:** 0x561bf78b
- **Public RPC URL:** `https://testnet.skalenodes.com/v1/juicy-low-small-testnet`
- **Display Name:** SKALE Europa Hub Testnet
- **Block Explorer Link:** `https://juicy-low-small-testnet.explorer.testnet.skalenodes.com`
- **Ticker:** sFUEL
- **Ticker Name:** SKALE Fuel

**Titan Hub**

**Mainnet**

- **Chain ID:** 0x5d456c62
- **Public RPC URL:** `https://mainnet.skalenodes.com/v1/honorable-steel-rasalhague`
- **Display Name:** SKALE Calypso Hub Mainnet
- **Block Explorer Link:** `https://honorable-steel-rasalhague.explorer.mainnet.skalenodes.com`
- **Ticker:** sFUEL
- **Ticker Name:** SKALE Fuel

**Testnet**

- **Chain ID:** 0x3a14269b
- **Public RPC URL:** `https://testnet.skalenodes.com/v1/giant-half-dual-testnet`
- **Display Name:** SKALE Calypso Hub Testnet
- **Block Explorer Link:** `https://giant-half-dual-testnet.explorer.testnet.skalenodes.com`
- **Ticker:** sFUEL
- **Ticker Name:** SKALE Fuel

**Mainnet**

**Testnet**

- **Chain ID:** 0x585eb4b1
- **Public RPC URL:** `https://mainnet.skalenodes.com/v1/green-giddy-denebola`
- **Display Name:** SKALE Nebula Gaming Hub Mainnet
- **Block Explorer Link:** `https://green-giddy-denebola.explorer.mainnet.skalenodes.com`
- **Ticker:** sFUEL
- **Ticker Name:** SKALE Fuel

**Mainnet**

- **Chain ID:** 0x0235ddd0
- **Public RPC URL:** `https://testnet.skalenodes.com/v1/lanky-ill-funny-testnet`
- **Display Name:** SKALE Nebula Gaming Hub Testnet
- **Block Explorer Link:** `https://lanky-ill-funny-testnet.explorer.testnet.skalenodes.com`
- **Ticker:** sFUEL
- **Ticker Name:** SKALE Fuel

**Testnet**

**Mainnet**

- **Chain ID:** 0x507aaa2a
- **Public RPC URL:** `https://mainnet.skalenodes.com/v1/parallel-stormy-spica`
- **Display Name:** SKALE Titan Hub Mainnet
- **Block Explorer Link:** `https://parallel-stormy-spica.explorer.mainnet.skalenodes.com`
- **Ticker:** sFUEL
- **Ticker Name:** SKALE Fuel

**Testnet**

- **Chain ID:** 0x0233382c
- **Public RPC URL:** `https://testnet.skalenodes.com/v1/aware-fake-trim-testnet`
- **Display Name:** SKALE Titan Hub Testnet
- **Block Explorer Link:** `https://aware-fake-trim-testnet.explorer.testnet.skalenodes.com`
- **Ticker:** sFUEL
- **Ticker Name:** SKALE Fuel

## Installation

Use any [EIP-1193](https://eips.ethereum.org/EIPS/eip-1193) compatible library with the provider from the SDK. These examples use [viem](https://viem.sh):

**npm**

```bash
npm install viem

```

**Yarn**

```bash
yarn add viem

```

**pnpm**

```bash
pnpm add viem

```

**Bun**

```bash
bun add viem

```

To use Wagmi hooks instead, see [Ethereum hooks (Wagmi)](/embedded-wallets/sdk/react-native/ethereum-hooks/).

## Initialize

Set up the SDK as described in [Get started](/embedded-wallets/sdk/react-native/), with the chain configured on the dashboard or in `web3AuthOptions.chains`. After sign-in, read the EIP-1193 provider from `useWeb3Auth().connection` and create viem clients:

```tsx
import { useWeb3Auth } from '@web3auth/react-native-sdk'
import { createPublicClient, createWalletClient, custom } from 'viem'

const { connection } = useWeb3Auth()

// Call after the user signs in (isConnected is true)
const transport = custom(connection!.ethereumProvider!)
const walletClient = createWalletClient({ transport })
const publicClient = createPublicClient({ transport })

```

## Get account

```tsx
const [address] = await walletClient.getAddresses()

```

## Get balance

```tsx
import { formatEther } from 'viem'

const [address] = await walletClient.getAddresses()
const balance = formatEther(await publicClient.getBalance({ address }))

```

## Send transaction

```tsx
import { parseEther } from 'viem'

const [account] = await walletClient.getAddresses()

const hash = await walletClient.sendTransaction({
  account,
  to: '0x40e1c367Eca34250cAF1bc8330E9EddfD403fC56',
  value: parseEther('0.001'),
  chain: null, // use the provider's active chain
})

const receipt = await publicClient.waitForTransactionReceipt({ hash })

```

## Sign a message

```tsx
const [account] = await walletClient.getAddresses()

const signature = await walletClient.signMessage({
  account,
  message: 'YOUR_MESSAGE',
})

```
