xerberus.mappings
Documentation for eth_defi.xerberus.mappings Python module.
Mapping between our vault protocol slugs and Xerberus protocol entity ids.
Pools match by (chain_id, address) and need no mapping. Protocol-level
fallback and the top-level xerberus_protocols export use this table.
Unmapped protocols (value None) have no known Xerberus equivalent after
an agent review of the live registry. Missing keys are treated as unmapped
by callers that use .get(slug).
Do not invent mappings with regex, normalised string equality, or
fuzzy name matching. Xerberus entity ids (morpho-v1, spark-savings-v2,
usd-ai, …) are curated identifiers; agents must inspect registry rows
(and product identity) before editing this table. See
README-xerberus.md (Protocol mappings).
Module Attributes
Mapping from our vault protocol slug to Xerberus protocol |
|
Xerberus registry protocol |
Functions
Build Xerberus entity id → our protocol slug reverse map. |
- XERBERUS_PROTOCOL_MAPPINGS: dict[str, str | None] = {'aave': 'aave-v3', 'altura': 'altura-v1', 'cap': 'cap-v1', 'd2-finance': 'd2-finance', 'dolomite': 'dolomite', 'ember': 'ember-v1', 'ethena': 'ethena-v1', 'euler': 'euler-v2', 'fluid': 'fluid-v1', 'frankencoin': 'frankencoin', 'gearbox': 'gearbox-v3', 'infinifi': 'infinifi-v1', 'ipor-fusion': 'ipor-fusion-v1', 'lagoon-finance': 'lagoon-v0', 'maple': 'maple-v2', 'midas': 'midas-v1', 'morpho': 'morpho-v1', 'ostium': 'ostium', 'royco': 'royco-dawn-v1', 'securitize': 'securitize-v1', 'silo-finance': 'silo-v2', 'spark': 'spark-v1', 'spiko': 'spiko', 'usdai': 'usd-ai', 'yearn': None}
Mapping from our vault protocol slug to Xerberus protocol
entity_id.Nonemeans the registry was inspected and no Xerberus equivalent is known.A string value is the Xerberus registry protocol id from
GET /registry/scores?type=protocol.Each mapping has a comment with the date and how it was confirmed.
Reviewed against live registry 2026-07-25 (50 protocol entities).
- XERBERUS_UNMAPPED_PROTOCOL_REASONS: dict[str, str] = {'across-v3': 'Cross-chain bridge; we have no Across vault-protocol metadata slug.', 'chainlink': 'Oracle / data infrastructure; not a vault protocol in our metadata set.', 'circle': 'Circle issuer entity; our circle-usyc / usyc metadata is the USYC product, not generic Circle, so we do not map either slug to this registry row.', 'compound-v3': 'Compound v3; we have no compound vault-protocol metadata slug.', 'convex-v1': 'Convex Finance; we have no convex vault-protocol metadata slug.', 'curve-v2': 'Curve Finance; we have no curve vault-protocol metadata slug (llama-lend is a different product and must not be aliased here).', 'digift-v1': 'DigiFT; we have no digift vault-protocol metadata slug.', 'ebisu-v1': 'Ebisu Finance; we have no ebisu vault-protocol metadata slug.', 'eigenlayer': 'Restaking infrastructure; we have no EigenLayer vault-protocol metadata slug.', 'gmx-v2': 'GMX V2; we have no gmx vault-protocol metadata YAML in this repository.', 'hop-protocol': 'Cross-chain bridge; we have no Hop vault-protocol metadata slug.', 'kelp': 'Kelp liquid restaking; we have no kelp vault-protocol metadata slug.', 'knox-finance': 'Knox; we have no knox vault-protocol metadata slug.', 'layerzero-v2': 'Messaging / interoperability infrastructure; not a vault protocol slug we track.', 'lido-v2': 'Lido liquid staking; we have no lido vault-protocol metadata slug.', 'makina-finance': 'Makina Finance; we have no makina vault-protocol metadata slug.', 'moonwell-v1': 'Moonwell; we have no moonwell vault-protocol metadata slug.', 'morpho-v2': 'Secondary Morpho listing (Morpho V2); our slug morpho maps to morpho-v1 as the primary Morpho registry score.', 'pendle-v2': 'Pendle v2; we have no pendle vault-protocol metadata slug.', 'polygon-pos-bridge': 'Chain bridge infrastructure; not a vault protocol in our metadata set.', 'reservoir-v1': 'Reservoir; we have no reservoir vault-protocol metadata slug.', 'spark-savings-v2': 'Spark Savings product line; our slug spark maps to spark-v1 (Spark Lend / core), not the savings-specific entity.', 'stake-dao-v2': 'Stake DAO v2; we have no stake-dao vault-protocol metadata slug.', 'stargate-v2': 'Cross-chain bridge; we have no Stargate vault-protocol metadata slug.', 'strata-v1': 'Strata; we have no strata vault-protocol metadata slug.', 'wormhole': 'Cross-chain messaging / bridge; we have no Wormhole vault-protocol metadata slug.'}
Xerberus registry protocol
entity_idvalues we intentionally do not map to any of our vault protocol metadata slugs, with the reason.Keys must be entity ids from
GET /registry/scores?type=protocolthat are absent fromXERBERUS_PROTOCOL_MAPPINGSvalues. Revisit when we add a matching vault protocol YAML or Xerberus renames the entity.Reviewed 2026-07-25 against 50 registry protocols (24 mapped, 26 unmapped).