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
| Name | Type | Required | Description |
|---|---|---|---|
$contractAddress | string | Yes | Contract to query events from |
$event | string | No | Event name to filter (default: "Transfer") |
$fromBlock | int | No | Start block (default: 0) |
$toBlock | string|int | No | End block or "latest" (default: "latest"). Max range: 10,000 blocks. |
$network | ?string | No | Network name. Defaults to WEB3_DEFAULT_NETWORK |
$limit | int | No | Maximum 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
| Name | Type | Required | Description |
|---|---|---|---|
$address | string | Yes | Wallet address to find transfers for |
$tokenAddress | ?string | No | Filter to a specific ERC-20 contract (null = all tokens) |
$fromBlock | int | No | Start block (default: 0) |
$toBlock | string|int | No | End block or "latest" |
$network | ?string | No | Network name. Defaults to WEB3_DEFAULT_NETWORK |
$limit | int | No | Maximum 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',
);