Are you an LLM? Read llms.txt for a summary of the docs, or llms-full.txt for the full context.
Skip to content

wallet_getCallsHistory

Get the history of call bundles for an address.

Authentication Required: No

Request

await jaw.provider.request({
  method: 'wallet_getCallsHistory',
  params: [{
    address: '0x...',
    limit: 20,
    sort: 'desc',
  }],
});

Parameters

NameTypeRequiredDescription
addressAddressYesThe wallet address to fetch call history for
chainIdnumberNoChain ID to filter by
indexnumberNoIndex cursor for pagination
limitnumberNoMaximum bundles to return (default: 20)
sort'asc' | 'desc'NoSort direction by index (default: 'desc')

Example

[{
  "address": "0x1234567890123456789012345678901234567890",
  "chainId": 1,
  "limit": 10,
  "sort": "desc"
}]

Response

Returns an array of call history items.

Example

[
  {
    "id": "0xabc123...",
    "index": 42,
    "address": "0x1234567890123456789012345678901234567890",
    "status": 200,
    "timestamp": 1706054400,
    "chainId": 1,
    "transactionHash": "0xdef456..."
  },
  {
    "id": "0x789xyz...",
    "index": 41,
    "address": "0x1234567890123456789012345678901234567890",
    "status": 100,
    "timestamp": 1706050800,
    "chainId": 1,
    "transactionHash": null
  }
]

Response Fields

FieldTypeDescription
idstringThe userOpHash (batch identifier)
indexnumberAuto-incrementing index per address (for cursor pagination)
addressstringThe wallet address
statusnumberStatus code (see below)
timestampnumberUnix timestamp in seconds
chainIdnumberChain ID
transactionHashstring | nullTransaction hash (null when pending)

Status Codes

CodeStatusDescription
100PendingNot yet on-chain
200CompletedSuccessfully executed on-chain
500Onchain RevertReverted on-chain

Behavior

  • Can be called without authentication
  • Returns call history for any address
  • Results are paginated using index cursor
  • Default sort is newest first (desc)
  • Useful for displaying transaction history UI

Examples

Basic Usage

const history = await jaw.provider.request({
  method: 'wallet_getCallsHistory',
  params: [{
    address: '0x1234567890123456789012345678901234567890',
  }],
});
 
console.log(`Found ${history.length} transactions`);

Paginated Fetch

async function fetchAllHistory(address: string) {
  const allHistory = [];
  let lastIndex: number | undefined;
 
  while (true) {
    const batch = await jaw.provider.request({
      method: 'wallet_getCallsHistory',
      params: [{
        address,
        index: lastIndex,
        limit: 20,
        sort: 'desc',
      }],
    });
 
    if (batch.length === 0) break;
 
    allHistory.push(...batch);
    lastIndex = batch[batch.length - 1].index;
  }
 
  return allHistory;
}

Related Methods