DocumentationLedger LiveDiscoverIntegration walkthroughsLedger Services KitCoreModulesAccount

Using the Account Module in Services Kit Core Client

The Account Module allows you to interact with the user’s accounts. You can list accounts, request an account, and verify account addresses on a Ledger device through Ledger Live.

Account Module Overview

Access the Account module via walletApiClient.account.

Methods:

1. List Accounts

Retrieve the list of accounts added by the user on the connected wallet. You can filter the accounts by currency IDs.

walletApiClient.account.list(params?: { currencyIds?: string[] }): Promise<Account[]>

Parameters:

  • params (optional): An object that may contain:
  • currencyIds (optional): An array of strings specifying the currency IDs to filter accounts by.

Returns: A promise that resolves with an array of Account objects.

Required permission: account.list

Example:
async function listAccounts(walletApiClient) {
  try {
    const accounts = await walletApiClient.account.list();
    console.log('All Accounts:', accounts);
 
    const bitcoinAccounts = await walletApiClient.account.list({ currencyIds: ['bitcoin'] });
    console.log('Bitcoin Accounts:', bitcoinAccounts);
  } catch (error) {
    console.error('Error listing accounts:', error);
  }
}

2. Request Account

Prompt the user to select an account from the connected wallet. You can filter the accounts by currency IDs.

walletApiClient.account.request(params?: { currencyIds?: string[] }): Promise<Account>

Parameters:

  • params (optional): An object that may contain:
  • currencyIds (optional): An array of strings specifying the currency IDs to filter accounts by. You can find currency IDs and token IDs in the Ledger repository.

Returns: A promise that resolves with the selected Account object.

Required permission: account.request

Example:
async function requestAccount(walletApiClient) {
  try {
    const account = await walletApiClient.account.request({ currencyIds: ['ethereum'] });
    console.log('Selected account:', account);
  } catch (error) {
    console.error('Error requesting account:', error);
  }
}

3. Verify Account Address

Allows the user to verify an account’s address on their Ledger device through Ledger Live.

walletApiClient.account.receive(accountId: string): Promise<string>

Parameters:

  • accountId (required): The ID of the account whose address needs to be verified.

Returns: A promise that resolves with the verified address as a string.

Required permission: account.receive

Example:
async function verifyAccountAddress(walletApiClient, accountId) {
  try {
    const address = await walletApiClient.account.receive(accountId);
    console.log('Verified address:', address);
  } catch (error) {
    console.error('Error verifying account address:', error);
  }
}

Handling Errors

Make sure to handle errors gracefully and provide appropriate feedback to the user. Additionally, always remember to disconnect the WindowMessageTransport when you’re done interacting with the Ledger Services Kit to free up resources.

Ledger
Copyright © Ledger SAS. All rights reserved. Ledger, Ledger Nano S, Ledger Vault, Ledger OS are registered trademarks of Ledger SAS