For AI agents: a documentation index is available at /llms.txt. A markdown version of this page is available at the same URL with .md appended (or via Accept: text/markdown).
Skip to main content

Integrate Embedded Wallets with the Zilliqa 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 Zilliqa 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 Zilliqa

  • Chain ID: 0x814f
  • Public RPC URL: https://api.zq2-prototestnet.zilliqa.com
  • Display Name: Zilliqa 2 EVM Testnet
  • Block Explorer Link: https://explorer.zq2-prototestnet.zilliqa.com
  • Ticker: ZIL
  • Ticker Name: Zilliqa

Installation

To interact with the blockchain, use the viem library with the WalletClient returned by connect().

npm install --save 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)