eth-bloom
A python implementation of the bloom filter used by Ethereum
What it is and what it does
eth-bloom is a Python implementation of the bloom filter data structure used by Ethereum for efficient membership testing. It provides a BloomFilter class that supports adding byte strings, checking membership, converting to integer or binary representations, and merging filters via addition or bitwise operations. The package is designed for Ethereum-specific use cases where bloom filters are part of the protocol.
The library depends only on eth-hash for its hashing operations and supports Python 3.8 through 3.13. It is classified as Pre-Alpha but has been stable since its transfer to the Ethereum Foundation in 2017. The implementation is straightforward and focused: it does not attempt to be a general-purpose bloom filter library but rather a faithful implementation of Ethereum's specific variant.
Use it for:
- Filter Ethereum logs or events in light clients or off-chain indexing systems
- Verify membership of transaction hashes or addresses in Ethereum bloom filters
- Merge bloom filters from multiple Ethereum blocks or data sources
- Serialize and deserialize bloom filter state for storage or network transmission
- Test Ethereum protocol implementations that rely on bloom filter semantics
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Implements Ethereum's bloom filter algorithm for efficient membership testing of byte strings, supporting add, check, merge, and serialization operations.
Yes, if you are working with Ethereum data structures or implementing Ethereum protocol logic. The package is stable, has no known vulnerabilities, and installs with minimal friction. However, dormant maintenance (583 days since last release) means it is not actively developed; install only if you need the specific Ethereum bloom filter implementation and do not expect bug fixes or feature updates.
Install
eth-bloom on PyPI
pip
pip install eth-bloomuv
uv add eth-bloompoetry
poetry add eth-bloomInstalling eth-bloom
Before you install
Low friction install with a single runtime dependency (eth-hash). Maintenance is dormant—last release was 583 days ago, though the repository remains active with a recent commit on 2025-01-08. Suitable for stable, well-defined use cases but not for packages expecting active development.
License in practice
MIT license (permissive) places no restrictions on use, modification, or distribution in proprietary or open-source projects.
Quickstart
from eth_bloom import BloomFilter
b = BloomFilter()
b.add(b'a value')
if b'a value' in b:
print('Found')
Verify before relying
- Whether eth-hash dependency is available and maintained for the Python versions supported (3.8–3.13)
- Performance characteristics and false-positive rate for typical Ethereum use cases
- Compatibility with current Ethereum protocol versions and client implementations
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (<4,>=3.8) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 1 — eth-hash |
| Maintenance | dormant — 583 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 281,943/month — #8,091 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: eth_bloom-3.1.0-py3-none-any.whl
Keywords: ethereum, blockchain, evm, trie, merkle
Tags
More Software Development packages
Provides backported and experimental type hints…
permissive · top 100 on PyPI
numpyNumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
fastapiFastAPI is a Python web framework for building…
permissive · top 100 on PyPI
annotated-docProvides a way to document function parameters,…
permissive · top 100 on PyPI
typerTyper builds command-line applications from…
permissive · top 1,000 on PyPI
distlibDistlib provides low-level packaging utilities…
permissive · top 1,000 on PyPI
bloom-filter2A pure Python implementation of a Bloom…
permissive · top 15,000 on PyPI
bloomfilter-pyImplements Bloom filters in Python with…
permissive · top 15,000 on PyPI
pybloom-liveImplements Bloom filters—space-efficient…
permissive · top 15,000 on PyPI
trieImplements the Ethereum Merkle Trie data…
permissive · top 15,000 on PyPI
preshedPreshed provides high-performance Cython hash…
permissive · top 1,000 on PyPI
rbloomImplements a Bloom filter data structure in…
unclear · top 15,000 on PyPI
eth-keyfileLoads, creates, and decrypts Ethereum…
permissive · top 5,000 on PyPI
faster-eth-utilsProvides Ethereum utility functions for address…
permissive · top 15,000 on PyPI
eth-testereth-tester provides an in-memory Ethereum…
permissive · top 15,000 on PyPI