py-ecc
py-ecc: Elliptic curve crypto in python including secp256k1, alt_bn128, and bls12_381
Decision gist · record as of 2026-08-14
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.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- The library is marked as experimental and has not been audited; unsuitable for production cryptographic use without independent security review.
- 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 · maintenance · safety
MIT (permissive) — MIT license permits free use, modification, and distribution with minimal restrictions, making it suitable for both open-source and commercial projects.
last release 2025-04-14 (487 days) · last repo commit 2025-12-17 · 232 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 1,206,666 downloads/mo, #4,220 on PyPI
Alternatives
Verify before relying
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- 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.
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 on it.
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
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).
The library is marked as experimental and has not been audited; unsuitable for production cryptographic use without independent security review.
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
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 packageseth-typingeth-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 |
| Classifiers | Development Status :: 3 - 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 |
Evidence: py_ecc-8.0.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “secp256k1 implementation”
- py-eccImplements elliptic curve cryptography operations for secp256k1,…
- ECPyECPy is a pure Python elliptic curve library providing ECDSA, EdDSA…
- ecdsaPure-Python implementation of ECDSA, EdDSA, and ECDH cryptographic…
Give your agent the search over MCP, or paste the wish link into any chat.
More Cryptography packages
Certifi provides Mozilla's curated collection of root SSL certificates for Python applications to validate TLS hosts and verify certificate trustworthiness.
cryptography provides cryptographic recipes and low-level primitives for symmetric encryption, message digests, key derivation, and other common cryptographic algorithms in Python.
Pure-Python RSA encryption, decryption, signing, and key generation following PKCS#1 v1.5, with command-line and library interfaces.
pyOpenSSL wraps OpenSSL's SSL/TLS functionality for Python, providing high-level connection objects and certificate handling through a Python-friendly interface around OpenSSL's cryptographic operations.
Provides Microsoft Entra ID token-based authentication for Azure SDK clients through a set of TokenCredential implementations that handle OAuth flows and managed identity support.
PyNaCl provides Python bindings to libsodium for digital signatures, secret-key and public-key encryption, hashing, message authentication, and password-based key derivation.
See also coincurve · eciespy · py_arkworks_bls12381 · pyhpke · ckzg · ECPy · gmssl · galois · lightecc · crypto-cpp-py