py-ecc
py-ecc: Elliptic curve crypto in python including secp256k1, alt_bn128, and bls12_381
What it is and what it does
py_ecc provides pure-Python implementations of elliptic curve cryptography for three widely-used curves: secp256k1 (Bitcoin/Ethereum), alt_bn128 (Ethereum 2.0 precompiles), and bls12_381 (modern zero-knowledge proofs and threshold signatures). It depends on eth-typing and eth-utils for type definitions and utility functions.
The package is designed for developers building Ethereum-related tools, zero-knowledge proof systems, or other applications requiring these specific curves. It is explicitly marked as experimental and unaudited, making it suitable for research, testing, and non-critical applications but not for production systems handling real cryptographic material without external security review.
Use it for:
- Building Ethereum wallet or transaction signing tools that need secp256k1 operations.
- Implementing or testing BLS threshold signature schemes for consensus protocols.
- Developing zero-knowledge proof systems that rely on bls12_381 pairings.
- Educational projects exploring elliptic curve mathematics and cryptographic primitives.
- Prototyping Ethereum 2.0 beacon chain operations using alt_bn128 curve math.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Implements elliptic curve cryptography operations for secp256k1, alt_bn128, and bls12_381 curves in pure Python.
Yes, for research, testing, and Ethereum tooling—but with caution. The package is stable enough for non-production use and has low install friction. However, the explicit lack of audit and experimental status mean it should not be used for applications handling real cryptographic secrets or financial transactions without independent security review and careful threat modeling.
Install
py-ecc on PyPI
pip
pip install py-eccuv
uv add py-eccpoetry
poetry add py-eccInstalling py-ecc
Before you install
Low install friction with a pure-Python wheel distribution. Maintenance status is aging—last release was 487 days ago, though the repository remains active with recent commits and moderate community engagement (232 stars).
License in practice
MIT license permits free use, modification, and distribution with minimal restrictions, making it suitable for both open-source and commercial projects.
Quickstart
pip install py_ecc
from py_ecc.secp256k1 import G, curve_order
from py_ecc.bls import G2ProofOfPossession as bls
# Use curve primitives or BLS signing operations
The library is marked as experimental and has not been audited; unsuitable for production cryptographic use without independent security review.
Verify before relying
- Specific performance characteristics or throughput for curve operations at scale.
- Whether the experimental code sections are clearly documented or isolated.
- Current audit status or any post-release security assessments beyond the initial warning.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (<4,>=3.8) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 2 — eth-typing, eth-utils |
| Maintenance | aging — 487 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 1,206,666/month — #4,220 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: py_ecc-8.0.0-py3-none-any.whl
Keywords: ethereum
Tags
More Cryptography packages
Certifi provides Mozilla's curated collection…
copyleft · top 100 on PyPI
cryptographycryptography provides cryptographic recipes and…
permissive · top 100 on PyPI
rsaPure-Python RSA encryption, decryption,…
permissive · top 1,000 on PyPI
pyOpenSSLpyOpenSSL wraps OpenSSL's SSL/TLS functionality…
permissive · top 1,000 on PyPI
azure-identityProvides Microsoft Entra ID token-based…
unclear · top 1,000 on PyPI
PyNaClPyNaCl provides Python bindings to libsodium…
permissive · top 1,000 on PyPI
coincurvecoincurve provides Python bindings to…
permissive · top 5,000 on PyPI
eciespyEncrypts and decrypts data using Elliptic Curve…
permissive · top 15,000 on PyPI
py_arkworks_bls12381Python bindings for BLS12-381 elliptic curve…
permissive · top 15,000 on PyPI
pyhpkePyHPKE implements HPKE (Hybrid Public Key…
permissive · top 15,000 on PyPI
ckzgProvides Python bindings to C-KZG-4844, a…
permissive · top 5,000 on PyPI
ECPyECPy is a pure Python elliptic curve library…
permissive · top 15,000 on PyPI
gmsslPure-Python implementation of SM2, SM3, and SM4…
permissive · top 15,000 on PyPI
galoisGalois extends NumPy arrays to perform…
permissive · top 15,000 on PyPI
lighteccLightECC provides elliptic curve arithmetic…
permissive · top 15,000 on PyPI
crypto-cpp-pyProvides hashing and signing operations for…
unclear · top 15,000 on PyPI