Data Reference

Data Conventions

APR format, snapshot intervals, reward types, response envelope specification, timestamps, and numeric field formats.

APR Format

APR is stored as a decimal. 0.05 means 5%. Display by multiplying by 100.

FieldDescription
apr_netTotal APR including base yield plus incentive rewards. Point-in-time from last sync
base_aprNative protocol yield only, before rewards
apr_forwardForward-looking estimate when available
apr_net = base_apr + SUM(vault_rewards.apr)

Protocols without identifiable rewards set base_apr = apr_net and rewards = [].

Reward Types

TypeDescriptionExamples
token_incentiveProtocol token emissionsMORPHO, ARB, SPK
pointsNon-transferable point programsVarious
trading_feeLP trading feesCurve, Uniswap
strategySub-strategy yieldsYearn strategies

Risk Scores

  • Range 0-10 where higher means stronger modeled resilience
  • Tiers Prime at 8.0 or above, Core from 5.0 to 7.9, Edge below 5.0
  • Vectors Asset 30, Platform and Strategy 30, Control and Governance 20, History 20
  • Recomputation Hourly sync cycles plus incident-triggered rescoring within minutes

Snapshot Intervals

DataIntervalStorage
Vault snapshots1 hourvault_snapshots table
Hourly aggregates1 hourTimescaleDB continuous aggregate
Daily aggregates1 dayTimescaleDB continuous aggregate
Risk scores1 hour plus incident-triggered recalcRisk score runs
Oracle freshness15 secondsRedis

Response Envelope

Successful non-paginated responses use data.

{
  "data": { ... }
}

Offset-paginated responses use meta with totals.

{
  "data": [ ... ],
  "meta": {
    "page": 1,
    "limit": 20,
    "total": 247,
    "totalPages": 13
  }
}

Cursor-style pages use hasMore.

{
  "data": [ ... ],
  "meta": {
    "page": 1,
    "limit": 20,
    "hasMore": false
  }
}

Errors use error.code and error.message.

{
  "error": {
    "code": "NOT_FOUND",
    "message": "Vault not found"
  }
}

There is no success key in the runtime envelope.

HTTP Status Codes

CodeMeaning
200Success
400Bad request for invalid parameters
401Authentication required
403Not permitted for the supplied key
404Resource not found
429Rate limited
500Internal server error
503Fail-safe or upstream unavailable

Timestamps

All timestamps are ISO 8601 UTC strings such as 2026-02-25T12:00:00Z.

Numeric Fields

Most amounts are JSON numbers, including tvl_usd, apr_net, and base_apr on vault rows. Some high-precision or database numeric fields serialize as strings, including total_score in selected live payloads, balance_raw, version_id, and graph totals such as totalUsd.

On this page

Raw