Module

Events — 2 credits

Query on-chain event logs from smart contracts and track token transfer history for addresses. Both methods cost 2 credits and require JWT authentication.

JWT
⚠️
Block range limit: Maximum 10,000 blocks per query. For large historical ranges, paginate by splitting into multiple 10,000-block chunks.
getEvents()
GET 2 credits JWT

Fetch emitted event logs from a contract within a specified block range. Useful for auditing contract activity, indexing on-chain data, and detecting specific events.

Parameters

NameTypeRequiredDescription
$contractAddressstringYesContract to query events from
$eventstringNoEvent name to filter (default: "Transfer")
$fromBlockintNoStart block (default: 0)
$toBlockstring|intNoEnd block or "latest" (default: "latest"). Max range: 10,000 blocks.
$network?stringNoNetwork name. Defaults to WEB3_DEFAULT_NETWORK
$limitintNoMaximum events to return (default: 100)

Example — get recent Transfer events

$events = Web3Api::events()->getEvents(
    contractAddress: '0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174',  // USDC
    event:           'Transfer',
    fromBlock:       45000000,
    toBlock:         45010000,   // 10,000 block range
    network:         'polygon',
    limit:           100,
);

foreach ($events as $event) {
    echo $event['event'];        // "Transfer"
    echo $event['block_number']; // 45000123
    echo $event['tx_hash'];      // "0xabc..."
    echo $event['args']['from']; // "0xSENDER..."
    echo $event['args']['to'];   // "0xRECEIVER..."
    echo $event['args']['value'];// "1000000" — raw units
}

Example — query a custom event

$events = Web3Api::events()->getEvents(
    contractAddress: '0xMY_CONTRACT',
    event:           'Staked',
    fromBlock:       45000000,
    toBlock:         'latest',
    network:         'polygon',
);

Response (array of event objects)

[
  {
    "event":        "Transfer",
    "block_number": 45000123,
    "tx_hash":      "0xabcdef...",
    "args": {
      "from":  "0xSENDER...",
      "to":    "0xRECEIVER...",
      "value": "1000000"
    }
  }
]
addressTransfers()
GET 2 credits JWT

Fetch all token Transfer events involving a specific wallet address (as sender or receiver), optionally filtered to a specific token contract.

Parameters

NameTypeRequiredDescription
$addressstringYesWallet address to find transfers for
$tokenAddress?stringNoFilter to a specific ERC-20 contract (null = all tokens)
$fromBlockintNoStart block (default: 0)
$toBlockstring|intNoEnd block or "latest"
$network?stringNoNetwork name. Defaults to WEB3_DEFAULT_NETWORK
$limitintNoMaximum events to return (default: 100)

Example — all USDC transfers to/from an address

$transfers = Web3Api::events()->addressTransfers(
    address:      '0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045',
    tokenAddress: '0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174',  // USDC
    fromBlock:    45000000,
    toBlock:      'latest',
    network:      'polygon',
    limit:        50,
);

Example — all token transfers (any token)

$transfers = Web3Api::events()->addressTransfers(
    address:  '0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045',
    network:  'polygon',
);