Configuring ENSIndexer
ENSIndexer’s behavior can be configured through environment variables.
# RPC configuration# For the RPC URL of each chain, follow the format: RPC_URL_{chainId}={rpcUrl}RPC_URL_1=https://eth.drpc.orgRPC_URL_8453=https://base.drpc.orgRPC_URL_59144=https://linea.drpc.org
# For the RPC rate limits of each chain, follow the format:# RPC_REQUEST_RATE_LIMIT_{chainId}={rateLimitInRequestsPerSecond}# The rate limit is the maximum number of requests per second that can be made# to the RPC endpoint. For public RPC endpoints, it is recommended to set# a rate limit to low values (i.e. below 30 rps) to avoid being rate limited.# For private RPC endpoints, the rate limit can be set to higher values,# depending on the capacity of the endpoint. For example, 500 rps.# If no rate limit is set for a given chainId, the DEFAULT_RPC_RATE_LIMIT value# will be applied.RPC_REQUEST_RATE_LIMIT_1=50RPC_REQUEST_RATE_LIMIT_8453=20RPC_REQUEST_RATE_LIMIT_59144=20
# Database configuration# This is a namespace for the tables that the indexer will create to store indexed data.# It should be a string that is unique to the running indexer instance.## Keeping the database schema unique to the indexer instance is important to# 1) speed up indexing after a restart# 2) prevent data corruption from multiple indexer app instances writing state# concurrently to the same db schema## No two indexer instances can use the same database schema at the same time.## Read more about database schema rules here:# https://ponder.sh/docs/api-reference/database#database-schema-rulesDATABASE_SCHEMA=public# This is the connection string for the database that the indexer will use to store data.# It should be in the format of `postgresql://<username>:<password>@<host>:<port>/<database>`DATABASE_URL=postgresql://dbuser:abcd1234@localhost:5432/my_database
# Deployment Configuration# Identify which ENS Deployment to target (see `@ensnode/ens-deployments` for available deployments)ENS_DEPLOYMENT_CHAIN=mainnet
# Plugin Configuration# Identify which indexer plugins to activate (see `src/plugins` for available plugins)# This is a comma separated list of one or more available plugin names (case-sensitive).ACTIVE_PLUGINS=eth,base,linea
# Unknown label healing# This is the URL of the ENSRainbow server that ENSIndexer will use to heal unknown labels.# If this is not set, DEFAULT_ENSRAINBOW_URL will be used, however,# the best indexing performance requires a colocated deployments of ENSIndexer and# ENSRainbow services to minimize latency. For example, both services should# communicate over the same local network.# Read more about ENSRainbow here:# https://ensrainbow.ioENSRAINBOW_URL=https://api.ensrainbow.io
# The ENSIndexer public service URL# When the root route `/` of ENSIndexer receives a request, ENSIndexer redirects to the configured ENSADMIN_URL with an instruction for that ENSAdmin instance to connect back to this provided URL for querying state about the ENSNode instanceENSNODE_PUBLIC_URL=http://localhost:42069
# The ENSAdmin service URL# When the root route `/` of ENSIndexer receives a request, ENSIndexer redirects to this provided ENSAdmin URL with an instruction for that ENSAdmin instance to connect back to the configured ENSNODE_PUBLIC_URL# If this is not set, DEFAULT_ENSADMIN_URL will be used to provide easy access to an ENSAdmin UI.ENSADMIN_URL=https://admin.ensnode.io
.env.local.example View this file on GitHub.