Skip to content

morpho-org/erpc

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,575 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

eRPC Hero

Build Status Docs License Contributors Telegram

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.

Architecture Diagram


Quick Start

With the below setup, you get immediate access to 2,000+ chains and 4,000+ public free EVM RPC endpoints.

Run an eRPC instance:

Using npx:

npx start-erpc

Or, using Docker:

docker run -p 4000:4000 ghcr.io/erpc/erpc

Or, using Railway:

Deploy on Railway

Send a request to your eRPC instance:

curl 'http://localhost:4000/main/evm/42161' \
--header 'Content-Type: application/json' \
--data '{
    "method": "eth_getBlockByNumber",
    "params": ["latest", false],
    "id": 9199,
    "jsonrpc": "2.0"
}'

Next Steps:

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.


Key Features

  • 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.

Case Studies


CLI Commands

eRPC provides several CLI commands beyond the default server start:

erpc validate <config-file>

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.ts

erpc dump <config-file>

Parse 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)

Local Development

  1. Clone this repository:
git clone https://github.com/erpc/erpc.git
  1. Install Go dependencies:
make setup
  1. Create a configuration file:
cp erpc.dist.yaml erpc.yaml
vi erpc.yaml
  1. Run the eRPC server:
make run

Contributors

Contributors

By 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.


License

Apache 2.0

About

eRPC — fault-tolerant evm rpc proxy

Resources

License

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors

Languages

  • Go 91.2%
  • JavaScript 4.0%
  • TypeScript 2.0%
  • CSS 1.1%
  • Shell 0.9%
  • Python 0.6%
  • Other 0.2%