Backend Services
| Service | Language | Base URL | OpenAPI Spec |
|---|---|---|---|
| Erebor | Go | https://erebor.superform.xyz | ✅ Available |
| Strategy Engine | Go | https://strategy.superform.xyz | ✅ Available |
| OMS | Go | https://oms.superform.xyz | ✅ Available |
Authentication
All endpoints except explicitly public ones require a Bearer JWT:Public Endpoints
| Endpoint | Backend |
|---|---|
GET /api/v1/public/vaults | Erebor |
GET /api/v1/registry/token-assets | Erebor |
On-Chain Settings
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. Current values are read from GET /api/v1/vaults/{chain_id}/{address} (e.g., fee_config and upkeep_info fields in the response).
Common Patterns
Prepare Pattern
On-chain operations use a two-phase flow:- Prepare — POST to a
prepare-*endpoint. Returns raw EVM calldata. - Sign — Pass
{ to, data, value }to your wallet. - Confirm (where applicable) — Notify Erebor of the transaction hash.
Pagination
Erebor supports cursor-based and offset-based pagination:has_more or next_cursor.
Async Jobs
Long-running operations (vault creation, merkle tree generation) return ajob_id:
- Trigger operation → receive
job_id - Poll
GET /api/v1/.../jobs/{job_id}with exponential backoff - Status:
pending→running→completed/failed
Optimistic Concurrency
Strategy Engine PUT operations require aversion field. Concurrent edits return 409 Conflict. Refresh and retry with the latest version.
Error Codes
| Code | Meaning |
|---|---|
400 | Invalid parameters |
401 | Missing or expired JWT |
403 | JWT valid, insufficient role |
404 | Resource not found |
409 | Duplicate or version conflict |
500 | Internal server error |
Route-to-Backend Matrix
| Feature | Backend | Auth |
|---|---|---|
| Home vault list | Erebor | None |
| Dashboard analytics | Erebor | JWT |
| Strategy canvas | Strategy Engine | JWT |
| Merkle tree management | Erebor | JWT |
| Yield source management | Erebor | JWT |
| User management | Erebor | JWT |
| Vault settings | Erebor | JWT |
| Service health | Erebor | JWT |
| Pause operations | Erebor | JWT |
| Registry management | Erebor | JWT |
| Admin backfill | Erebor | JWT |
| Vault creation | Erebor | JWT |
| DeFiX intents | OMS | JWT |
Rate Limits
Rate limits are not yet published. Recommended polling intervals for automation:| Data | Interval |
|---|---|
| Vault state | 15s |
| Analytics | 60s |
| Service health | 30s |
429 Too Many Requests.
Endpoint Counts
| Backend | Endpoints |
|---|---|
| Erebor | ~89 |
| Strategy Engine | 14 |
| OMS | 4 |
| Total | ~107 |