Indexed Parameter Filter Builder
Free to download on every platform. Comes pre-installed on BotFone, BotPad and BotFlip — with extra free apps included.
About this app
WHAT IT DOES
Indexed Parameter Filter Builder is a developer-focused utility that constructs eth_getLogs topic filters from event signatures and indexed parameter values. It parses a user-provided event signature, identifies indexed parameters, and computes the Keccak-256 hashes of the provided parameter values to generate the correct topic filters. The tool handles common parameter types including addresses, strings, bytes, integers, booleans, and fixed-size types, automatically formatting each value to the 32-byte hash format required by eth_getLogs. It displays the full filter object with topics array, the event signature hash (topic0), and each indexed parameter value with its computed topic hash. The tool also provides a usage example showing how to use the generated filter with a contract address and block range. This enables developers to quickly and accurately build log filters without manually computing keccak hashes or understanding the low-level topic encoding.
HOW TO USE
Connect your wallet (optional). Enter an event signature into the input field, marking indexed parameters with the "indexed" keyword (e.g., "Transfer(address indexed from, address indexed to, uint256 value)"). Enter the values for the indexed parameters in the text area, one per line, in the order they appear in the signature. Click "Build filter" to generate the topic filter. The tool will display the event name, the full signature, the topic0 hash, a breakdown of each indexed parameter with its input value and computed topic hash, the full filter object, and a usage example. Copy the filter object to use in eth_getLogs queries with your preferred RPC client or library.
TECHNICAL NOTE: TOPIC HASH COMPUTATION AND TYPE HANDLING
The tool parses the event signature to extract parameter types and names, identifying indexed parameters marked with the "indexed" keyword. It computes the topic0 hash by taking the Keccak-256 hash of the full event signature string (event name plus parameter types). For each indexed parameter value, the tool applies type-specific encoding: addresses are checksummed and left as-is; strings and bytes are Keccak-256 hashed; integers (uint/int) are converted to 32-byte hex with zero padding; booleans are converted to 0x01 or 0x00; and bytes types are padded to 32 bytes or hashed if longer. The tool validates each input value against the expected parameter type and provides clear error messages when validation fails. All topic hashes are returned as 0x-prefixed hex strings ready for use in eth_getLogs filters.
WHAT IT CANNOT SEE
The tool cannot filter by non-indexed parameters, as these are not included in the topics array and cannot be filtered at the RPC level. It cannot validate that the event signature matches the actual contract source code; the tool relies on the user-provided signature. It cannot handle complex nested parameter types (e.g., arrays of structs, nested tuples) for filtering, as these are rarely indexed and have complex encoding. It cannot query logs without the event signature; the tool only builds filters, it does not execute queries. The tool is limited by eth_getLogs block range restrictions; the generated filter must be used within the provider's limits. It cannot filter by multiple parameter values in a single topic (OR logic is not supported natively by eth_getLogs). It cannot resolve parameter values from their hashes, as Keccak-256 is one-way.
PLEASE NOTE
This tool is designed exclusively for EVM-compatible chains (Ethereum, Polygon, BSC, Arbitrum, Optimism, Avalanche C-Chain, etc.). It does not support non-EVM blockchains. The tool is read-only and does not execute any RPC queries; it only builds filter objects. The generated filters can be used with any RPC client that supports eth_getLogs. Always ensure the event signature matches the contract's actual event definition. The tool provides no warranty of filter correctness; users are responsible for verifying the generated filters against contract source code.