Integrate Embedded Wallets with the Chiliz 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 Chiliz 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 Chiliz
- Mainnet
- Testnet
- Chain ID: 0x1b8
- Public RPC URL:
https://rpc.chiliz.com - Display Name: Chiliz Chain Mainnet
- Block Explorer Link:
https://explorer.chiliz.com - Ticker: CHZ
- Ticker Name: Chiliz
- Chain ID: 0x1b9
- Public RPC URL:
https://rpc-testnet.chiliz.com - Display Name: Chiliz Chain Testnet
- Block Explorer Link:
https://explorer-testnet.chiliz.com - Ticker: CHZ
- Ticker Name: Chiliz
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)