eth-tester
eth-tester: Tools for testing Ethereum applications.
What it is and what it does
eth-tester is an in-memory Ethereum blockchain simulator that lets you test Ethereum applications and smart contracts locally without connecting to a live network. It provides a complete EthereumTester API for account management, transaction submission, block mining, and state queries—all running in Python with deterministic, reproducible behavior.
The library enforces strict input/output formats (hexadecimal strings for hashes and addresses, integers for numeric values) and includes features like auto-mining of transactions, time travel, and manual block mining. It depends on eth-abi, eth-account, eth-keys, eth-utils, rlp, and semantic_version to handle cryptographic operations and data encoding.
Use it for:
- Unit testing smart contracts during development before deployment to testnet or mainnet
- Integration testing Ethereum dApps that interact with multiple accounts and contract state
- Prototyping blockchain logic and validating transaction flows without external dependencies
- Educational projects and tutorials demonstrating Ethereum mechanics in a controlled environment
- Simulating account operations and balance queries in isolation
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
eth-tester provides an in-memory Ethereum blockchain simulator for testing smart contracts and Ethereum applications without needing a live network or node.
Yes, if you are testing Ethereum applications locally. eth-tester is the standard in-memory simulator for the Ethereum Python ecosystem and has low install friction. However, be aware that maintenance is aging (last release 2025-04-23, no recent commits visible) and the pre-alpha classifier suggests it may not be production-hardened; verify test coverage and reliability for your specific use case before relying on it for critical contract validation.
Install
eth-tester on PyPI
pip
pip install eth-testeruv
uv add eth-testerpoetry
poetry add eth-testerInstalling eth-tester
Before you install
Low install friction with a pure-Python wheel and six runtime dependencies. Maintenance status is aging—last release was 2025-04-23 and the repository shows no recent activity, though it remains unarchived and receives modest community attention (376 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 eth-tester
from eth_tester import EthereumTester
t = EthereumTester()
accounts = t.get_accounts()
balance = t.get_balance(accounts[0])
tx_hash = t.send_transaction({
'from': accounts[0],
'to': accounts[1],
'value': 1,
'gas': 30000
})
Verify before relying
- Whether the pre-alpha status (Development Status :: 2) indicates active development or dormancy relative to the aging maintenance signal
- Current test coverage and reliability for production-grade contract testing workflows
- Support for specific transaction types and fee mechanisms beyond basic transaction submission
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (<4,>=3.8) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 6 — eth-abi, eth-account, eth-keys, eth-utils, rlp, semantic_version |
| Maintenance | aging — 478 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 287,304/month — #8,034 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: eth_tester-0.13.0b1-py3-none-any.whl
Keywords: ethereum
Tags
More Testing packages
Pluggy provides a plugin system that lets you…
permissive · top 100 on PyPI
pytestpytest is a testing framework that lets you…
permissive · top 100 on PyPI
virtualenvvirtualenv creates isolated Python environments…
permissive · top 100 on PyPI
coverageCoverage.py measures which lines of Python code…
permissive · top 1,000 on PyPI
pytest-asynciopytest-asyncio is a pytest plugin that enables…
permissive · top 1,000 on PyPI
pytest-json-ctrfA pytest plugin that generates test reports in…
permissive · top 1,000 on PyPI
eth-accounteth-account signs Ethereum transactions and…
permissive · top 5,000 on PyPI
web3web3.py is a Python library for interacting…
permissive · top 5,000 on PyPI
mythrilMythril analyzes EVM bytecode for security…
permissive · top 15,000 on PyPI
etherscan-pythonProvides a complete Python client for…
permissive · top 15,000 on PyPI
eth-brownieBrownie is a Python framework for developing,…
permissive · top 15,000 on PyPI
eth-bloomImplements Ethereum's bloom filter algorithm…
permissive · top 15,000 on PyPI
py-evmPy-EVM is a Python implementation of the…
permissive · top 15,000 on PyPI
eth-keysProvides a unified API for Ethereum key…
permissive · top 5,000 on PyPI
trieImplements the Ethereum Merkle Trie data…
permissive · top 15,000 on PyPI
pact-pythonPact Python implements consumer-driven contract…
permissive · top 5,000 on PyPI