Using the useCapabilities Hook
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
useCapabilitieshook from the@ledgerhq/wallet-api-client-reactpackage. -
We use the hook to get the
capabilitiesarray. -
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, accountmethod: 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