Are you an LLM? Read llms.txt for a summary of the docs, or llms-full.txt for the full context.
Skip to content

wallet_getCapabilities

Get wallet capabilities for supported chains. Implements EIP-5792 for capability discovery.

Authentication Required: No

Request

await jaw.provider.request({
  method: 'wallet_getCapabilities',
  params: ['0x1234...', ['0x1', '0x2105']],
});

Parameters

NameTypeRequiredDescription
addressstringNoAccount address
chainIdsstring[]NoFilter by specific chain IDs (hex)

Example

["0x1234567890123456789012345678901234567890", ["0x1", "0x2105"]]

Or without filtering:

[]

Response

Returns capabilities per chain as an object keyed by chain ID (hex).

Type: Record<string, object>

Example

{
  "0x1": {
    "atomicBatch": { "supported": true },
    "atomic": { "status": "supported" },
    "paymasterService": { "supported": true },
    "permissions": { "supported": true },
    "feeToken": {
      "supported": true,
      "tokens": [
        {
          "uid": "ethereum",
          "symbol": "ETH",
          "address": "0x0000000000000000000000000000000000000000",
          "interop": false,
          "decimals": 18,
          "feeToken": true
        }
      ]
    }
  },
  "0x2105": {
    "atomicBatch": { "supported": true },
    "atomic": { "status": "supported" },
    "paymasterService": { "supported": true },
    "permissions": { "supported": true },
    "feeToken": {
      "supported": true,
      "tokens": [
        {
          "uid": "ethereum",
          "symbol": "ETH",
          "address": "0x0000000000000000000000000000000000000000",
          "interop": true,
          "decimals": 18,
          "feeToken": true
        }
      ]
    }
  }
}

Capabilities Explained

atomicBatch

Value: { supported: true }

Indicates support for wallet_sendCalls - the ability to send multiple transactions atomically (all succeed or all fail).

atomic

Value: { status: "supported" }

Indicates atomic transaction execution where all operations in a batch are guaranteed to succeed or fail together.

paymasterService

Value: { supported: true }

Indicates support for ERC-7677 paymaster service - gasless transactions sponsored by paymasters.

permissions

Value: { supported: true }

Indicates support for the permission system (wallet_grantPermissions, wallet_revokePermissions).

feeToken

Value: { supported: true, tokens: [...] }

Indicates the supported fee tokens for gas payments on each chain.

FieldTypeDescription
supportedbooleanWhether fee token selection is supported
tokensarrayList of available fee tokens
tokens[].uidstringUnique identifier for the token
tokens[].symbolstringToken symbol (e.g., "ETH", "USDC")
tokens[].addressstringToken contract address (zero address for native token)
tokens[].interopbooleanWhether the token supports cross-chain interoperability
tokens[].decimalsnumberToken decimal places
tokens[].feeTokenbooleanWhether this token can be used for gas fees

Behavior

  • Can be called without authentication
  • Returns capabilities for all supported chains by default
  • Filters by chain IDs if chainIds parameter provided
  • When showTestnets is disabled (default), only mainnet chains are returned

Example

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

Related Methods