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

# wallet_sendCalls

> Send a batch of calls using the wallet_sendCalls method.

### SDK methods

Learn more about sending transactions using our SDKs [here](/wallets/using-wallets/ethereum/send-a-transaction).

***

<Warning>
  **Idempotency on errors:** On 4xx or 5xx, Privy caches the response and replays it for the same
  key. Generate a new key to retry after a server error. Policy violations are an exception and
  allow same-key retries.
</Warning>

<RequestExample>
  ```sh Without sponsorship theme={"system"}
  curl --request POST \
    --url https://api.privy.io/v1/wallets/{wallet_id}/rpc \
    --header 'Authorization: Basic <encoded-value>' \
    --header 'Content-Type: application/json' \
    --header 'privy-app-id: <privy-app-id>' \
    --data '{
    "method": "wallet_sendCalls",
    "caip2": "eip155:84532",
    "chain_type": "ethereum",
    "params": {
      "calls": [
        {
          "to": "0xB8644175b78da1971C7278Ead8ff70Ce65E0981b",
          "value": "0x00000001"
        },
        {
          "to": "0xB8644175b78da1971C7278Ead8ff70Ce65E0981b",
          "value": "0x00000002"
        }
      ]
    }
  }'
  ```

  ```sh With sponsorship theme={"system"}
  curl --request POST \
    --url https://api.privy.io/v1/wallets/{wallet_id}/rpc \
    --header 'Authorization: Basic <encoded-value>' \
    --header 'Content-Type: application/json' \
    --header 'privy-app-id: <privy-app-id>' \
    --data '{
    "method": "wallet_sendCalls",
    "caip2": "eip155:84532",
    "chain_type": "ethereum",
    "sponsor": true,
    "params": {
      "calls": [
        {
          "to": "0xB8644175b78da1971C7278Ead8ff70Ce65E0981b",
          "value": "0x00000001"
        },
        {
          "to": "0xB8644175b78da1971C7278Ead8ff70Ce65E0981b",
          "value": "0x00000002"
        }
      ]
    }
  }'
  ```
</RequestExample>

<ResponseExample>
  ```json Response theme={"system"}
  {
    "method": "wallet_sendCalls",
    "data": {
      "transaction_id": "b4966a89-8983-4b1b-a93a-b104799527f5",
      "caip2": "eip155:84532"
    }
  }
  ```
</ResponseExample>

<Warning>
  The wallet RPC endpoint is a synchronous endpoint, and a successful response indicates that the
  transaction has been broadcasted to the network. Transactions may get broadcasted but still fail
  to be confirmed by the network. The endpoint does not wait for confirmation or retry if the
  transaction fails to be confirmed. To handle these scenarios, see our guide on [speeding up
  transactions](/recipes/speeding-up-transactions).
</Warning>

### Headers

<ParamField header="privy-app-id" type="string" required>
  ID of your Privy app.
</ParamField>

<ParamField header="privy-authorization-signature" type="string">
  Request authorization signature. If multiple signatures are required, they should be comma
  separated.
</ParamField>

<ParamField header="privy-request-expiry" type="string">
  Request expiry. Value is a Unix timestamp in milliseconds representing the deadline by which the
  request must be processed.
</ParamField>

### Path Parameters

<ParamField path="wallet_id" type="string" required>
  ID of the wallet to get.
</ParamField>

### Body

<ParamField body="method" type="string" defaultValue="wallet_sendCalls" required>
  Available options: `wallet_sendCalls`
</ParamField>

<ParamField body="caip2" type="string" initialValue="eip155:84532" required />

<ParamField body="params" type="object" required>
  <Expandable title="child attributes" defaultOpen="true">
    <ParamField body="calls" type="object[]" required>
      An array of call objects to execute in a batch.

      <Expandable title="child attributes" defaultOpen="true">
        <ParamField body="to" type="string" required>
          The recipient address for the call.
        </ParamField>

        <ParamField body="value" type="string">
          The value to send in the call in wei as a hexadecimal string.
        </ParamField>

        <ParamField body="data" type="string">
          The encoded calldata for the call.
        </ParamField>
      </Expandable>
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="sponsor" type="boolean">
  Optional parameter to enable gas sponsorship for this transaction. [Learn
  more.](/wallets/gas-and-asset-management/gas/overview)
</ParamField>

<ParamField body="chain_type" type="string">
  Available options: `ethereum`
</ParamField>

### Returns

<ResponseField name="method" type="enum<string>" required>
  Available options: `wallet_sendCalls`
</ResponseField>

<ResponseField name="data" type="object" required>
  <Expandable title="child attributes" defaultOpen="true">
    <ResponseField name="transaction_id" type="string" required>
      A unique identifier for the batch transaction.
    </ResponseField>

    <ResponseField name="caip2" type="string" required />
  </Expandable>
</ResponseField>
