Ethereum Log Bloom Filters: Useful but Not Exact
Learn what Ethereum log bloom filters can and cannot establish, why false positives matter, and how to verify actual matching event logs.

Overview
When translating these concepts into an integration, keep the scope described by the wallet history api with the result. The examples in wallet transaction history and smart contract event logs show how the same distinction affects neighbouring data questions.
A log bloom filter helps narrow the search for addresses and topics. It is a compact membership structure, not a list of decoded events. Applications still need to inspect the underlying logs before reporting a match.
Understand the direction of the test
Bloom filters can indicate that a candidate may be present. Hash collisions can produce false positives. Their usefulness lies in eliminating candidates when the queried value is definitely absent under the filter rules. They do not encode amounts, event ordering, ABI meanings or the complete set of transfer participants.
Worked example: a candidate block
An event search checks a block bloom for a token address and a Transfer topic. The bloom passes, so the application retrieves the block logs. Inspection finds no log matching both the address and required topic arrangement. This is a valid candidate rejection, not a corrupted block or a missing transaction.
Keep the final predicate explicit
Verify emitting address, topic positions and data using the actual logs. Scope the search to a chain and accepted block range. Do not display a bloom-positive candidate as a confirmed wallet activity record. When measuring performance, count candidate blocks and verified matches separately; a higher candidate count can reflect selectivity rather than a change in real activity.
A practical acceptance test
Provide one bloom-positive block with an actual matching log and another with no matching log. The first yields a verified event; the second yields only a rejected candidate. Confirm that candidate statistics can increase without changing wallet activity totals. An output row must always link to the log that satisfied the final predicate.
Questions about the topic
Frequently asked questions
Can a positive bloom result be false?
Yes. It is a candidate test and can produce false positives.
Can a bloom decode token amounts?
No. Amounts require the actual log data and the relevant ABI.
Standards & technical documentation
