Skip to content
Eden Engine

DeFi Protocol Metrics Over Time (TVL, Fees, Volume, Revenue, Users)

omnial/project-defi-metrics

Given a DeFi protocol name or id, returns a time series of one metric -- total value locked, trading volume, fees, revenue, or active users -- one datapoint per day, optionally filtered to a date range and a single chain. Each call returns one page of datapoints plus pagination metadata (total available, current offset, whether more remain).

activeper callv1
Provider
Web & Business Data Network
Category
defi
Provider price
$0.01638 per call
Latency p50 / p95
— / —
Success rate
—
Verified
—

Provider list price; Omnial MCP charges provider cost plus a platform markup on top.

Contract

input_schema.json
{
  "type": "object",
  "anyOf": [
    {
      "required": [
        "id"
      ]
    },
    {
      "required": [
        "q"
      ]
    }
  ],
  "properties": {
    "q": {
      "type": "string",
      "minLength": 1,
      "description": "Fuzzy entity name search. Only use when 'id' is not available. May return unexpected results for ambiguous names. Example: uniswap."
    },
    "id": {
      "type": "string",
      "minLength": 1,
      "description": "Project UUID. PREFERRED — always use this when available from a previous response (e.g. project_id from /fund/portfolio or id from /search/project). Takes priority over q. Example: 25c6612a-395c-4974-94eb-3b5f9f4b2ed7."
    },
    "to": {
      "type": "string",
      "minLength": 1,
      "description": "End of time range. Accepts Unix seconds (1706745600) or date string (2024-02-01). Example: 2024-02-01."
    },
    "from": {
      "type": "string",
      "minLength": 1,
      "description": "Start of time range. Accepts Unix seconds (1704067200) or date string (2024-01-01). Example: 2024-01-01."
    },
    "chain": {
      "enum": [
        "ethereum",
        "polygon",
        "bsc",
        "arbitrum",
        "optimism",
        "base",
        "avalanche",
        "fantom",
        "solana"
      ],
      "type": "string",
      "description": "Filter by chain. Can be ethereum, polygon, bsc, arbitrum, optimism, base, avalanche, fantom, or solana. Example: ethereum."
    },
    "limit": {
      "type": "integer",
      "default": 20,
      "maximum": 100,
      "minimum": 1,
      "description": "Results per page. Example: 20. Defaults to 20."
    },
    "metric": {
      "enum": [
        "volume",
        "fee",
        "fees",
        "revenue",
        "tvl",
        "users"
      ],
      "type": "string",
      "default": "tvl",
      "description": "Metric to query. Can be volume, fees (or fee alias), revenue, tvl, or users. Defaults to tvl. Example: tvl. Defaults to \"tvl\"."
    },
    "offset": {
      "type": "integer",
      "default": 0,
      "maximum": 9007199254740991,
      "minimum": 0,
      "description": "Pagination offset. Example: 0. Defaults to 0."
    }
  },
  "additionalProperties": false
}
output_schema.json
{
  "type": "object",
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "value": {
            "type": "number",
            "description": "The requested metric's value at that timestamp. USD-denominated for tvl/fees/revenue/volume (observed as a large float, e.g. ~7.0e9 for Uniswap TVL, ~8.3e4 for Uniswap Arbitrum daily fees); a plain count for users (not observed in either kept fixture, per the vendor's documented metric list)."
          },
          "timestamp": {
            "type": "number",
            "description": "Unix seconds for the start of that day, e.g. 1788825600."
          }
        },
        "additionalProperties": true
      },
      "description": "One entry per day in the requested range, newest first on both real fixtures observed. Page size is capped by the request's `limit` (default 20) -- see `meta` for how to page through a longer history."
    },
    "meta": {
      "type": "object",
      "properties": {
        "limit": {
          "type": "number",
          "description": "Echoes the request's `limit` (or its default)."
        },
        "total": {
          "type": "number",
          "description": "Total datapoints available across the full requested range, not just this page's length (2318 observed for Uniswap TVL against a 20-entry page)."
        },
        "cached": {
          "type": "boolean",
          "description": "Whether the vendor served this response from its own cache."
        },
        "offset": {
          "type": "number",
          "description": "Echoes the request's `offset` (or its default)."
        },
        "has_more": {
          "type": "boolean",
          "description": "True when `offset + data.length < total` -- more pages remain."
        }
      },
      "description": "Pagination metadata for `data`.",
      "additionalProperties": true
    }
  },
  "description": "The metric time series, as returned at routing.responseResultPath ($.output). `$schema` (a versioning URL for the vendor's own response schema) is dropped by responseShaping and is not part of this shape.",
  "additionalProperties": true
}

Pricing

Every real charge, itemised. A model that quietly omits one is a slow financial leak, so nothing here is rolled up, and a charge that only applies to some inputs says so rather than being added in.

Prices in this catalog are the provider's own list price, not your bill: Omnial MCP charges provider cost plus a platform markup on top, so what you are charged is higher than the figure shown. For the exact amount a specific call will cost, run omnial_execute with dry_run: true; that number includes the markup and is what we hold while the call runs. It is a quote, not a cap on the charge.

ChargeRate
Per call
Flat, regardless of what comes back
$0.01638
Cost basis
Not recorded

This tool's catalog entry does not record how its final bill is determined, so we will not tell you whether its cost is fixed before the call or reported by the provider afterwards. Either way what is held is a quote rather than a cap: you are charged what the call actually costs, bounded at 2x the quote.

Updated
Sep 15, 2026