eth-retry
Provides a decorator that automatically catches known transient exceptions that are common in the Ethereum/EVM ecosystem and reattempts to evaluate your decorated function
Decision gist · record as of 2026-08-14
Yes. eth_retry solves a real pain point in Ethereum development with zero dependencies, active maintenance, and a permissive license. If you write code that calls blockchain RPCs or external APIs, this decorator will save you from writing boilerplate retry logic and help you handle transient failures gracefully.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.10 or later; configure MAX_RETRIES, MIN_SLEEP_TIME, and MAX_SLEEP_TIME via environment variables if defaults don't suit your use case.
- Low friction: pure Python wheel with no runtime dependencies.
- Active maintenance with a recent release (5 days old) and current Python version support.
License · maintenance · safety
MIT (permissive) — MIT license is permissive; you can use this freely in commercial and private projects with minimal restrictions.
last release 2026-08-09 (5 days) · last repo commit 2026-08-09 · 11 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 158,377 downloads/mo, #10,726 on PyPI
Alternatives
Verify before relying
import eth_retry
@eth_retry.auto_retry
def call_rpc():
# function that may fail transiently
return result
error_free_result = call_rpc()- Whether the decorator preserves function signatures and return type hints for IDE/type-checker support.
- Performance overhead of the decorator when applied to frequently-called functions.
- Exact list of eth-brownie-specific errors beyond sqlite3.OperationalError that are caught.
What it is and what it does
eth_retry is a single-decorator library for catching and retrying transient failures in Ethereum and EVM ecosystem code. It wraps functions (both sync and async) with automatic retry logic that catches known ephemeral errors like RPC timeouts, rate-limiting responses, and connection failures. When a decorated function fails, eth_retry sleeps for a randomized backoff period (scaled by retry count) before trying again, up to a configurable maximum number of attempts. This is especially useful in blockchain development where external APIs and nodes frequently experience temporary outages or rate limits.
The library requires no external dependencies and is configured entirely through environment variables: MAX_RETRIES (default 10), MIN_SLEEP_TIME (default 10 seconds), and MAX_SLEEP_TIME (default 20 seconds). The randomized sleep window helps prevent thundering-herd problems when multiple parallel requests retry simultaneously.
Use it for
- Wrap RPC calls to Ethereum nodes to tolerate temporary network or node unavailability without manual retry logic.
- Decorate block explorer API queries to handle rate-limiting transparently and resume after backoff.
- Protect eth-brownie scripts from sqlite3 database lock errors during concurrent operations.
- Simplify error handling in async functions that call external blockchain services.
- Add resilience to data-fetching functions in monitoring or indexing jobs without rewriting control flow.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
eth_retry solves a real pain point in Ethereum development with zero dependencies, active maintenance, and a permissive license. If you write code that calls blockchain RPCs or external APIs, this decorator will save you from writing boilerplate retry logic and help you handle transient failures gracefully.
Install
eth-retry on PyPI
Before you install
Low friction: pure Python wheel with no runtime dependencies. Active maintenance with a recent release (5 days old) and current Python version support.
Requires Python 3.10 or later; configure MAX_RETRIES, MIN_SLEEP_TIME, and MAX_SLEEP_TIME via environment variables if defaults don't suit your use case.
License in practice
MIT license is permissive; you can use this freely in commercial and private projects with minimal restrictions.
Quickstart
import eth_retry
@eth_retry.auto_retry
def call_rpc():
# function that may fail transiently
return result
error_free_result = call_rpc()
Verify before relying
- Whether the decorator preserves function signatures and return type hints for IDE/type-checker support.
- Performance overhead of the decorator when applied to frequently-called functions.
- Exact list of eth-brownie-specific errors beyond sqlite3.OperationalError that are caught.
Package facts
| License | MIT permissive |
| Python support | Supports the current Python release <4,>=3.10 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | None |
| Maintenance | Actively maintained 5 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 158,377 / month, #10,726 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | License :: OSI Approved :: MIT LicenseProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14 |
Evidence: eth_retry-0.3.8-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 retry decorator”
- eth-retryA decorator that automatically retries functions when they encounter…
- retryProvides a decorator and function wrapper for retrying failed…
- python-retryProvides a decorator to automatically retry failed function calls…
Give your agent the search over MCP, or paste the wish link into any chat.
More Software Development packages
Provides backported and experimental type hints for Python 3.9+, allowing use of newer typing features on older Python versions and enabling early experimentation with type system PEPs before they enter the standard library.
NumPy provides an N-dimensional array object and a comprehensive suite of mathematical, linear algebra, Fourier transform, and random number functions for scientific computing in Python.
FastAPI is a Python web framework for building REST APIs using type hints, with automatic request validation, serialization, and interactive API documentation.
Provides a way to document function parameters, class attributes, return types, and variables inline using Python's `Annotated` type hint syntax instead of traditional docstrings.
Typer builds command-line applications from Python functions using type hints, automatically generating help text, argument parsing, and shell completion.
Install it if you are building CLIs in Python.
Distlib provides low-level packaging utilities for building, distributing, and managing Python software—including metadata handling, version specifiers, wheel support, script installation, and dependency resolution.
See also reretry · python-retry · awsretry · retry · retry2 · retryhttp · stamina · eth-brownie · retrying · redo