# wallet\_getCapabilities

Gets supported capabilities of the global wallet.

## Request

```ts
type Request = {
  method: 'wallet_getCapabilities',
}
```

## Response

```ts
type Response = {
  [chainId: `0x${string}`]: {
    atomicBatch: {
      supported: true
    },
    paymasterService: {
      supported: true
    },
    permissions: {
      supported: true,
      signerTypes: string[],
      keyTypes: string[],
      permissionTypes: string[],
    }
  }
}
```

## Example

:::warning

To make these instructions concrete, we have created a sample global wallet called **Rapidfire ID**. To interact with it, you can find its SDK in the NPM package directory: [@rapidfire/id](https://www.npmjs.com/package/@rapidfire/id).

You can check out the GitHub [repository for Rapidfire Wallet](https://github.com/openfort-xyz/ecosystem-sample) to learn how to create your own wallet.

:::

<Demo.Container name="wallet_getCapabilities">
  <Step.Connect stepNumber={1} />

  <Step.GetCapabilities stepNumber={2} />
</Demo.Container>

```ts
import RapidfireID from '@rapidfire/id'

const rapidfire = new RapidfireID()
const provider = rapidfire.getEthereumProvider()

const capabilities = await provider.request({
  method: 'wallet_getCapabilities',
})
```
