Configuration ownership
Checked-in environment examples are schemas, not deployable values. Railway sealed variables own runtime values; deployment identity JSON owns chain/address configuration; service profiles own commands, health checks, and replica policy.Sensitivity classes
Shared identity and telemetry
The deployment identity artifact supersedes individually supplied chain/address values in qualified
environments. Every service must receive the exact same artifact for a release.
API
Source schema:apps/api/.env.example and apps/api/src/config.ts.
Indexer
Source schema:apps/indexer/.env.example and apps/indexer/src/config.ts.
Only indexer/Ponder may use the log-range configuration.
Keeper roles
Each role’s authoritative schema is the matching file inapps/keeper/env. Cross-service ownership
and public environment identity live in deploy/platform.ts; service parsers remain authoritative
for runtime validation, and secrets remain exclusively in the environment manager.
Startup rejects
SIGNER_KEYS for engine and auditor. Never reuse a keyring, signer pool, source token,
or metrics token across roles or environments.
Market data and frontend
Market-data configuration is owned byapps/market-data/.env.example: source mode/origin and cache,
circuit, notional, depth-band, freshness, four distinct route tokens, metrics token, and telemetry.
Route and metrics tokens are secret; numeric normalization policy is public. Production uses
independently governed sources rather than treating replicas as source diversity.
Frontend runtime configuration is generated from the public testnet API origin
https://api.testnet.tayho.io, a Dynamic environment ID, an origin-restricted
Alchemy HyperEVM endpoint, and a bounded Gas Manager policy ID. The frontend
defaults to standard paymaster sponsorship; Bundler Sponsored Operations must
be enabled explicitly because that Alchemy mode is beta.
It receives no private service origin, database/Redis value, internal engine token, receipt secret,
or worker signer.
The reviewed provider-side ceiling is
deploy/alchemy/gas-policy.expected.json. Enable the
Alchemy Gas Manager policy workflow only after adding an environment-scoped
ALCHEMY_ADMIN_API_KEY; an RPC endpoint key is not an Admin API credential. The live verifier uses
Alchemy’s Get Policy Admin API
and fails closed when global, per-sender, per-operation, or operation-count limits are absent or
above the reviewed maximum. Application quotas remain a second independent boundary.
Change procedure
- Change the parser/type and its tests.
- Update the owning
.env.examplewithout a resolved value. - Update the Railway JSON profile or release wiring when shape changes.
- Update this registry and the affected architecture/runbook.
- Roll development, prove readiness and failure behavior, then qualify production.
bun run rpc:qualify with the candidate provider variables. The
report probes chain identity, head and block availability, read calls, nonce/receipt lookup, the
provider-specific eth_getLogs range, and sampled log-to-block transaction consistency. Reports
contain provider IDs but never endpoint URLs.