Skip to Content
We're improving our docs. Share your experience and help shape what comes next.

Using the useCapabilities Hook

☞ The renaming of “Ledger Live” to “Ledger Wallet” and “wallet” (in the hardware sense) to “signer” is still in progress. This page may contain legacy references that will be updated.

In this section, we will be looking at how to use the useCapabilities hook to retrieve a list of available cryptocurrencies and tokens.

This method is essential when you need to get information on what you can do with the user’s account.

Introduction to useCapabilities Hook

The useCapabilities hook is part of the @ledgerhq/wallet-api-client-react package. This hook allows you to fetch a list of permissions.

Sample Code

Here is an example that shows how to use the useCapabilities hook inside a React component:

Required permission: wallet.capabilities

import { useState } from "react"; import { useCapabilities } from "@ledgerhq/wallet-api-client-react"; function App() { const { capabilities } = useCapabilities(); return ( <> <h1>Capabilities</h1> <button onClick={() => {console.log(capabilities)}}> log Capabilities </button> </> ); } export default App;

In this example:

  • We import the useCapabilities hook from the @ledgerhq/wallet-api-client-react package.

  • We use the hook to get the capabilities array.

  • When the button is clicked, it log the list of capabilities.

Understanding the Response

Here is an example of a partial response from the useCapabilities hook:

[ 'account.list', 'account.receive', 'account.request', 'bitcoin.getXPub', 'currency.list', 'device.close', 'device.exchange', 'device.transport', 'exchange.complete', 'exchange.start', 'message.sign', 'storage.get', 'storage.set', 'transaction.sign', 'transaction.signAndBroadcast', 'wallet.capabilities', 'wallet.info', 'wallet.userId' ]

Each string in the array represents a capability. They are composed in two part group.method :

  • group: Specifies in which area does the permission belong.
wallet, currency, account, exchange, bitcoin, device, transaction, storage, message, account
  • method: Specifies the method that you can call with this specific user.

Other fields

const capabilitiesHook = useCapabilities();

loading : Loading state of capabilities field

if (capabilitiesHook.loading){ ... };

error : State of the request

if (capabilitiesHook.error){ ... };

updateData : Function that update the updateData

capabilitiesHook.updateData();

updatedAt : Last update of capabilities

Last updated on
Ledger
Copyright © Ledger SAS. All rights reserved. Ledger, Ledger Stax, Ledger Flex, Ledger Nano, Ledger Nano S, Ledger OS, Ledger Wallet, [LEDGER] (logo), [L] (logo) are trademarks owned by Ledger SAS.