Xverse Wallet events

How apps can respond to user actions using wallet events

Sats Connect lets your app listen to key Xverse wallet events to provide a smooth user experience when your users change accounts or networks, or disconnect their account from your app.

Xverse wallet will emit dedicated events that your app can use to update the UI or request new permissions when required.

Listen to wallet events

To be notified of events, apps need to first connect to the wallet to receive account read permissions. Listeners registered using Wallet.addListener() will be notified of events for authorised accounts.

const removeListener = Wallet.addListener('accountChange', (event) => {
  console.log('The account has changed.', event);

  exampleUpdateUi();
  exampleRequestPermissionsForCurrentAccount();
});

// When no longer needed, the listener can be removed by calling the function
// returned by `addListener`.
removeListener();

The addListener method is typed to include all currently available events. They currently include:

  • accountChange

  • accountDisconnected

  • networkChange

accountChange event

the accountChange event is emitted when your connected user switches their Xverse wallet to another account.

The event will pass the below event payload object to a listener callback:

Property
Description

type

the event type -> "accountChange"

addresses (coming 🔜)

The array of address objects for the new account the user has switched to. -> See getAccount for the detailed format.

ℹī¸ This will only be returned if your app is connected to the new account the user has switched to, and already has read permission on the new account's data. Your app can request to connect to the new account if required.

accountDisconnected event

the accountDisconnected event is emitted when when your user revokes the connection with your app from their Xverse wallet, or when your app renounces its wallet permissions.

The event will pass the below event payload object to a listener callback:

Property
Description

type

the event type -> "accountDisconnected"

networkChange event

the networkChange event is emitted when when your user switches between the Mainnet, Testnet & Signet networks in their Xverse wallet.

The event will pass the below event payload object to a listener callback:

Property
Description

type

the event type: "accountChange"

network

the network the user has just switched to, e.g. "Signet"

addresses (coming 🔜)

The array of address objects for the connected account on the new network the user has switched to. -> See getAccount for the detailed format.

Last updated