Config
Providers

Providers

Providers make it easy to add well-known third-parties RPC endpoints quickly. Here are the supported providers:

  • repository A special provider to automatically add "public" RPC endpoints for 2,000+ EVM chains.
  • alchemy Accepts alchemy.com api key and automatically adds all their EVM chains.
  • drpc Accepts drpc.org api key and automatically adds all their EVM chains.
  • blastapi Accepts blastapi.io api key and automatically adds all their EVM chains.
  • thirdweb Accepts thirdweb.com client-id and automatically adds all their EVM chains.
  • infura Accepts infura.io api key and automatically adds all their EVM chains.
  • envio Accepts envio.dev rpc endpoint and automatically adds all chains by HyperRPC.
  • pimlico Accepts pimlico.io rpc endpoint for account-abstraction (ERC-4337) support.
  • etherspot Accepts etherspot.io rpc endpoint for account-abstraction (ERC-4337) support.

eRPC supports any EVM-compatible JSON-RPC endpoint when using evm type.

Simple endpoints

repository

This special provider read a remote repository (a simple JSON file) that contains a list of RPC endpoints for any EVM chain. This allows automatic and lazy-loading of EVM chains on "first request":

⚠️

eRPC design aims to be robust towards any number of endpoints in terms of failures or response times, but it is recommended to test before you use this provider in production.

erpc.yaml
# ...
projects:
  - id: main
    # ...
    upstreams:
      - endpoint: repository://evm-public-endpoints.erpc.cloud

eRPC team regularly updates an IPFS file containing 4,000+ public endpoints from chainlist.org (opens in a new tab), chainid.network (opens in a new tab) and viem library (opens in a new tab), which is pointed to by https://evm-public-endpoints.erpc.cloud (opens in a new tab) domain.

alchemy

Built for Alchemy (opens in a new tab) 3rd-party provider to make it easier to import "all supported evm chains" with just an API-KEY.

erpc.yaml
# ...
projects:
  - id: main
    # ...
    upstreams:
      - id: my-alchemy
        endpoint: alchemy://YOUR_ALCHEMY_API_KEY
        # ...

drpc

Built for dRPC (opens in a new tab) 3rd-party provider to make it easier to import "all supported evm chains" with just an API-KEY.

erpc.yaml
# ...
projects:
  - id: main
    # ...
    upstreams:
      - id: my-drpc
        endpoint: drpc://YOUR_DRPC_API_KEY
        # ...

blastapi

Built for BlastAPI (opens in a new tab) 3rd-party provider to make it easier to import "all supported evm chains" with just an API-KEY.

erpc.yaml
# ...
projects:
  - id: main
    # ...
    upstreams:
      - id: my-blastapi
        endpoint: blastapi://YOUR_BLASTAPI_API_KEY
        # ...

infura

Built for Infura (opens in a new tab) 3rd-party provider to make it easier to import "all supported evm chains" with just an API-KEY.

erpc.yaml
# ...
projects:
  - id: main
    # ...
    upstreams:
      - id: my-infura
        endpoint: infura://YOUR_INFURA_API_KEY
        # ...

thirdweb

Built for Thirdweb (opens in a new tab) 3rd-party provider to make it easier to import "all supported evm chains" with just a CLIENT-ID.

erpc.yaml
# ...
projects:
  - id: main
    # ...
    upstreams:
      - id: my-thirdweb
        endpoint: thirdweb://YOUR_THIRDWEB_CLIENT_ID
        # ...

For production traffic consult with Thirdweb team about the chains you are goin to use and amount of traffic you expect to handle.

envio

Envio HyperRPC (opens in a new tab) service provides a higher-performance alternative for certain read methods. When handling requests if a method is supported by HyperRPC (opens in a new tab), then this upstream may be used.

erpc.yaml
# ...
projects:
  - id: main
    # ...
    upstreams:
      - id: envio-public
        endpoint: envio://rpc.hypersync.xyz
        # ...

For indexing use-cases it is recommended to this upstream. This will automatically add all supported EVM chains by HyperRPC.

pimlico

Pimlico (opens in a new tab) adds account-abstraction (ERC-4337) support to your eRPC instance. With this upstream added when a AA-related request arrives it'll be forwarded to Pimlico, which allows you to use the same RPC endpoint for both usual eth_* methods along with ERC-4337 methods.

erpc.yaml
# ...
projects:
  - id: main
    # ...
    upstreams:
      - id: pimlico-public
        endpoint: pimlico://public
        # Or provide your API-KEY as:
        # endpoint: pimlico://xxxxxmy-api-key
        # ...

etherspot

Etherspot (opens in a new tab) adds account-abstraction (ERC-4337) support to your eRPC instance. With this upstream added when a AA-related request arrives it'll be forwarded to Etherspot, which allows you to use the same RPC endpoint for both usual eth_* methods along with ERC-4337 methods.

erpc.yaml
# ...
projects:
  - id: main
    # ...
    upstreams:
      - id: etherspot-public
        endpoint: etherspot://public
        # Or provide your API-KEY as:
        # endpoint: etherspot://xxxxxmy-api-key
        # ...

Advanced config

You can use dedicated providers: config to customize per-network configurations (e.g. different config for Alchemy eth-mainnet vs Alchemy polygon) as follows:

erpc.yaml
# ...
projects:
  - id: main
    # ...
    providers:
      - id: alchemy-prod # (optional) Unique ID that will be prefixed to the dynamically generated upstream ID
        vendor: alchemy  # (REQUIRED) Defines the provider type
        settings:        # (optional) Provider-specific settings
          apiKey: xxxxx
        onlyNetworks:    # (optional) If you want to limit the lazy-loaded networks (instead of loading all supported chains)
          - evm:1
          - evm:137
        # (optional) If you want to customize the dynamically generated upstream ID
        upstreamIdTemplate: "<PROVIDER>-<NETWORK>"
        # (optional) Customize upstream configs for specific networks:
        #   - The key must be a networkId, and it supports matcher syntax (https://docs.erpc.cloud/config/matcher).
        #   - The value is a typical upstream config (https://docs.erpc.cloud/config/projects/upstreams#config).
        overrides:
          "evm:1":
            rateLimitBudget: # ...
            jsonRpc: # ...
            ignoreMethods: # ...
            allowMethods: # ...
            failsafe: # ...
          "evm:*":
            failsafe: # ...
          "evm:123|evm:10":
            failsafe: # ...

Vendor settings reference

Here is a reference of all the settings you can use for each vendor:

erpc.yaml
# ...
providers:
  - vendor: alchemy
    settings:
      apiKey: xxxxx
  - vendor: blastapi
    settings:
      apiKey: xxxxx
  - vendor: drpc
    settings:
      apiKey: xxxxx
  - vendor: envio
    settings:
      rootDomain: xxxxx # (optional) default: rpc.hypersync.xyz
  - vendor: etherspot
    settings:
      apiKey: xxxxx
  - vendor: infura
    settings:
      apiKey: xxxxx
  - vendor: llama
    settings:
      apiKey: xxxxx
  - vendor: pimlico
    settings:
      apiKey: xxxxx # can be "public" or your API-KEY
  - vendor: thirdweb
    settings:
      clientId: xxxxx
  - vendor: repository
    settings:
      repositoryUrl: https://evm-public-endpoints.erpc.cloud
      recheckInterval: 1h # How often to recheck the repository for newly added RPC endpoints