ZerionWallet
Wallet interface to connect Zerion Wallet extension or mobile app.
import { ZerionWallet } from "@thirdweb-dev/wallets"; const wallet = new ZerionWallet(); wallet.connect();
Create an instance of ZerionWallet
.
function constructor(
The options
object includes the following properties:
clientId (recommended)
Provide clientId
to use the thirdweb RPCs for given chains
You can create a client ID for your application from thirdweb dashboard .
projectId (recommended)
This is only relevant if you want to use WalletConnect for connecting to Zerion wallet mobile app when MetaMask is not injected.
This projectId
can be obtained at cloud.walletconnect.com . It is highly recommended to use your own project id and only use the default one for testing purposes.
qrcode
Whether to open the default Wallet Connect QR code Modal for connecting to Zerion Wallet on mobile
(if Zerion is not injected when calling connect()
).
Must be a boolean
. Defaults to false
.
chains (optional)
Provide an array of chains you want to support.
Must be an array of Chain
objects, from the @thirdweb-dev/chains
package.
Defaults to our default chains .
dappMetadata
Information about your app that the wallet will display when your app tries to connect to it.
Must be an object containing name
, url
, and optionally description
and logoUrl
properties.
import { ZerionWallet } from "@thirdweb-dev/wallets"; const wallet = new ZerionWallet({ dappMetadata: { name: "thirdweb powered dApp", url: "https://thirdweb.com", description: "thirdweb powered dApp", logoUrl: "https://thirdweb.com/favicon.ico", },});
qrModalOptions
WalletConnect's options to customize the QR Code Modal.
Connect to the wallet using a QR code. You can use this method to display a QR code. The user can scan this QR code using the Zerion Wallet mobile app to connect to your dapp.
wallet.connectWithQrCode({ chainId: 1, onQrCodeUri(qrCodeUri) { // render the QR code with `qrCodeUri` }, onConnected(accountAddress) { // update UI to show connected state },});
function connectWithQrCode( options: ConnectWithQrCodeArgs,): Promise<void>;
The options object contains the following properties/method:
chainId (optional)
If provided, wallet will prompt the user to switch to the network with the given chainId
after connecting.
onQrCodeUri
A callback to get the QR code URI to display to the user.
onConnected
A callback that is called when the user has connected their wallet using the QR code.
let options: ConnectWithQrCodeArgs;
AbstractClientWallet.addListener
function addListener( event: T, fn: ( ) => void, context?: any,): this;
let fn: () => void;
AbstractClientWallet.emit
Calls each of the listeners registered for a given event.
function emit( event: T,): boolean;
AbstractClientWallet.eventNames
Return an array listing the events for which the emitter has registered listeners.
AbstractClientWallet.getBalance
Returns the balance of the connected wallet for the specified token address. If no token address is specified, it returns the balance of the native token
function getBalance( tokenAddress: string,): Promise<{ decimals: number; displayValue: string; name: string; symbol: string; value: BigNumber;}>;
AbstractClientWallet.getPersonalWallet
If the wallet uses another "personal wallet" under the hood, return it
This is only useful for wallets like Safe or Smart Wallet uses a "personal wallet" under the hood to sign transactions. This method returns that wallet
AbstractClientWallet.getSigner
Get ethers Signer object of the connected wallet
function getSigner(): Promise<Signer>;
AbstractClientWallet.listenerCount
Return the number of listeners listening to a given event.
AbstractClientWallet.listeners
Return the listeners registered for a given event.
function listeners( event: T,): Array< ( ) => void>;
let returnType: Array< ( ) => void>;
AbstractClientWallet.off
function off( event: T, fn?: ( ) => void, context?: any, once?: boolean,): this;
let fn: () => void;
AbstractClientWallet.on
Add a listener for a given event.
function on( event: T, fn: ( ) => void, context?: any,): this;
let fn: () => void;
AbstractClientWallet.once
Add a one-time listener for a given event.
function once( event: T, fn: ( ) => void, context?: any,): this;
let fn: () => void;
AbstractClientWallet.removeListener
Remove the listeners of a given event.
function removeListener( event: T, fn?: ( ) => void, context?: any, once?: boolean,): this;
let fn: () => void;
AbstractClientWallet.transfer
Transfers some amount of tokens to the specified address
function transfer( to: string, amount: string | number, currencyAddress: string,): Promise<Omit<TransactionResultWithMetadata<unknown>, "data">>;
AbstractClientWallet.updateChains
Update the chains supported by the wallet. This is useful if wallet was initialized with some chains and this needs to be updated without re-initializing the wallet
function updateChains(chains: Array<Chain>): Promise<void>;
AbstractClientWallet.verifySignature
Verify the signature of a message. It returns true
if the signature is valid, false
otherwise
function verifySignature( message: string, signature: string, address: string, _chainId?: number,): Promise<boolean>;