eth-account
eth-account: Sign Ethereum transactions and messages with local private keys
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
eth-account signs Ethereum transactions and messages using local private keys, enabling cryptographic operations for blockchain interactions without relying on external key management.
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
pip
pip install eth-accountuv
uv add eth-accountpoetry
poetry add eth-accountInstalling eth-account
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.
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)
Requires Python 3.8 or later; private key material must be managed securely by the caller.
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 — bitarray, eth-abi, eth-keyfile, eth-keys, eth-rlp, eth-utils, hexbytes, rlp, ckzg, pydantic |
| 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) |
Evidence: eth_account-0.13.7-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
eip712Provides Python message classes for EIP-712…
permissive · top 15,000 on PyPI
eth-testereth-tester provides an in-memory Ethereum…
permissive · top 15,000 on PyPI
itsdangerousItsDangerous cryptographically signs data to…
permissive · top 1,000 on PyPI
signedjsonSigns and verifies JSON objects using ED25519…
unclear · top 15,000 on PyPI
eth-typingProvides standardized type annotations for…
permissive · top 5,000 on PyPI
eth-keysProvides a unified API for Ethereum key…
permissive · top 5,000 on PyPI
cdp-sdkPython client library for the Coinbase…
permissive · top 15,000 on PyPI
bitcoin-utilsA low-level Bitcoin library providing tools to…
permissive · top 15,000 on PyPI
siweImplements EIP-4361 Sign-In with Ethereum for…
permissive · top 15,000 on PyPI
web3web3.py is a Python library for interacting…
permissive · top 5,000 on PyPI