Requirements
- Go 1.26+
- PostgreSQL
- Redis
- An RPC endpoint per chain you intend to support
How config is loaded
Configuration comes from two places: a.env file and the process environment. Both
are read, and environment variables win where a key is defined in both.
The .env file is a convenience for local development and is entirely optional.
Anywhere the environment already supplies these values, such as a container or a
systemd unit using EnvironmentFile=, no file needs to exist on disk.
Variables
PORT has no default, so set it explicitly.
RPC endpoints
Each chain needs its own<CHAIN>_RPC_URL, named after the chain. Only configure the
ones you intend to serve: seeding makes live RPC calls per chain, and an endpoint that
doesn’t respond produces a non-fatal warning and leaves that chain without pools.
Observability
OpenTelemetry export is off unlessOTEL_ENABLED is set. With it on, OTEL_ENDPOINT,
OTEL_USE_TLS and OTEL_HEADERS configure the OTLP exporter. The repository ships a
docker-compose.otel.yml and an otel-collector-config.yaml for running a collector
locally.
Rate limiting
The proxy-related variables need care: both must be set together, or startup fails.