In a MESC configuration, the global_metadata, profile_metadata, and endpoint_metadata fields allow for optional or idiosyncratic metadata to be stored alongside the core RPC data.

Tools using MESC can choose to ignore these fields.

Metadata fields

Contents of MESC metadata is only loosely specified. This is intentional to allow for some degree of future-proofing. It enables MESC to handle use-cases that are either unanticipated or highly-specific to a given tool.


Endpoint metadata

keyvalue typedescriptionexamples
rate_limit_rpsint or floatratelimit in requests per second250
rate_limit_cupsint or floatratelimit in CUPS1000
rate_limit_per_methodMapping[str, int or float]ratelimit in RPS for each method{"trace_block": 200}
api_keystrapi keya2798f237a2398rf7
jwt_secretstrjwt secret
hoststrname of provider host"llamanodes", "alchemy", "quicknode", "localhost"
ecosystemstrecosystem of chain, (e.g. relates mainnets to testnets)"ethereum", "polygon"
node_clientstrversioned node clienterigon/2.48.1/linux-amd64/go1.20.5 reth/v0.1.0-alpha.10-7b781eb60/x86_64-unknown-linux-gnu
namespacesSequence[str]RPC name spaces enabled for endpoint["eth", "trace, "debug"]
explorerstrblock explorer url
locationstrgeographic regionParis, France
cloud_regionstrcloud provider regionaws-us-east-1a
labelsSequence[str]tagsprivate_mempool, cache, archive, consensus_layer, execution_layer, validator, ephemeral

Global Metadata and Profile Metadata

keyvalue typedescriptionexamples
last_modified_bystrversioned tool used to create configurationmesc__1.0
last_modified_timeinttimestamp of config modification1700200462
creation_timeinttimestamp of config creation1700200462
api_keysMapping[str, str]API keys to RPC-related services{"etherscan": "abc123"}
groupsMapping[str, Sequence[str]]groupings of endpoints, mapping of group name to list of endpoint names{"load_balancer": ["alchemy_optimism", "quicknode_optimism"]}
concealboolwhether tool should avoid casually revealing private RPC url's unpromptedtrue