Skip to content

wallet_getCapabilities

Gets supported EIP-5792 Capabilities of the RPC server.

Request

type Request = {
  method: 'wallet_getCapabilities',
  // the chain ids
  params: Hex[],
}

Response

A map of chain IDs to the capabilities supported by the RPC server on those chains, which includes:

  • contract addresses (contracts)
  • fee configuration (fees), such as supported fee tokens (fees.tokens), and quote lifetimes (fees.quoteConfig.ttl)
type Response = {
  // the chain ID as hex
  [chainId: Hex]: {
    contracts: {
      accountRegistry: {
        address: Address,
        version?: string,
      },
      delegationImplementation: {
        address: Address,
        version?: string,
      },
      delegationProxy: {
        address: Address,
        version?: string,
      },
      entrypoint: {
        address: Address,
        version?: string,
      },
      legacyDelegations?: {
        address: Address,
        version?: string,
      }[],
      legacyEntrypoints?: {
        address: Address,
        version?: string,
      }[],
      simulator: {
        address: Address,
        version?: string,
      },
    },
    fees: {
      quoteConfig: {
        // only present on development environments
        constantRate?: number,
        gas: {
          txBuffer: number,
          intentBuffer: number,
        },
        // price feed ttl
        rateTtl: number,
        // the ttl of RPC quotes
        ttl: number,
      },
      // the recipient of fees
      // if this is the zero address, fees are accumulated in the entrypoint
      recipient: Address,
      tokens: {
        address: Address,
        decimals: number,
        kind: 'USDC' | 'USDT' | 'ETH',
        // the rate of the fee token to native tokens
        nativeRate: Hex,
        symbol: string,
      }[],
    },
  }
}

Example

cast rpc --rpc-url https://porto-dev.rpc.ithaca.xyz wallet_getCapabilities '[28404]'
{
  "0x14a34": {
    "contracts": {
        "accountRegistry": {
          "address": "0x623b5b44647871268d481d2930f60d5d7f37a1fe",
          "version": null
        },
        "delegationImplementation": {
          "address": "0x5c4fd1f648a89802b7fcd0bced8a35567d99cf15",
          "version": "0.1.2"
        },
        "delegationProxy": {
          "address": "0xc49cc88a576cf77053ba11b1c3a3011b42da0f34",
          "version": null
        },
        "entrypoint": {
          "address": "0x2e71297e895fd480019810605360cd09dbb8783b",
          "version": "0.1.2"
        },
        "legacyDelegations": [],
        "legacyEntrypoints": [],
        "simulator": {
          "address": "0x45b65d48e60a9414872ecd092ddf5b37c6bf4d06",
          "version": null
        }
    },
    "fees": {
      "quoteConfig": {
        "constantRate": null,
        "gas": {
          "txBuffer": 100000,
          "intentBuffer": 100000
        },
        "rateTtl": 300,
        "ttl": 30
      },
      "recipient": "0x0000000000000000000000000000000000000000",
      "tokens": [
        {
          "address": "0x29f45fc3ed1d0ffafb5e2af9cc6c3ab1555cd5a2",
          "decimals": 18,
          "kind": "USDT",
          "nativeRate": "0x17a503c0a7000",
          "symbol": "EXP"
        },
        {
          "address": "0x502ff46e72c47b8c3183db8919700377eed66d2e",
          "decimals": 18,
          "kind": "USDT",
          "nativeRate": "0x17a503c0a7000",
          "symbol": "EXP"
        },
        {
          "address": "0x0000000000000000000000000000000000000000",
          "decimals": 18,
          "kind": "ETH",
          "nativeRate": "0xde0b6b3a7640000",
          "symbol": "ETH"
        }
      ]
    }
  }
}