What this MRC is proposing
A draft MRC for a permissionless on-chain registry of validator metadata. Each validator’s authority address — as already known to the staking precompile — can publish a record containing their name, website, description, logo, socials, and a forward-compatible JSON extension blob, keyed to the validatorId.
The problem it solves
The staking precompile knows what consensus needs — validator IDs, authority addresses, stake, commission — but nothing humans can read. Today every wallet, explorer, dashboard, and delegation tool solves this independently: maintain your own metadata.json file, scrape socials, ask validators directly. The result is fragmented naming across the ecosystem and a quiet concentration of “who gets to label validator N” in whoever happens to be curating the list a user is looking at.
A registry contract where validators publish their own metadata is the obvious fix. No protocol change needed — it’s a pure application-layer addition. The value of the standard is that wallets, explorers, governance UIs, and indexers can all read from a single shape.
The interface
The MRC defines IValidatorMetadata:
- A Metadata struct with name, website, description, logo, socials, additionalInfo.
- setMetadata (write the whole record) and updateMetadataField (update one field).
- A MetadataUpdated event on every write.
- Read methods for the stored record plus convenience getters.
socials and additionalInfo are stored as JSON-by-convention strings: the registry doesn’t parse or validate them, so writers and consumers carry the schema. socials is suggested as a JSON object keyed by lowercase platform identifier ("x", "telegram", …) so the spec doesn’t bake in today’s platforms; additionalInfo is open-schema for downstream MRCs to layer structured extensions on top.
A few design choices worth highlighting
Authority address as the baseline writer, not the sole writer: The validator’s authority address must be accepted; implementations may extend the writer set — delegated keys, multisigs, governance contracts — under their own rules. Forcing teams to touch the staking key just to update a logo URL is the kind of friction that pushes people back to off-chain curation, which is the worst of both worlds.
No canonical implementation, no curator: The MRC defines the interface; integrators and validators pick which conformant deployment(s) to use. The authors will deploy a reference implementation for their own use, but the MRC does not anoint it, and neither Monad Foundation nor any affiliate acts as a curator of validator metadata.
JSON, not custom encodings: Off-chain consumers in this space already speak JSON. Pinning a serialized struct or a binary format would force everyone through extra plumbing for marginal gain, and would lock the schema in ways that prevent forward-compatible extensions.
Immutable contract, no upgrade path: Future MRCs that change the storage layout or interface deploy at new addresses. The standard does not promise a stable address over time; integrators track which deployments they consider current themselves.
Read the full draft
Comments, critiques, and integration questions welcome in this thread.