> ## Documentation Index
> Fetch the complete documentation index at: https://docs.startale.com/llms.txt
> Use this file to discover all available pages before exploring further.

# wallet_connect

> Connect with explicit capability negotiation. Returns accounts and the capabilities the wallet supports.

A richer connection method than `eth_requestAccounts`. Returns the connected accounts plus a capabilities map describing which features (sub-accounts, spend permissions, batched calls) the wallet supports.

## Request

```ts theme={null}
const result = await provider.request({
  method: 'wallet_connect',
  params: [
    {
      version: '1',
      capabilities: {
        // optional capability requests
      },
    },
  ],
})
```

## Parameters

<ParamField path="params[0].version" type="string">
  Connection protocol version. Use `'1'`.
</ParamField>

<ParamField path="params[0].capabilities" type="object">
  Optional capability requests. Reserved for sub-accounts and spend-permission flows.
</ParamField>

## Returns

```ts theme={null}
{
  accounts: [
    {
      address: '0x...',
      capabilities?: { /* per-account caps */ },
    },
  ],
  userInfo?: {
    email?: string
    name?: string
  },
}
```

`userInfo` is present when the user authenticated with a social provider (Google, LINE). It is absent for EOA-only connections.

## Errors

| Code   | Cause         |
| ------ | ------------- |
| `4001` | User rejected |

## Related

* [`eth_requestAccounts`](/api-reference/rpc-methods/eth-request-accounts), simpler variant returning addresses only.
