getProviders & getProviderById

Detecting the providers with getProviders

If the user has multiple browser extension wallets installed, Sats Connect will detect the extensions that inject their provider information under window.btc_providers , following the WBIP004 standard.

Sats Connect will construct a "multiprovider" array at window.btc_providers , containing the injected provider from each wallet. Xverse Wallet can be identified in this array by the following properties:

window: {
  webbtc_providers: [
     id: "BitcoinProvider" || "xverseProviders.BitcoinProvider",
     name: "Xverse Wallet",
     icon: "data:image/svg+xml;base64,PHN2Z..ZnPgo=",
     webUrl: "",
     methods: ["getAddress", "getInfo", "signMessage", "signPsbt", "sendTransfer", "signMultipleTransactions", "createInscription", "createRepeatInscriptions", "stx_signMessage","stx_transferStx", "stx_signTransaction", "stx_callContract"],		

Your application can detect the user's installed wallet providers with the getProviders method.

No request parameters are required:

import {getProviders} from "sats-connect";

const providers = getProviders()

The getProviders method returns an array of btcProvider objects with the following WBIP004 properties:



a string representing the path to the wallet provider in the global/window object Xverse provider example:"BitcoinProvider" || "xverseProviders.BitcoinProvider"


a string representing the name of the wallet provider to show in the connect wallet UI Xverse provider example: "Xverse Wallet"


a string representing the wallet provider's icon as to show in the connect wallet UI, as data URI (SVG image encoded in base64 format) Xverse provider example:data:image/svg+xml;base64,PHN2Z..ZnPgo=






An array of strings representing the list of methods supported by the wallet provider Xverse provider example: ["getAddress", "getInfo", "signMessage", "signPsbt", "sendTransfer", "signMultipleTransactions", "createInscription", "createRepeatInscriptions", "stx_signMessage","stx_transferStx", "stx_signTransaction", "stx_callContract"]

Selecting a provider with getProviderById

You can use the getProviderById method to select any specific provider from the list of providers injected under window.btc_providers

No request parameters are required:

import {getProviders, getProviderById} from "sats-connect";

const providers = getProviders();

const firstProvider = providers[0];

const providerObject = getProviderById(;

const response = providerObject.reauest('getInfo', null);

The getProviderById method returns the provider object that the wallets injects in the window object.