skillfed

eth-bloom

A python implementation of the bloom filter used by Ethereum

eth-bloom v3.1.0 281.9K downloads/30d#8,091 on PyPI56
Permissive license MIT DORMANT released

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-bloom

uv

uv add eth-bloom

poetry

poetry add eth-bloom

Installing 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

Development Status :: 2 - Pre-AlphaIntended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseNatural Language :: EnglishProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9

Tags

ethereum bloom filterbloom filter implementationethereum membership testingbloom filter pythonethereum data structuresprobabilistic set membershipbloom filter merge
ethereumbloom-filtercryptography

More Software Development packages