Skip to main content
Erebor is the primary management backend for SuperVaults. Go service, REST endpoints organized into 13 domains. Base URL: https://erebor.superform.xyz Auth: Authorization: Bearer <jwt> (except public endpoints) OpenAPI spec: erebor-openapi2.json
Settings changes (fees, PPS parameters, timelocks, banned leaves) are on-chain transactions. The curator UI constructs calldata via Erebor’s /prepare endpoints and your wallet signs and submits them to the protocol contracts directly. No Erebor REST endpoint is called for the actual setting change.
The Erebor OpenAPI spec does not include the Zap Terminal AI analysis endpoint (GET /api/v1/vaults/{vaultAddress}/ai/analysis?chain_id={}). This endpoint is operational but not yet in the spec.

Auth

EndpointMethodAuthDescription
/api/v1/auth/meGETJWTPrimary auth endpoint. Returns current user with all vault roles.
/api/v1/auth/verifyGETJWTLightweight JWT verification. Returns { verified, walletAddress, isManager, vaults[] }.

Vaults

EndpointMethodAuthDescription
/api/v1/public/vaultsGETNonePublic vault list with TVL and APY
/api/v1/vaultsGETJWTAuthenticated vault list (?detail=minimal&limit=500)
/api/v1/vaults/{chain_id}/{vault_address}GETJWTFull vault detail: PPS, supply, allocation, managers, fee_config, upkeep_info

Analytics (18 Endpoints)

All under /api/v1/vaults/{chain_id}/{address}/analytics/:
Sub-pathMethodDescription
overviewGETAPY, TVL, depositor count, strategy count
ppsGETPrice-per-share history
performanceGETAggregate performance metrics
performance/apy?period={p}GETAPY time series
performance/tvl?period={p}GETTVL time series
riskGETRisk score, concentration, drawdown, Sharpe, volatility
risk/concentrationGETConcentration breakdown (not surfaced in UI)
risk/drawdownGETDrawdown detail (not surfaced in UI)
risk/volatilityGETVolatility detail (not surfaced in UI)
usersGETTotal/active/new/churned users
users/retentionGETRetention cohorts
users/topGETTop holders by balance
users/cohortsGETCohort analysis (not surfaced in UI)
operationsGETTransaction count, gas, slippage
operations/transactionsGETTransaction history table
operations/volumeGETDeposit/withdraw volume
socialGETSocial feed for Zap Terminal
exportGETAnalytics export (not surfaced in UI)
POST /api/v1/analytics/compare for cross-vault comparison is available but not surfaced in the UI.

Merkle (14 Endpoints)

EndpointMethodDescription
/api/v1/merkle/configs/versionsGETConfig version history
/api/v1/merkle/configs/versionGETSingle config by version number
/api/v1/merkle/configs/activeGETActive config version
/api/v1/merkle/configsPOSTCreate new hook config
/api/v1/merkle/configs/{id}GETSingle config by ID
/api/v1/merkle/configs/activatePUTActivate a config version
/api/v1/merkle/treesGETAll trees for vault
/api/v1/merkle/trees/{id}GETSingle tree (not surfaced in UI)
/api/v1/merkle/proofsGETAll leaf proofs
/api/v1/merkle/proofs/lookupGETSingle proof lookup (not surfaced in UI)
/api/v1/merkle/generatePOSTStart async generation (409 = in progress)
/api/v1/merkle/jobs/{id}GETPoll generation job
/api/v1/merkle/jobsGETRecent jobs list
/api/v1/merkle/syncGETSync status (204 = in sync)

Registry (18 Endpoints)

EndpointMethodDescription
/api/v1/registry/yield-sourcesGETList yield sources (?chain_id={}&is_active=true&limit=250)
/api/v1/registry/yield-sourcesPOSTCreate yield source
/api/v1/registry/yield-sources/{chain_id}/{address}GETSingle yield source
/api/v1/registry/yield-sources/{chain_id}/{address}PUTUpdate yield source
/api/v1/registry/yield-sources/{id}DELETEDelete yield source
/api/v1/registry/yield-sources/syncPOSTImport from Morpho/Pendle URL
/api/v1/registry/oraclesGETList oracles
/api/v1/registry/oraclesPOSTCreate oracle
/api/v1/registry/oracles/{chain_id}/{oracle_address}GETSingle oracle
/api/v1/registry/oracles/{chain_id}/{oracle_address}PUTUpdate oracle
/api/v1/registry/oracles/{id}DELETEDelete oracle
/api/v1/registry/hooksGETList hooks (?is_active=true&limit=100)
/api/v1/registry/hooksPOSTCreate hook
/api/v1/registry/hooks/{id}PUTUpdate hook
/api/v1/registry/hooks/{id}DELETEDelete hook
/api/v1/registry/token-assetsGETToken metadata (public)
/api/v1/registry/token-assets/{chain_id}/{address}GETSingle token
/api/v1/registry/token-assetsPUTRegister/upsert custom token

Users (6 Endpoints)

EndpointMethodDescription
/api/v1/usersGETAll users for vault (?vault_address={}&chain_id={})
/api/v1/users/secondary-manager/preparePOSTPrepare add secondary manager tx
/api/v1/users/secondary-manager/remove/preparePOSTPrepare remove secondary manager tx
/api/v1/users/view-onlyPOSTAdd view-only user (off-chain)
/api/v1/users/view-only/{wallet}DELETERemove view-only user
/api/v1/users/{wallet}/display-namePATCHUpdate display name

Yield Sources (6 Endpoints)

EndpointMethodDescription
/api/v1/yield-sources/prepare-addPOSTPrepare add tx
/api/v1/yield-sources/prepare-removePOSTPrepare remove tx
/api/v1/yield-sources/prepare-update-oraclePOSTPrepare oracle update tx
/api/v1/yield-sources/prepare-bulk-addPOSTPrepare bulk add tx
/api/v1/yield-sources/prepare-bulk-removePOSTPrepare bulk remove tx
/api/v1/yield-sources/prepare-bulk-update-oraclePOSTPrepare bulk oracle update tx

Vault Services (6 Endpoints)

EndpointMethodDescription
/api/v1/vaults/{chain_id}/{vault}/servicesGETPer-vault service list
/api/v1/vaults/{chain_id}/{vault}/services/{name}/pausePUTPause service
/api/v1/vaults/{chain_id}/{vault}/services/{name}/resumePUTResume service
/api/v1/vaults/{chain_id}/{vault}/services/enabledPUTBulk enable/disable
/api/v1/vaults/{chain_id}/{vault}/services/{name}PUTUpdate service config (not surfaced in UI)
/api/v1/services/bulkPUTBulk service update (not surfaced in UI)

Allocation

EndpointMethodDescription
/api/v1/vaults/{chain_id}/{vault_address}/ladder/{ladder_type}GETGet allocation configuration by type

Emergency Pause (3 Endpoints)

EndpointMethodDescription
/api/v1/vaults/pause-statusGETBatch pause status (?vaults={chainId}:{addr},...)
/api/v1/vaults/emergency-pause/preparePOSTPrepare on-chain pause tx
/api/v1/vaults/emergency-unpause/preparePOSTPrepare on-chain unpause tx

Vault Creation (3 Endpoints)

EndpointMethodDescription
/api/v1/vaults/create/preparePOSTVault creation calldata
/api/v1/vaults/create/confirmPOSTSubmit tx hash (409 = duplicate)
/api/v1/vaults/create/jobs/{id}GETPoll creation job status

Admin (3 Endpoints)

EndpointMethodTimeoutDescription
/api/v1/admin/backfill/apyPOST120sAPY backfill (max 90 days)
/api/v1/admin/backfill/tvlPOST120sTVL backfill (max 90 days)
/api/v1/admin/backfill/eventsPOST120sEvents backfill (max 365 days)

Audit (3 Endpoints)

EndpointMethodDescription
/api/v1/audit/logsGETQuery audit trail (not surfaced in UI)
/api/v1/audit/logs/{id}GETSingle audit log entry
/api/v1/audit/exportGETExport audit logs (CSV or JSON via Accept header)
Available for automation. See Webhooks & Event Streaming.

Zap Terminal AI (Undocumented)

Called by the Zap Terminal in the Dashboard but not included in the Erebor OpenAPI spec:
GET /api/v1/vaults/{vaultAddress}/ai/analysis?chain_id={chain_id}
Authorization: Bearer <jwt>
Schema and stability not officially documented. The spec will be updated in a future release.