Skip to main content
The relay is configured through environment variables, typically supplied via a .env file at the project root or set directly in the container runtime. The variables below cover the ones you’re most likely to need. The relay supports well over a hundred variables in total; for the complete list with defaults, see docs/configuration.md in the repo.

Network selection

Operator account

The operator account pays for the relay’s submitted transactions. It does not need a large balance unless you’re serving high write volume.

Listening interface

For the WebSocket server, use the .env.ws.example template; it ships with its own port and host settings on port 8546 by default.

Rate limiting

IP-based rate limiting is disabled by default. Set RATE_LIMIT_DISABLED=false to turn it on; the relay then applies three tiers, each covering a different cost class of method. Tune these based on traffic and how much operator HBAR you’re willing to spend on writes.

Caching

The relay caches mirror node responses to absorb burst read traffic. For Redis-backed caching across multiple relay instances, see the REDIS_* variables in the repo’s reference table.

Sanity-check a configuration

After editing variables, restart the relay and confirm chain ID and a simple read both work:
If both return non-error JSON, the relay is reading from the mirror node correctly.

See also

Setup

Initial install and Docker Compose bring-up.