Runtime for an ACTIVE chain (null if the chain is unclassified or absent).
Standardized, chain-config-driven address validation: the chain must be
ACTIVE with a known runtime, and the address must be valid for that runtime.
Returns the canonical normalized address + runtime. The single server-side
entry point used by every flow that accepts a wallet address (payment
instruments, withdrawals, …) so a new chain added via the admin /chains
page is validated with no code change.
Cached read surface over
b2b.chain— the runtime source of truth for the chains we do business with. Reused by wallet/token/withdrawal flows and the dashboards instead of a hard-coded chain list. Writes go through ChainConfigAdminService, which busts the snapshot this caches.