Sats Connect - Wallet API for Bitcoin & Stacks
  • Introduction
  • Wallet Providers
    • getInfo
    • getProviders & getProviderById
  • Connecting to the wallet
    • Connect to Xverse Wallet
    • Disconnect from Xverse Wallet
    • Connect to other wallets
      • Manage a user's default wallet
    • [Legacy ⚠️] getAccounts
  • Wallet Methods
    • request methods
    • wallet_getAccount
    • wallet_getNetwork
    • wallet_changeNetwork
    • Xverse Custom Methods
  • Xverse Wallet Permissions
  • Xverse Wallet events
  • BITCOIN METHODS
    • 🟠getAddresses
    • 🟠signMessage
    • 🟠signPsbt
    • 🟠sendTransfer
    • 🟠signMultipleTransactions
    • 🟠getBalance
    • 🎨createInscription
    • 🎨createRepeatInscriptions
    • 🎨ord_getInscriptions
    • 🎨ord_sendInscriptions
    • 🔲runes_getBalance
    • 🔲runes_transfer
    • 🔲Mint Runes
      • runes_estimateMint
      • runes_mint
    • 🔲Etch Runes
      • runes_estimateEtch
      • runes_etch
    • 🔲runes_getOrder
    • 🔲Speed up a Rune Mint or Etch order
      • 🔲runes_estimateRbfOrder
      • 🔲runes_rbfOrder
  • STACKS METHODS
    • 🔴stx_getAccounts
    • 🔴stx_signMessage
    • 🔴stx_signStructuredMessage
    • 🔴stx_transferStx
    • 🔴stx_signTransaction
    • 🔴stx_callContract
    • 🔴stx_deployContract
  • GUIDES
    • Verify Bitcoin message signatures
    • Creating Bitcoin PSBTs
    • 📱Mobile Integration
    • Next.js support
  • RESOURCES
    • App Template
    • Demo App
    • Changelog
    • Github Issues
    • Developer forum
    • BIP322
Powered by GitBook
On this page
  • Fetch the user's Xverse wallet account
  • getAccount Result - account is connected
  • getAccount Result - account is not connected
  1. Wallet Methods

wallet_getAccount

Previousrequest methodsNextwallet_getNetwork

Last updated 1 month ago

Fetch the user's Xverse wallet account

Your app can fetch the user's active Xverse account with the wallet_getAccount method.

The app must have first and obtained

  • You can optionally specify which wallet addresses you require, Bitcoin ordinals address, Bitcoin payment address or Stacks address, using the optional addresses request parameter.

request parameters
Description

an array of strings used to specify which address(es) to request from the user's Xverse wallet account:

  • 'ordinals' is preferably used to manage the user’s ordinals

  • 'payment' is preferably used to manage the user’s bitcoin

  • 'stacks' is used to interact with the stacks ecosystem

Example: ['ordinals', 'payment', 'stacks'] Will default to ['ordinals', 'payment', 'stacks'] if not specified.

import Wallet from 'sats-connect';

const response = await Wallet.request('wallet_getAccount', null);

if (response.status === 'error') {
  console.error(response.error);
  return;
}

console.log(response.result);

The wallet_getAccount method attempts to fetch the user's active Xverse account directly. You can use it to grant your connected user a smooth experience, without connection popups.

getAccount Result - account is connected

type address = {
    address: string;
    publicKey: string;
    purpose: "payment" | "ordinals" | "stacks";
    addressType: "p2tr" | "p2wpkh" | "p2sh" | "stacks";
}

Currently, you can retrieve two types of Bitcoin addresses, the user's Bitcoin payment address and the Ordinals address which is a taproot address.

An example response:

wallet_getAccount response
{
  walletType: "software",
  id: "dj0f7g5xtdakgecvf45dvssu66",
  addressses: [
    {
      address: "tb1pzwa68q3udj0f7g5xtdakgecvf45dvssu66ry7y3at22w7vus20vq3sgw62",
      publicKey: "b9907521ddb85e0e6a37622b7c685efbdc8ae53a334928adbd12cf204ad4e717",
      purpose: "ordinals",
      addressType: "p2tr",
    },
    {
      address: "2NBfRKCUpafbatj5gV9T82uau3igdSf9BXJ",
      publicKey: "02818b7ff740a40f311d002123087053d5d9e0e1546674aedb10e15a5b57fd3985",
      purpose: "payment",
      addressType: "p2sh",
    }
  ]
}

Where:

address field
Description

address

string - the user’s connected wallet address

publicKey

A hex string representing the bytes of the public key of the account. You can use this to construct partially signed Bitcoin transactions (PSBT).

purpose

string - The purpose of the address:

  • ordinals is preferably used to manage the user’s ordinals

  • payment is preferably used to manage the user’s bitcoin

  • stacks is used to interact with the stacks ecosystem

addressType

string - the address’s format:

  • P2TR for ordinals

  • P2SH for payment

  • P2WPKH for payment using Ledger

  • stacks for Stacks

network

string - the network where the address is being used:

  • mainnet for Bitcoin & Stacks mainnet

  • testnet for Bitcoin & Stacks testnet

  • Signet for Bitcoin Signet

walletType

string - the type of wallet used for the account

  • ledger if the user's account is using a Ledger device

  • software otherwise

addresses Optional

If your user has already , and granted your app the necessary account read -> the method successfully return getAccountResult: an array of the user’s wallet address objects, defined as:

You can use these addresses to make further requests such as , , etc.

getAccount Result - account is not connected

If your user has not yet, and your app does not the necessary account read -> the method will throw with an access denied error You can use the or methods to request a connection to your user's active Xverse account.

❌
✅
connected to the wallet
account read permissions.
connected their active Xverse account to your app
permissions
signing a message
signing a transaction
connected their active Xverse account to your app
permissions
connect
wallet_requestPermissions
ℹ️