Skip to main content
The Registry page is an internal tool for managing Erebor’s global registries. Registry Maintainers can create, update, and delete yield sources, oracles, and hooks across three tabs.
Registry access requires the registry_maintainer permission, separate from vault manager roles. Unlike the Yield Sources page (which filters to active entries for a vault), the Registry shows all entries including inactive ones.

Tab 1: Yield Sources

Every supported yield-generating protocol contract, organized by chain.
FieldTypeDescription
chain_idintegerDeployment chain
addressaddressYield source contract
namestringHuman-readable name (e.g., “Morpho USDC”)
underlying_assetaddressAsset the yield source accepts
yield_source_typeenumerc4626 or pendle_pt
is_activebooleanAvailable for curator whitelisting

Syncing from Providers

Import yield sources from external providers (Morpho, Pendle):
POST /api/v1/registry/yield-sources/sync
{ "url": "https://api.morpho.org/vaults", "name": "Morpho Import" }
The sync endpoint parses the provider format and creates or updates registry entries.

CRUD

POST /api/v1/registry/yield-sources           # Create
PUT  /api/v1/registry/yield-sources/{chain_id}/{address}  # Update
DELETE /api/v1/registry/yield-sources/{id}     # Delete

Tab 2: Oracles

Oracles price yield source positions back into the vault’s underlying asset.
FieldTypeDescription
chain_idintegerDeployment chain
oracle_addressaddressOracle contract
oracle_idstringIdentifier for on-chain config
oracle_typeenumerc4626, pendle_pt, or pendle_pt_amortized
is_activebooleanAvailable for curator assignment

CRUD

POST /api/v1/registry/oracles                  # Create
PUT  /api/v1/registry/oracles/{chain_id}/{oracle_address}  # Update
DELETE /api/v1/registry/oracles/{id}            # Delete

Tab 3: Hooks

On-chain modules that keepers call during deposit, withdrawal, and rebalance operations.
FieldTypeDescription
namestringHook name
hook_typeenumDEPOSIT, WITHDRAWAL, REBALANCE
addressesarrayPer-chain { chain_id, address } pairs
inspect_paramsarrayTyped parameters for merkle tree leaf structure
is_activebooleanAvailable in hook config editor

inspectParams

Define the structure of each merkle tree leaf for this hook:
[
  { "name": "yield_source", "solidity_type": "address", "ref_type": "yield_source", "param_order": 0 },
  { "name": "token", "solidity_type": "address", "ref_type": "token", "param_order": 1 }
]
ref_type determines the picker UI in the Merkle Trees config editor: address picker for yield sources, token picker for ERC-20s.

CRUD

POST /api/v1/registry/hooks          # Create
PUT  /api/v1/registry/hooks/{id}     # Update
DELETE /api/v1/registry/hooks/{id}   # Delete
Hooks are global entities with per-chain addresses. A single hook entry can have addresses on both Ethereum and Base.

All Registry Endpoints

EndpointMethodDescription
/api/v1/registry/yield-sourcesGET/POSTList all / Create
/api/v1/registry/yield-sources/{chain_id}/{address}PUTUpdate
/api/v1/registry/yield-sources/{id}DELETEDelete
/api/v1/registry/yield-sources/syncPOSTImport from provider
/api/v1/registry/oraclesGET/POSTList all / Create
/api/v1/registry/oracles/{chain_id}/{oracle_address}PUTUpdate
/api/v1/registry/oracles/{id}DELETEDelete
/api/v1/registry/hooksGET/POSTList all / Create
/api/v1/registry/hooks/{id}PUT/DELETEUpdate / Delete