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

# Integrate Embedded Wallets with the Skale Blockchain in Node

While using the Web3Auth Node SDK, you get a Ethers Signer on successful authentication. This signer can be used with libraries like [ethers.js](https://docs.ethers.io/v5/getting-started/) etc. 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. We have highlighted a few here to get you started.

## Chain details for Skale[​](#chain-details-for-skale "Direct link to Chain details for Skale")

- Europa Hub
- Calypso Hub
- Nebula Gaming Hub
- Titan Hub

- Mainnet
- Testnet

- **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

- **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

- Mainnet
- Testnet

- **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

- **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

- **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

- Mainnet
- Testnet

- **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

- **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[​](#installation "Direct link to Installation")

To interact with the blockchain, you can use either the [viem](https://viem.sh/) or [ethers.js](https://docs.ethers.io/v5/getting-started/) library with Web3Auth.

- ethers.js
- viem

- npm
- Yarn
- pnpm
- Bun

```
npm install --save ethers

```

```
yarn add ethers

```

```
pnpm add ethers

```

```
bun add ethers

```

- npm
- Yarn
- pnpm
- Bun

```
npm install --save viem

```

```
yarn add viem

```

```
pnpm add viem

```

```
bun add viem

```

## Initialize[​](#initialize "Direct link to Initialize")

```
const { Web3Auth } = require('@web3auth/node-sdk')

const web3auth = new Web3Auth({
  clientId: 'YOUR_WEB3AUTH_CLIENT_ID', // Pass your Web3Auth Client ID, ideally using an environment variable
  web3AuthNetwork: 'sapphire_mainnet', // or 'sapphire_devnet'
})

await web3auth.init()

const result = await web3auth.connect({
  authConnectionId: 'YOUR_AUTH_CONNECTION_ID', // Your custom authentication connection name
  idToken: 'USER_ID_TOKEN', // JWT token from your auth system
})

```

## Get account[​](#get-account "Direct link to Get account")

```
// Get user's Ethereum public address
const address = result.signer.getAddress()
console.log('\x1b[33m%s\x1b[0m', 'Accounts:', address)

```

## Get balance[​](#get-balance "Direct link to Get balance")

```
const address = await result.signer.getAddress()
const balance = ethers.formatEther(
  await result.signer.provider.getBalance(address) // Balance is in wei
)
console.log('\x1b[33m%s\x1b[0m', 'Balance:', balance, 'ETH')

```

## Sign a message[​](#sign-a-message "Direct link to Sign a message")

```
const signature = await result.signer.signMessage(message)
console.log('\x1b[33m%s\x1b[0m', 'Signed Message:', signature)

```
