Integrate Embedded Wallets with the Skale Blockchain in Node
While using the Embedded Wallets Node.js SDK, you get a viem WalletClient on successful authentication. This signer can be used with viem to make Skale blockchain calls like getting the user's account, fetching balance, signing transactions, sending transactions, reading from and writing to smart contracts, etc.
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
To interact with the blockchain, use the viem library with the WalletClient
returned by connect().
- npm
- Yarn
- pnpm
- Bun
npm install --save viem
yarn add viem
pnpm add viem
bun add viem
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 user's Ethereum public address
const address = result.signer.account.address
console.log('\x1b[33m%s\x1b[0m', 'Accounts:', address)
Get balance
const { createPublicClient, formatEther, http } = require('viem')
const address = result.signer.account.address
const publicClient = createPublicClient({
chain: result.signer.chain,
transport: http(),
})
const balance = formatEther(await publicClient.getBalance({ address }))
console.log('\x1b[33m%s\x1b[0m', 'Balance:', balance, 'ETH')
Sign a message
const signature = await result.signer.signMessage({ message })
console.log('\x1b[33m%s\x1b[0m', 'Signed Message:', signature)