Skip to content
Eden Engine

Bitcoin & Ethereum On-Chain Indicator Time Series

omnial/market-onchain-indicator

Given a token (BTC or ETH), an on-chain metric (NUPL, SOPR, MVRV, Puell Multiple, NVM, NVT, NVT Golden Cross, or an exchange-flow metric: inflow, outflow, netflow, reserve), and a date range, returns a daily time series of that metric's value for each day in range.

activeper callv2

Price

$0.0164 per call

You pay the price shown. If a call turns out to cost more than its quote, you pay the actual price, capped at twice the quote. No monthly minimum. Top-ups start at $0.50.

Use it

Five steps: search, inspect, learn, run, settle. No per-tool setup; your agent reaches this tool through the meta-tools it already has.

Connect once and your AI can find and run this tool, and any other it needs.

agent
// 1. search: find the tool
omnial_search({ query: "what you need" })

// 2. inspect: price and input schema
omnial_inspect({ tool: "omnial/market-onchain-indicator" })

// 3. learn: read the usage guide at runtime
omnial_learn({ tool: "omnial/market-onchain-indicator" })

// 4. run: price the exact call first, then run it
omnial_execute({ tool: "omnial/market-onchain-indicator", input: { /* see input_schema */ }, dry_run: true })
omnial_execute({ tool: "omnial/market-onchain-indicator", input: { /* ... */ } })

// 5. settle: the call is charged when it finishes, nothing to do

Not connected yet? Point your MCP client at https://mcp.eden-engine.com/mcp, then copy a config for your client.

Pricing

Every charge this tool can incur.

ChargePrice
Per call
$0.0164
Updated
Oct 25, 2026

Input and output schemas

Input schema
input_schema.json
{
  "type": "object",
  "required": [
    "symbol",
    "metric"
  ],
  "properties": {
    "to": {
      "type": "string",
      "minLength": 1,
      "description": "End of time range. Accepts Unix seconds or date string (YYYY-MM-DD). Defaults to today when omitted. Maximum range is 365 days. Responses are capped at about 100 data points; when meta.has_more is true, split from/to into smaller windows (about 90 days for daily data). Example: 2026-03-01."
    },
    "from": {
      "type": "string",
      "minLength": 1,
      "description": "Start of time range. Accepts Unix seconds or date string (YYYY-MM-DD). Defaults to 90 days ago when omitted. Maximum range is 365 days. Responses are capped at about 100 data points; when meta.has_more is true, split from/to into smaller windows (about 90 days for daily data). Example: 2026-01-01."
    },
    "metric": {
      "enum": [
        "nupl",
        "sopr",
        "mvrv",
        "puell-multiple",
        "nvm",
        "nvt",
        "nvt-golden-cross",
        "exchange-flows/inflow",
        "exchange-flows/outflow",
        "exchange-flows/netflow",
        "exchange-flows/reserve"
      ],
      "type": "string",
      "description": "On-chain metric name. Can be nupl, sopr, mvrv, puell-multiple, nvm, nvt, nvt-golden-cross, or exchange-flows/{inflow,outflow,netflow,reserve}. Example: nupl."
    },
    "symbol": {
      "enum": [
        "BTC",
        "ETH"
      ],
      "type": "string",
      "description": "Token ticker symbol. Can be BTC or ETH. Example: BTC."
    },
    "exchange": {
      "enum": [
        "all_exchange",
        "spot_exchange",
        "derivative_exchange",
        "coinbase_prime",
        "binance",
        "coinbase_advanced",
        "okx",
        "kraken",
        "bybit",
        "bitstamp",
        "gemini",
        "bitget",
        "kucoin",
        "bitfinex",
        "gate_io",
        "deribit",
        "mexc",
        "htx_global",
        "bitflyer",
        "coinone",
        "bithumb",
        "upbit",
        "hashkey_exchange"
      ],
      "type": "string",
      "default": "all_exchange",
      "description": "Curated exchange filter for exchange-flow metrics. Use /v1/market/exchange-flow/exchanges to list labels. Example: all_exchange. Defaults to \"all_exchange\"."
    },
    "granularity": {
      "enum": [
        "day"
      ],
      "type": "string",
      "default": "day",
      "description": "Aggregation granularity. Example: day. Defaults to \"day\"."
    }
  },
  "additionalProperties": false
}
Output schema
output_schema.json
{
  "type": "object",
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "value": {
            "type": "number",
            "description": "The metric's value for this day. Units/scale depend on the metric: NUPL/SOPR/MVRV are ratios observed roughly in the 0-2 range, exchange-flow metrics (inflow/outflow/netflow/reserve) are raw token-unit amounts and can be negative (netflow observed negative on days with net exchange outflow)."
          },
          "metric": {
            "type": "string",
            "description": "The requested metric name, echoing the input."
          },
          "symbol": {
            "type": "string",
            "description": "'BTC' or 'ETH', echoing the input."
          },
          "exchange": {
            "type": "string",
            "description": "Only observed present for exchange-flow metrics (e.g. 'all_exchange', echoing the input's exchange filter). Not present for non-exchange-flow metrics like nupl."
          },
          "timestamp": {
            "type": "number",
            "description": "Unix seconds, start of the day (UTC)."
          },
          "exchange_name": {
            "type": "string",
            "description": "Human-readable label for `exchange` (e.g. 'All Exchange'). Only observed present for exchange-flow metrics."
          }
        },
        "additionalProperties": true
      },
      "description": "One entry per day in the requested range (up to ~100 points per call; see meta.has_more)."
    },
    "meta": {
      "type": "object",
      "properties": {
        "limit": {
          "type": "number"
        },
        "cached": {
          "type": "boolean"
        },
        "offset": {
          "type": "number"
        },
        "has_more": {
          "type": "boolean",
          "description": "True when more data points exist beyond this response's window -- split the from/to range into smaller windows and call again to page through."
        }
      },
      "additionalProperties": true
    }
  },
  "description": "A daily time series of on-chain metric values for the requested symbol.",
  "additionalProperties": true
}