> ## 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_sendCalls

> Send a batch of calls atomically (EIP-5792).

Sends multiple calls in a single user operation. All calls succeed together or revert together.

## Request

```ts theme={null}
const { id } = await provider.request<{ id: `0x${string}` }>({
  method: 'wallet_sendCalls',
  params: [
    {
      version: '1',
      from: address,
      chainId: '0x74c',
      atomicRequired: true,
      calls: [
        { to: '0x...', data: '0x...' },
        { to: '0x...', data: '0x...', value: '0x0' },
      ],
    },
  ],
})
```

## Parameters

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

<ParamField path="params[0].from" type="`0x${string}`">
  Smart-account address. Rewritten by the wallet if a different value is supplied.
</ParamField>

<ParamField path="params[0].chainId" type="`0x${string}`" required>
  Hex-encoded chain ID.
</ParamField>

<ParamField path="params[0].atomicRequired" type="boolean">
  When `true` (recommended for Startale), all calls must land in a single transaction.
</ParamField>

<ParamField path="params[0].calls" type="Array<{ to, data?, value? }>" required>
  Array of calls. Each `to` is required; `data` and `value` are optional.
</ParamField>

## Returns

```ts theme={null}
{
  id: `0x${string}`
}
```

The `id` is used to query status with [`wallet_getCallsStatus`](#related) or to display status with `wallet_showCallsStatus`.

## Errors

| Code     | Cause                |
| -------- | -------------------- |
| `4001`   | User rejected        |
| `4100`   | Wallet not connected |
| `-32602` | Malformed call array |

## Related

* [`eth_sendTransaction`](/api-reference/rpc-methods/eth-send-transaction), single transaction.
* [Batched calls](/app-sdk/batched-calls)
