arkd is configured via environment variables. This page documents settings that affect runtime behavior, gRPC transport, and API performance.
All variables are passed as environment variables.
gRPC Transport
MAX_CONCURRENT_STREAMS
Controls the maximum number of concurrent HTTP/2 streams allowed per gRPC connection.
When to tune this:
- High-traffic operators serving many simultaneous clients should increase this value.
- Setting it to
0is invalid and will preventarkdfrom starting (validation error at boot).
As of arkd PR #978, both the secure and insecure gRPC listeners respect this setting. Prior to this change, the HTTP/2 server used the Go default.
Split Unary vs. Streaming Connections
arkd internally routes unary RPCs and server-side streaming RPCs through separate gRPC transports. This is an implementation detail — no configuration is required — but it has observable effects:
- Health checks use the unary transport. They remain responsive even when streaming connections experience backpressure or reconnects.
GetEventStream/GetTransactionsStreamuse the streaming transport with jittered reconnect backoff.- The admin service (wallet operations, config updates) runs on a dedicated gateway separate from the public client endpoints.
GetInfo Caching
GetInfo responses are now cached in memory at startup to reduce database load on high-frequency calls.
Cache behavior
What is cached:
- Dust amounts and min/max UTXO/VTXO amounts
- Scheduled session configuration (round intervals, expiry delays)
- Fee formula parameters
- Server signer public key and network type
- Market hours configuration
- Real-time VTXO states and balances (always queried live)
- Transaction history
If you update server configuration outside of the standard admin RPCs (e.g., by directly modifying the database), call
RefreshInfoCache via the admin API to ensure GetInfo returns up-to-date values.Other Notable Environment Variables
For reference, the full list of environment variables is defined ininternal/config/config.go. Key variables include:
All environment variables require the
ARKD_ prefix.