{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "wallet_getCallsStatus",
  "params": ["0xe670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d1527331"]
}
{
  "id": 1,
  "jsonrpc": "2.0",
  "result": {
    "version": "1.0",
    "chainId": "0x2105",
    "id": "0xe670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d1527331",
    "status": 200,
    "atomic": true,
    "receipts": [
      {
        "logs": [
          {
            "address": "0xa922b54716264130634d6ff183747a8ead91a40b",
            "topics": ["0x5a2a90727cc9d000dd060b1132a5c977c9702bb3a52afe360c9c22f0e9451a68"],
            "data": "0xabcd"
          }
        ],
        "status": "0x1",
        "blockHash": "0xf19bbafd9fd0124ec110b848e8de4ab4f62bf60c189524e54213285e7f540d4a",
        "blockNumber": "0xabcd",
        "gasUsed": "0xdef",
        "transactionHash": "0x9b7bb827c2e5e3c1a0a44dc53e573aa0b3af3bd1f9f5ed03071b100bb039eaff"
      }
    ]
  }
}
Defined in EIP-5792
Returns the status of a call batch that was sent via wallet_sendCalls. This method allows applications to track the execution status and retrieve transaction receipts for batch operations.

Parameters

callsId
string
required
The call bundle identifier returned by a previous wallet_sendCalls request.

Returns

result
object
Status information for the call batch.

Example Usage

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "wallet_getCallsStatus",
  "params": ["0xe670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d1527331"]
}
{
  "id": 1,
  "jsonrpc": "2.0",
  "result": {
    "version": "1.0",
    "chainId": "0x2105",
    "id": "0xe670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d1527331",
    "status": 200,
    "atomic": true,
    "receipts": [
      {
        "logs": [
          {
            "address": "0xa922b54716264130634d6ff183747a8ead91a40b",
            "topics": ["0x5a2a90727cc9d000dd060b1132a5c977c9702bb3a52afe360c9c22f0e9451a68"],
            "data": "0xabcd"
          }
        ],
        "status": "0x1",
        "blockHash": "0xf19bbafd9fd0124ec110b848e8de4ab4f62bf60c189524e54213285e7f540d4a",
        "blockNumber": "0xabcd",
        "gasUsed": "0xdef",
        "transactionHash": "0x9b7bb827c2e5e3c1a0a44dc53e573aa0b3af3bd1f9f5ed03071b100bb039eaff"
      }
    ]
  }
}

Status Code Reference

CodeCategoryMeaning
100PendingBatch received but not completed onchain
200SuccessBatch included onchain without reverts
400Offchain ErrorBatch failed, wallet will not retry
500Chain ErrorBatch reverted completely
600Partial ErrorBatch reverted partially, some changes may be onchain

Error Handling

CodeMessageDescription
-32602Invalid paramsInvalid call bundle identifier
4100Method not supportedWallet doesn’t support wallet_getCallsStatus
4200Calls not foundNo batch found with the specified identifier

Usage with wallet_sendCalls

This method is designed to work with batches sent via wallet_sendCalls:
// Send a batch of calls
const callsId = await provider.request({
  method: 'wallet_sendCalls',
  params: [{
    version: '1.0',
    chainId: '0x2105',
    from: userAddress,
    calls: [
      { to: '0x...', value: '0x0', data: '0x...' },
      { to: '0x...', value: '0x0', data: '0x...' }
    ]
  }]
});

// Poll for status updates
const checkStatus = async () => {
  const status = await provider.request({
    method: 'wallet_getCallsStatus',
    params: [callsId]
  });
  
  if (status.status === 200) {
    console.log('Batch completed successfully!');
    console.log('Transaction receipts:', status.receipts);
  } else if (status.status === 100) {
    console.log('Batch still pending...');
    setTimeout(checkStatus, 2000); // Check again in 2 seconds
  } else {
    console.error('Batch failed with status:', status.status);
  }
};

checkStatus();
The receipts structure varies based on whether the batch was executed atomically. Always check the atomic field to properly interpret the receipts array.
This method follows the EIP-5792 standard for wallet batch operations. Not all wallets may support this method - check wallet capabilities first.