eth-account
eth-account: Sign Ethereum transactions and messages with local private keys
Decision gist · record as of 2026-08-14
Yes, if you need to sign Ethereum transactions or messages with local private keys. The package is actively maintained, has no known vulnerabilities, carries a permissive MIT license, and integrates with the broader Ethereum Python ecosystem. Install friction is low. The Alpha status is not a blocker—the library is stable and widely used—but review release notes before upgrading in production.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.8 or later; private key material must be managed securely by the caller.
- Low install friction with a pure Python wheel distribution.
- Active maintenance as of 2026-07-10 with regular commits; supports Python 3.8 through 3.13.
License · maintenance · safety
MIT (permissive) — MIT license permits commercial and private use with minimal restrictions; you must include the license text in distributions but face no copyleft obligations.
last release 2025-04-21 (480 days) · last repo commit 2026-07-10 · 312 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 7,271,790 downloads/mo, #1,759 on PyPI
Alternatives
Verify before relying
pip install eth-account
from eth_account import Account
account = Account.create()
signed_message = account.sign_message(message)- Whether the package handles hardware wallet integration or is limited to software-based key management.
- Performance characteristics when signing large batches of transactions.
- Specific security audit history or third-party cryptographic review status.
What it is and what it does
eth-account is a Python library for signing Ethereum transactions and messages using private keys stored locally. It handles the cryptographic operations needed to authorize blockchain transactions without delegating key management to external services. The package depends on eth-keys, eth-abi, eth-rlp, eth-utils, bitarray, hexbytes, rlp, ckzg, and pydantic to perform low-level signing and encoding.
The library is intended for developers building Ethereum applications that need to sign transactions or messages programmatically. It sits at the intersection of key management and transaction construction, assuming you already have private keys and need to prove ownership or authorize actions on the blockchain. The Alpha classifier reflects ongoing development, but the package has maintained stability since its 2018 inception and remains actively maintained.
Use it for
- Sign Ethereum transactions locally before broadcasting them to a network node or service.
- Create message signatures for authentication or authorization workflows in decentralized applications.
- Build automated scripts that need to sign transactions without exposing keys to external services.
- Integrate private-key-based signing into wallet or custodial software.
- Verify signatures on Ethereum messages for identity or ownership proof.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you need to sign Ethereum transactions or messages with local private keys.
The package is actively maintained, has no known vulnerabilities, carries a permissive MIT license, and integrates with the broader Ethereum Python ecosystem. Install friction is low. The Alpha status is not a blocker—the library is stable and widely used—but review release notes before upgrading in production.
Install
eth-account on PyPI
Before you install
Low install friction with a pure Python wheel distribution. Active maintenance as of 2026-07-10 with regular commits; supports Python 3.8 through 3.13.
Requires Python 3.8 or later; private key material must be managed securely by the caller.
License in practice
MIT license permits commercial and private use with minimal restrictions; you must include the license text in distributions but face no copyleft obligations.
Quickstart
pip install eth-account
from eth_account import Account
account = Account.create()
signed_message = account.sign_message(message)
Verify before relying
- Whether the package handles hardware wallet integration or is limited to software-based key management.
- Performance characteristics when signing large batches of transactions.
- Specific security audit history or third-party cryptographic review status.
Package facts
| License | MIT permissive |
| Python support | Supports the current Python release <4,>=3.8 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 10 packagesbitarrayeth-abieth-keyfileeth-keyseth-rlpeth-utilshexbytesrlpckzgpydantic |
| Maintenance | Actively maintained 480 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 7,271,790 / month, #1,759 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: eth_account-0.13.7-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 › “ethereum transaction signing”
- eth-accounteth-account signs Ethereum transactions and messages using local…
- py-builder-relayer-clientA Python client library for submitting transactions and interacting…
- eth-keysProvides a unified API for Ethereum key operations including private…
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 eip712 · eth-tester · itsdangerous · signedjson · eth-typing · eth-keys · cdp-sdk · bitcoin-utils · siwe · web3