--- id: ckzg version: "2.1.8" license: Apache-2.0 license_treatment: permissive maintenance: active --- # ckzg — Python bindings for C-KZG-4844 License: permissive · Maintenance: active · Downloads: 6.4M/mo ## What it is and what it does ckzg is a Python binding to C-KZG-4844, a minimal C implementation of the Polynomial Commitments API specified in Ethereum's EIP-4844 (Deneb) and EIP-7594 (Fulu) consensus specifications. It exposes cryptographic functions for KZG commitments, proofs, and verification operations used by Ethereum clients to validate blob data without re-implementing critical cryptographic primitives. The library is designed for use within Ethereum infrastructure and provides functions like blob-to-commitment conversion, proof computation, and batch verification. It relies on blst for BLS12-381 signature operations and has been audited by Sigma Prime (2023) for EIP-4844 and zkSecurity (2025) for EIP-7594. Single-threaded by design for simplicity; batch verification functions offer efficiency gains when processing multiple blobs. Use it for: - Ethereum client implementations validating EIP-4844 blob commitments and proofs during consensus. - Ethereum node software implementing EIP-7594 data availability sampling with cell KZG proof verification. - Research and testing of Ethereum consensus specifications against reference test vectors. - Building Ethereum infrastructure tools that need to verify blob data authenticity without reimplementing KZG. - Batch processing of multiple blob proofs where performance is critical (53% faster per blob in batch mode). ## Worth the install? AI-flagged interpretation of the facts above — verify before relying. Provides Python bindings to C-KZG-4844, a cryptographic library implementing polynomial commitments for Ethereum's EIP-4844 and EIP-7594 specifications. Yes, if you are building Ethereum client software or infrastructure that must validate EIP-4844 or EIP-7594 commitments. The package is actively maintained, audited, has no known vulnerabilities, and avoids the need to reimplement cryptographic functions. Install friction is moderate due to compiled wheels; ensure the trusted setup file is available at runtime. ## Install pip install ckzg uv add ckzg poetry add ckzg ## Installing ckzg Before you install: Medium install friction due to compiled wheel distribution across multiple platforms (cp310–cp312, manylinux, musllinux, macOS arm64, Windows). Active maintenance with recent release 36 days ago and ongoing repository activity. License in practice: Licensed under Apache-2.0 (permissive), allowing commercial and private use with minimal restrictions; suitable for most production and research contexts. Quickstart: pip install ckzg import ckzg # Load trusted setup once during initialization ckzg.load_trusted_setup_file('trusted_setup.txt', precompute=0) # Verify a blob KZG proof ckzg.verify_blob_kzg_proof(blob, commitment, proof) Requires the trusted setup file (trusted_setup.txt) to be available at runtime; precompute parameter affects memory usage and performance trade-offs. Verify before relying: - Whether the package includes or downloads the trusted setup file automatically, or if users must provide it separately. - Exact Python version support range (requires_python is unspecified in metadata). - Performance characteristics on systems other than Apple M1 referenced in benchmarks. ## Package facts - License: Apache-2.0 (permissive) - Python support: unspecified - Install friction: medium - Maintenance: active - Downloads: 6.4M/month (top 5,000 on PyPI) - Known vulnerabilities: none known ## Tags kzg polynomial commitments, eip-4844 blob verification, ethereum cryptography bindings, kzg proof verification, polynomial commitment library, eip-7594 cell proofs, blst bindings python, ethereum consensus specs, ethereum, consensus-specs, kzg-commitments [View on SkillFed](https://skillfed.io/packages/ckzg) · [View on PyPI](https://pypi.org/project/ckzg/)