eRPC is a fault-tolerant EVM RPC proxy with re-org-aware permanent caching. It sits in front of all your upstreams — managed providers and your own nodes — behind a single endpoint, and handles failover, retries, caching, and multi-chain routing automatically. Built for read-heavy workloads such as data indexing and high-load frontends.
With the below setup, you get immediate access to 2,000+ chains and 4,000+ public free EVM RPC endpoints.
Using npx:
npx start-erpcOr, using Docker:
docker run -p 4000:4000 ghcr.io/erpc/erpcOr, using Railway:
curl 'http://localhost:4000/main/evm/42161' \
--header 'Content-Type: application/json' \
--data '{
"method": "eth_getBlockByNumber",
"params": ["latest", false],
"id": 9199,
"jsonrpc": "2.0"
}'This setup is ideal for development and testing purposes. For production environments, we recommend extending your configuration with dedicated premium providers and advanced failover settings. See our Configuration Guide for more details.
- Retries, failover, circuit breakers & hedged requests: every call is routed to the fastest healthy upstream, automatically.
- Re-org-aware permanent cache: serve reads from cache, stay consistent across chain reorgs, and eliminate redundant upstream calls.
- Automatic method routing: no need to track which provider supports which
eth_*method. - Configurable rate limits: set hourly or daily rate limits and compute-unit budgets per upstream to control usage and cost.
- Selection policies: influence which upstreams serve traffic — e.g. cheap-first until error-rate or block-lag thresholds are crossed.
- Consensus & data integrity: compare results across upstreams, enforce consensus, and penalize nodes that disagree or return stale data.
- Unified error handling: consistent, normalized error codes and messages across every provider.
- Flexible authentication: basic auth, secrets, JWT, SIWE and more.
- Smart batching: aggregate multiple RPC or contract calls into one.
- Observability: track throughput (RPS), errors, and latency per upstream from a single Grafana dashboard.
eRPC provides several CLI commands beyond the default server start:
Validate a configuration file (TS, JS, or YAML) and report any errors, warnings, or notices. Useful in CI pipelines to catch misconfigurations before deployment.
erpc validate erpc.yaml
erpc validate erpc.tsParse a configuration file and output the fully resolved configuration with all eRPC defaults applied. Supports YAML and JSON output. This is useful for inspecting what your final config looks like after eRPC fills in all default values (retry policies, timeouts, selection policies, etc.).
# Output as YAML (default)
erpc dump erpc.yaml
# Output as JSON
erpc dump --format json erpc.ts
# Compare two configs (e.g. before/after a migration)
diff <(erpc dump old-config.yaml) <(erpc dump new-config.yaml)- Clone this repository:
git clone https://github.com/erpc/erpc.git- Install Go dependencies:
make setup- Create a configuration file:
cp erpc.dist.yaml erpc.yaml
vi erpc.yaml- Run the eRPC server:
make runBy contributing to this project, you agree that your contributions may be used in both the open-source and enterprise versions of the software. Please review our Contributing Guidelines and Contributor License Agreement before submitting your contributions.
Apache 2.0
