Skip to main content
Defined in EIP-5792
Returns the wallet’s capabilities for a given account. Capabilities indicate what additional functionality the wallet supports beyond standard RPC methods, such as atomic batch transactions, gasless transactions, auxiliary funds, and authentication features.

Parameters

string
required
The account address to check capabilities for. Pattern: ^0x[0-9a-fA-F]{40}$

Returns

object
An object where each key is a chain ID (as a hexadecimal string) and each value is an object containing the capabilities supported on that chain.

Example Usage

Capability Detection Patterns

Check Single Capability

Check Multiple Capabilities

Conditional Transaction Building

Error Handling

Capabilities are chain-specific and account-specific. Always check capabilities for the specific chain and account combination you’re targeting.
Not all wallets support all capabilities. Use capability detection to provide progressive enhancement rather than blocking functionality when capabilities aren’t available.

Integration with Other Methods

With wallet_sendCalls

Use capabilities to enhance transaction execution:

With wallet_connect

Capabilities detection doesn’t affect wallet_connect, but you can use the results to inform your authentication flow:

Best Practices

  1. Always Check First: Call wallet_getCapabilities before using advanced features
  2. Cache Results: Capabilities typically don’t change frequently, consider caching
  3. Graceful Fallbacks: Implement fallback behavior when capabilities aren’t supported
  4. Chain-Specific: Check capabilities for each chain your app supports
  5. Progressive Enhancement: Use capabilities to enhance UX, not gate basic functionality