{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "wallet_sendCalls",
  "params": [{
    "version": "2.0.0",
    "from": "0xd46e8dd67c5d32be8058bb8eb970870f07244567",
    "chainId": "0xaa36a7",
    "atomicRequired": true,
    "calls": [
      {
        "to": "0x54f1C1965B355e1AB9ec3465616136be35bb5Ff7",
        "value": "0x0"
      },
      {
        "to": "0x2D48e6f5Ae053e4E918d2be53570961D880905F2",
        "value": "0x0"
      }
    ]
  }]
}
{
  "id": 1,
  "jsonrpc": "2.0",
  "result": {
    "batchId": "0x123...",
    "status": "pending"
  }
}

Defined in EIP-5792

Requests that the wallet submits a batch of calls. This method allows applications to send multiple transactions atomically or sequentially.

Parameters

version
string
required

The version of the API format. This must be “2.0.0”.

id
string

The ID of the batch of calls for tracking purposes.

from
string
required

The sender’s address. Pattern: ^0x[0-9a-fA-F]{40}$

chainId
string
required

The EIP-155 chain ID of the calls. This must match the currently selected network in the wallet. Pattern: ^0x([1-9a-f]+[0-9a-f]*|0)$

atomicRequired
boolean
required

true if the wallet must execute all calls atomically. If false, the wallet may execute the calls sequentially without atomicity. If false and the wallet is capable of executing the calls atomically, it may do so.

calls
array
required

An array of call objects to execute.

capabilities
object

Dapps can use this object to communicate with the wallet about supported capabilities.

Returns

result
object

An object containing information about the sent batch, including transaction details and status.

Example Usage

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "wallet_sendCalls",
  "params": [{
    "version": "2.0.0",
    "from": "0xd46e8dd67c5d32be8058bb8eb970870f07244567",
    "chainId": "0xaa36a7",
    "atomicRequired": true,
    "calls": [
      {
        "to": "0x54f1C1965B355e1AB9ec3465616136be35bb5Ff7",
        "value": "0x0"
      },
      {
        "to": "0x2D48e6f5Ae053e4E918d2be53570961D880905F2",
        "value": "0x0"
      }
    ]
  }]
}
{
  "id": 1,
  "jsonrpc": "2.0",
  "result": {
    "batchId": "0x123...",
    "status": "pending"
  }
}

Error Handling

code
number

Error code indicating the type of error that occurred.

message
string

Human-readable error message describing what went wrong.

CodeMessageDescription
-32602The wallet cannot parse the requestInvalid request format
-32000Version not supportedAPI version not supported
4001User rejected the requestUser denied the transaction
4100The requested account and/or method has not been authorized by the userAuthorization required
5700The wallet does not support a capability that was not marked as optionalMissing capability
5710EIP-7702 not supported on the specified chain IDChain not supported
5720There is already a batch submitted with the specified batch IDDuplicate batch ID
5740The batch is too large for the wallet to processBatch size limit exceeded
5750EIP-7702 upgrade rejected for this chain and accountUpgrade rejected

Ensure that the chainId matches the currently selected network in the wallet to avoid transaction failures.

When atomicRequired is set to false, consider the implications of partial execution if some calls fail while others succeed.