Hyperliquid Market Data — OHLCV, Funding Rates & Positioning (Tessera)

Hyperliquid perp market data for LLMs: OHLCV, funding, open interest, positioning & forecasts.

사용해야 할까요

품질 및 안전성

A
설명 품질
100%
스키마 완전성
81%
이름 품질
91%
오염 위험
100%
권한 일치
100%
프로토콜 준수
100%

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~6,169토큰 (도구 정의)
~7.4 KB일반적인 응답 크기
상당한 주의 영향 (128k 컨텍스트의 4.82%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

{
  "mcpServers": {
    "hyperliquid-data": {
      "url": "https://tesseralytics.dev/mcp"
    }
  }
}

원격 엔드포인트

https://tesseralytics.dev/mcpstreamable-http

할 수 있는 일

도구 목록

도구 (9)

🟢 읽기 전용🟡 쓰기🔴 삭제⚪ 알 수 없음
🟢list_fields

Every field the query tools accept, each with its meaning, unit and whether it can be missing. Open — no key needed. Call this before query_cross_section, screen_universe or query_series. Percentile, z-score and the top_pct/bottom_pct conditions rank within the markets your plan can see, so they need a wide slice.

입력 스키마

{
  "type": "object",
  "properties": {}
}

출력 스키마

{
  "type": "object",
  "properties": {
    "fields": {
      "description": "Every field the query tools accept.",
      "items": {
        "$ref": "#/$defs/FieldDoc"
      },
      "type": "array"
    },
    "generated_at": {
      "description": "When this vocabulary was produced.",
      "type": "string"
    },
    "notes": {
      "items": {
        "type": "string"
      },
      "type": "array"
    }
  },
  "required": [
    "generated_at",
    "fields",
    "notes"
  ],
  "$defs": {
    "FieldDoc": {
      "description": "One addressable field's documentation.\n\nServed verbatim by the MCP plane's `list_fields`; the schema derive is what\nkeeps the tool's advertised output shape and the served JSON the same thing.",
      "properties": {
        "kind": {
          "description": "`stored` (a column in the daily source) or `factor` (computed at query\ntime over a trailing window, or from the end-day row).",
          "type": "string"
        },
        "meaning": {
          "description": "Plain-English meaning, authored in the semantic layer.",
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "nullable": {
          "description": "Whether the value can be absent for a market on a day.",
          "type": "boolean"
        },
        "type": {
          "description": "The stored column's type (`float64`, `uint32`, `date32`, …); absent for\nquery-time factors, which are always floats.",
          "nullable": true,
          "type": "string"
        },
        "unit": {
          "description": "The unit the values actually carry (`usd_notional`, `base_units`,\n`ratio`, `fraction`, `count`, `date`, …). A stored column name is never a\nsynonym for its unit — the OI a caller sees is USD notional where the\ncolumn is named for the notion.",
          "type": "string"
        }
      },
      "required": [
        "name",
        "meaning",
        "unit",
        "nullable",
        "kind"
      ],
      "type": "object"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "FieldsResult"
}
⚪funding_divergence(benchmark, coins, metric, scope, top_n, ...)

Rank markets by how far their funding has diverged from a benchmark (default ETH) over a trailing window. metric=rate compares mean daily funding; metric=cum_funding_spread compares funding accumulated over the window. Returns the most diverged in each direction. Markets with no funding reading are excluded from both lists. Descriptive only.

입력 스키마

{
  "type": "object",
  "properties": {
    "benchmark": {
      "default": null,
      "description": "The market whose funding is the yardstick. Defaults to ETH.",
      "nullable": true,
      "type": "string"
    },
    "coins": {
      "default": null,
      "description": "Restrict to these markets.",
      "items": {
        "type": "string"
      },
      "nullable": true,
      "type": "array"
    },
    "metric": {
      "default": null,
      "description": "`rate` (the default) ranks each market's mean daily funding minus the\nbenchmark's; `cum_funding_spread` ranks funding accumulated over the\nwindow, high minus low, minus the benchmark's.",
      "nullable": true,
      "type": "string"
    },
    "scope": {
      "default": null,
      "description": "`crypto` (the default), `hip3`, or `all`.",
      "nullable": true,
      "type": "string"
    },
    "top_n": {
      "default": null,
      "description": "Markets per ranked list, 1..50. Defaults to 10.",
      "format": "uint",
      "minimum": 0,
      "nullable": true,
      "type": "integer"
    },
    "window_days": {
      "default": null,
      "description": "Length of the trailing window in days, 1..365. Defaults to 7.",
      "format": "uint",
      "minimum": 0,
      "nullable": true,
      "type": "integer"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "DivergenceArgs"
}

출력 스키마

{
  "type": "object",
  "properties": {
    "as_of": {
      "type": "string"
    },
    "benchmark": {
      "type": "string"
    },
    "benchmark_value": {
      "description": "The benchmark's own value for the metric.",
      "format": "double",
      "type": "number"
    },
    "coin_count": {
      "description": "How many markets had a funding reading in the window; markets without\none are excluded from both lists and from this count.",
      "format": "int64",
      "type": "integer"
    },
    "metric": {
      "type": "string"
    },
    "notes": {
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "scope": {
      "type": "string"
    },
    "source": {
      "type": "string"
    },
    "top_negative": {
      "description": "The largest divergences toward the benchmark's opposite, most extreme\nfirst.",
      "items": {
        "$ref": "#/$defs/DivergenceRow"
      },
      "type": "array"
    },
    "top_positive": {
      "description": "The largest divergences away from the benchmark, most extreme first.",
      "items": {
        "$ref": "#/$defs/DivergenceRow"
      },
      "type": "array"
    },
    "truncated": {
      "type": "boolean"
    },
    "window_days": {
      "format": "uint",
      "minimum": 0,
      "type": "integer"
    }
  },
  "required": [
    "source",
    "as_of",
    "scope",
    "coin_count",
    "metric",
    "benchmark",
    "window_days",
    "benchmark_value",
    "top_positive",
    "top_negative",
    "truncated",
    "notes"
  ],
  "$defs": {
    "DivergenceRow": {
      "description": "One market's funding divergence from the benchmark.",
      "properties": {
        "coin": {
          "type": "string"
        },
        "divergence": {
          "description": "`value` minus the benchmark's.",
          "format": "double",
          "type": "number"
        },
        "value": {
          "description": "This market's value for the requested metric over the window.",
          "format": "double",
          "type": "number"
        }
      },
      "required": [
        "coin",
        "value",
        "divergence"
      ],
      "type": "object"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "DivergenceResult"
}
🟢get_universe(day, scope, top_n)

The coverage picture: the last complete day, how many markets are in the universe for a scope, how much history sits behind them, and how densely it is populated. A compact SUMMARY by default — pass top_n (1..50) only if you need the per-market day counts.

입력 스키마

{
  "type": "object",
  "properties": {
    "day": {
      "default": null,
      "description": "The day to describe, `YYYY-MM-DD` or `latest`.",
      "nullable": true,
      "type": "string"
    },
    "scope": {
      "default": null,
      "description": "`crypto` (the default), `hip3`, or `all`.",
      "nullable": true,
      "type": "string"
    },
    "top_n": {
      "default": null,
      "description": "Per-market detail is off by default; passing a value (1..50) returns\nthat many markets, listed by name, alongside the summary.",
      "format": "uint",
      "minimum": 0,
      "nullable": true,
      "type": "integer"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "UniverseArgs"
}

출력 스키마

{
  "type": "object",
  "properties": {
    "as_of": {
      "description": "The day the per-population counts describe.",
      "type": "string"
    },
    "coin_count_crypto": {
      "description": "Markets without a deployer prefix on the described day, whatever scope\nwas asked for.",
      "format": "int64",
      "type": "integer"
    },
    "coin_count_hip3": {
      "description": "Markets with a deployer prefix on the described day.",
      "format": "int64",
      "type": "integer"
    },
    "coin_count_total": {
      "description": "Distinct markets in scope over the whole range.",
      "format": "int64",
      "type": "integer"
    },
    "coins": {
      "description": "Per-market detail, only when requested. Markets are listed by name.",
      "items": {
        "$ref": "#/$defs/UniverseCoin"
      },
      "nullable": true,
      "type": "array"
    },
    "coverage_from_manifest": {
      "description": "True when the day range came from the published coverage manifest,\nfalse when it had to be read from the data itself.",
      "type": "boolean"
    },
    "day_count": {
      "description": "Distinct days in the range.",
      "format": "int64",
      "type": "integer"
    },
    "max_complete_day": {
      "description": "The newest complete day — the day `latest` resolves to.",
      "type": "string"
    },
    "min_day": {
      "description": "The oldest day the counts below cover: the published range start, or the\ncaller's history floor when the plan clips it (the response says so in\n`notes`).",
      "type": "string"
    },
    "months_covered": {
      "format": "int64",
      "type": "integer"
    },
    "notes": {
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "row_count": {
      "description": "Rows in scope over the whole range.",
      "format": "int64",
      "type": "integer"
    },
    "rows_per_market_day": {
      "description": "`row_count` divided by (days × markets) — how densely the range is\npopulated. Below 1.0 means some markets are missing some days.",
      "format": "double",
      "type": "number"
    },
    "scope": {
      "type": "string"
    },
    "source": {
      "type": "string"
    },
    "truncated": {
      "description": "True when more markets exist than the detail list returned.",
      "type": "boolean"
    }
  },
  "required": [
    "source",
    "as_of",
    "scope",
    "min_day",
    "max_complete_day",
    "day_count",
    "months_covered",
    "coin_count_total",
    "coin_count_crypto",
    "coin_count_hip3",
    "row_count",
    "rows_per_market_day",
    "coverage_from_manifest",
    "truncated",
    "notes"
  ],
  "$defs": {
    "UniverseCoin": {
      "description": "One market's coverage within the described range.",
      "properties": {
        "coin": {
          "type": "string"
        },
        "days": {
          "description": "How many days of the range this market appears on.",
          "format": "int64",
          "type": "integer"
        }
      },
      "required": [
        "coin",
        "days"
      ],
      "type": "object"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "UniverseResult"
}
⚪screen_universe(coins, columns, conditions, day, descending, ...)

Screen the whole market on ONE completed day with several conditions ANDed together. Conditions use op >, <, >=, <=, between, top_pct or bottom_pct; top_pct/bottom_pct are deciles of the markets you can see. Answers 'top-decile funding with bottom-decile open-interest change' and 'open interest rising faster than volume'. A market that does not report a field never satisfies a condition on it.

입력 스키마

{
  "type": "object",
  "properties": {
    "coins": {
      "default": null,
      "description": "Restrict to these markets.",
      "items": {
        "type": "string"
      },
      "nullable": true,
      "type": "array"
    },
    "columns": {
      "default": null,
      "description": "Fields to return per market, from `list_fields`.",
      "items": {
        "type": "string"
      },
      "nullable": true,
      "type": "array"
    },
    "conditions": {
      "description": "Conditions, all of which must hold. A market that does not report a\nfield never satisfies a condition on it.",
      "items": {
        "$ref": "#/$defs/ConditionArg"
      },
      "type": "array"
    },
    "day": {
      "default": null,
      "description": "The day to screen, `YYYY-MM-DD` or `latest`.",
      "nullable": true,
      "type": "string"
    },
    "descending": {
      "default": null,
      "description": "Rank largest first (the default).",
      "nullable": true,
      "type": "boolean"
    },
    "max_results": {
      "default": null,
      "description": "How many markets to return, 1..50. Defaults to 25.",
      "format": "uint",
      "minimum": 0,
      "nullable": true,
      "type": "integer"
    },
    "min_usd_volume_7d_avg": {
      "default": null,
      "description": "Drop markets below this average daily traded notional over the window.",
      "format": "double",
      "nullable": true,
      "type": "number"
    },
    "order_by": {
      "default": null,
      "description": "The field to rank the matches by. Defaults to the day's traded notional.",
      "nullable": true,
      "type": "string"
    },
    "scope": {
      "default": null,
      "description": "`crypto` (the default), `hip3`, or `all`.",
      "nullable": true,
      "type": "string"
    }
  },
  "required": [
    "conditions"
  ],
  "$defs": {
    "ConditionArg": {
      "description": "One condition of a screen.",
      "properties": {
        "column": {
          "description": "The field to test, from `list_fields`.",
          "type": "string"
        },
        "op": {
          "description": "One of `>`, `<`, `>=`, `<=`, `between`, `top_pct`, `bottom_pct`.\n`top_pct`/`bottom_pct` keep the best/worst `value` percent of the\nmarkets you can see by that field.",
          "type": "string"
        },
        "value": {
          "description": "The threshold. For `top_pct`/`bottom_pct` this is a percentage, e.g. 10\nfor the top decile.",
          "format": "double",
          "type": "number"
        },
        "value2": {
          "default": null,
          "description": "Required for `between`: the upper bound, inclusive.",
          "format": "double",
          "nullable": true,
          "type": "number"
        }
      },
      "required": [
        "column",
        "op",
        "value"
      ],
      "type": "object"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "ScreenArgs"
}

출력 스키마

{
  "type": "object",
  "properties": {
    "as_of": {
      "type": "string"
    },
    "coin_count": {
      "description": "The number of markets in your visible slice on that day — the\ndenominator the percentage conditions and the floor were measured\nagainst.",
      "format": "int64",
      "type": "integer"
    },
    "matched_count": {
      "description": "How many markets met every condition.",
      "format": "int64",
      "type": "integer"
    },
    "notes": {
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "row_count": {
      "format": "uint",
      "minimum": 0,
      "type": "integer"
    },
    "rows": {
      "items": true,
      "type": "array"
    },
    "scope": {
      "type": "string"
    },
    "source": {
      "type": "string"
    },
    "truncated": {
      "type": "boolean"
    }
  },
  "required": [
    "source",
    "as_of",
    "scope",
    "coin_count",
    "matched_count",
    "row_count",
    "truncated",
    "rows",
    "notes"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "ScreenResult"
}
🟢list_datasets

List the downloadable datasets: one-line summary, the plan required, and the month range available. Open — no key needed. Then use describe_dataset for one dataset's columns, or list_fields for the fields the query tools accept.

입력 스키마

{
  "type": "object",
  "properties": {}
}

출력 스키마

{
  "type": "object",
  "properties": {
    "datasets": {
      "items": {
        "$ref": "#/$defs/CatalogEntry"
      },
      "type": "array"
    },
    "generated_at": {
      "description": "When this catalog was produced.",
      "type": "string"
    },
    "your_tier": {
      "description": "The caller's own plan (`free`, `pro` or `anonymous`).",
      "type": "string"
    }
  },
  "required": [
    "your_tier",
    "generated_at",
    "datasets"
  ],
  "$defs": {
    "CatalogEntry": {
      "description": "One dataset in the public catalog.",
      "properties": {
        "cadence": {
          "type": "string"
        },
        "category": {
          "type": "string"
        },
        "column_count": {
          "format": "uint",
          "minimum": 0,
          "type": "integer"
        },
        "months": {
          "description": "The published month range, `[earliest, latest]`. Absent when the catalog\nlists no months for it.",
          "items": {
            "type": "string"
          },
          "nullable": true,
          "type": "array"
        },
        "name": {
          "type": "string"
        },
        "summary": {
          "type": "string"
        },
        "tier": {
          "description": "`free` or `pro` — the plan required to read this dataset's data.",
          "type": "string"
        },
        "title": {
          "type": "string"
        }
      },
      "required": [
        "name",
        "title",
        "category",
        "cadence",
        "summary",
        "tier",
        "column_count"
      ],
      "type": "object"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "DatasetsResult"
}
🟢query_cross_section(coins, columns, day, descending, min_usd_volume_7d_avg, ...)

Rank the whole market on ONE completed day: pick columns, an order_by field and top_n. Answers 'top markets by funding / open interest / returns on the latest day' and 'what percentile is BTC on open interest'. day defaults to the last complete day; scope defaults to crypto (HIP-3 markets track an underlying that closes, so their flow is not comparable); stat=percentile|zscore ranks within your visible markets; window_days recomputes the trailing-window fields; min_usd_volume_7d_avg keeps dust out of the ranking. Field names come from list_fields — never guess them, they are snake_case compound names; for a cut ('top decile by X') use screen_universe.

입력 스키마

{
  "type": "object",
  "properties": {
    "coins": {
      "default": null,
      "description": "Restrict to these markets. A market outside your plan's coverage is\nignored rather than widening the answer.",
      "items": {
        "type": "string"
      },
      "nullable": true,
      "type": "array"
    },
    "columns": {
      "default": null,
      "description": "Fields to return per market, from `list_fields`. `coin` is always\nincluded. Defaults to price, traded notional and the day's return.",
      "items": {
        "type": "string"
      },
      "nullable": true,
      "type": "array"
    },
    "day": {
      "default": null,
      "description": "The day to rank, `YYYY-MM-DD`, or `latest` (the default: the most recent\ncomplete day).",
      "nullable": true,
      "type": "string"
    },
    "descending": {
      "default": null,
      "description": "Rank largest first (the default). Set false for the smallest.",
      "nullable": true,
      "type": "boolean"
    },
    "min_usd_volume_7d_avg": {
      "default": null,
      "description": "Drop markets whose average daily traded notional over the window is\nbelow this value, so dust cannot top a ranking.",
      "format": "double",
      "nullable": true,
      "type": "number"
    },
    "order_by": {
      "default": null,
      "description": "The field to rank by. Need not appear in `columns`. Defaults to the\nday's traded notional.",
      "nullable": true,
      "type": "string"
    },
    "scope": {
      "default": null,
      "description": "`crypto` (the default), `hip3`, or `all`. Restricted markets track an\nunderlying that closes, so their flow is not comparable on a weekend.",
      "nullable": true,
      "type": "string"
    },
    "stat": {
      "default": null,
      "description": "`raw` (the default), `percentile`, or `zscore`. Percentile and z-score\nare ranked **within the markets your plan can see**, so they need a\nslice of at least four markets.",
      "nullable": true,
      "type": "string"
    },
    "top_n": {
      "default": null,
      "description": "How many markets to return, 1..50. Defaults to 20.",
      "format": "uint",
      "minimum": 0,
      "nullable": true,
      "type": "integer"
    },
    "window_days": {
      "default": null,
      "description": "Recompute the trailing-window fields over this many days, 1..365\n(default 7). The response always states the window it used.",
      "format": "uint",
      "minimum": 0,
      "nullable": true,
      "type": "integer"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "CrossSectionArgs"
}

출력 스키마

{
  "type": "object",
  "properties": {
    "as_of": {
      "description": "The UTC day the answer describes.",
      "type": "string"
    },
    "coin_count": {
      "description": "The number of markets in your visible slice on that day — the\ndenominator every statistic and floor below is measured against.",
      "format": "int64",
      "type": "integer"
    },
    "notes": {
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "ranked_count": {
      "description": "How many markets had a value for the ranked field and passed the floor.",
      "format": "int64",
      "type": "integer"
    },
    "row_count": {
      "description": "How many markets are in `rows`.",
      "format": "uint",
      "minimum": 0,
      "type": "integer"
    },
    "rows": {
      "items": true,
      "type": "array"
    },
    "scope": {
      "description": "The market population the ranking ran over.",
      "type": "string"
    },
    "source": {
      "description": "`tessera_daily` — the answer is from completed days, not the live market.",
      "type": "string"
    },
    "stat": {
      "description": "The ranking treatment actually applied: `raw`, `percentile` or\n`zscore`.",
      "type": "string"
    },
    "truncated": {
      "description": "True when `ranked_count` exceeds `row_count`.",
      "type": "boolean"
    }
  },
  "required": [
    "source",
    "as_of",
    "scope",
    "coin_count",
    "ranked_count",
    "row_count",
    "truncated",
    "stat",
    "rows",
    "notes"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "CrossSectionResult"
}
🟢query_series(coins, columns, ending_day, scope, window_days)

The daily series for one market or a few (max 10): one row per market per day over a trailing window, oldest first. Answers 'is this move backed by real flow' and 'how has positioning built up'. ending_day defaults to the last complete day. The whole answer is capped, so markets times window_days must stay inside the row cap; the response states the window it used.

입력 스키마

{
  "type": "object",
  "properties": {
    "coins": {
      "description": "The markets to return, 1..10.",
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "columns": {
      "default": null,
      "description": "Fields to return per row, from `list_fields`. `day` and `coin` are\nalways included.",
      "items": {
        "type": "string"
      },
      "nullable": true,
      "type": "array"
    },
    "ending_day": {
      "default": null,
      "description": "The last day to include, `YYYY-MM-DD` or `latest`.",
      "nullable": true,
      "type": "string"
    },
    "scope": {
      "default": null,
      "description": "`crypto` (the default), `hip3`, or `all`.",
      "nullable": true,
      "type": "string"
    },
    "window_days": {
      "default": null,
      "description": "Length of the trailing window in days, 1..365. Defaults to 7.",
      "format": "uint",
      "minimum": 0,
      "nullable": true,
      "type": "integer"
    }
  },
  "required": [
    "coins"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "SeriesArgs"
}

출력 스키마

{
  "type": "object",
  "properties": {
    "as_of": {
      "description": "The last day in the series.",
      "type": "string"
    },
    "coin_count": {
      "description": "The markets the series covers.",
      "format": "int64",
      "type": "integer"
    },
    "notes": {
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "row_count": {
      "format": "uint",
      "minimum": 0,
      "type": "integer"
    },
    "rows": {
      "items": true,
      "type": "array"
    },
    "scope": {
      "type": "string"
    },
    "source": {
      "type": "string"
    },
    "truncated": {
      "type": "boolean"
    },
    "window_days": {
      "description": "The window the trailing fields were computed over.",
      "format": "uint",
      "minimum": 0,
      "type": "integer"
    }
  },
  "required": [
    "source",
    "as_of",
    "scope",
    "window_days",
    "coin_count",
    "row_count",
    "truncated",
    "rows",
    "notes"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "SeriesResult"
}
⚪live_market(coins)

What is happening right now: mark price, current hourly funding, open interest, 24-hour traded notional and premium for up to 25 markets, taken straight from the venue's public API and stamped with the moment it was read. Use this for 'now' questions; the daily tools answer completed days only.

입력 스키마

{
  "type": "object",
  "properties": {
    "coins": {
      "description": "The markets to snapshot, 1..25.",
      "items": {
        "type": "string"
      },
      "type": "array"
    }
  },
  "required": [
    "coins"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "LiveMarketArgs"
}

출력 스키마

{
  "type": "object",
  "properties": {
    "as_of": {
      "description": "When the snapshot was taken, UTC.",
      "type": "string"
    },
    "coin_count": {
      "format": "uint",
      "minimum": 0,
      "type": "integer"
    },
    "notes": {
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "rows": {
      "items": {
        "$ref": "#/$defs/LiveMarketRow"
      },
      "type": "array"
    },
    "source": {
      "description": "`hyperliquid_rest` — this is the live market, not the completed-day data.",
      "type": "string"
    }
  },
  "required": [
    "source",
    "as_of",
    "coin_count",
    "rows",
    "notes"
  ],
  "$defs": {
    "LiveMarketRow": {
      "description": "Snapshot of one market, as of the upstream fetch.",
      "properties": {
        "coin": {
          "type": "string"
        },
        "day_volume_usd": {
          "format": "double",
          "nullable": true,
          "type": "number"
        },
        "funding_rate": {
          "description": "Current hourly funding rate.",
          "format": "double",
          "nullable": true,
          "type": "number"
        },
        "mark_px": {
          "format": "double",
          "nullable": true,
          "type": "number"
        },
        "mid_px": {
          "format": "double",
          "nullable": true,
          "type": "number"
        },
        "oi_usd": {
          "description": "`open_interest * mark_px` when both are present.",
          "format": "double",
          "nullable": true,
          "type": "number"
        },
        "open_interest": {
          "description": "Open interest in base units, as reported upstream.",
          "format": "double",
          "nullable": true,
          "type": "number"
        },
        "oracle_px": {
          "format": "double",
          "nullable": true,
          "type": "number"
        },
        "premium": {
          "format": "double",
          "nullable": true,
          "type": "number"
        }
      },
      "required": [
        "coin"
      ],
      "type": "object"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "LiveMarketResult"
}
🟢describe_dataset(asset)

The full dictionary for ONE downloadable dataset: description plus every column's type, nullability and plain-English meaning. Pass a name from list_datasets. Open — no key needed. For the fields the query tools accept, use list_fields.

입력 스키마

{
  "type": "object",
  "properties": {
    "asset": {
      "description": "Dataset name, as returned by `list_datasets`.",
      "type": "string"
    }
  },
  "required": [
    "asset"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "description": "Which dataset's dictionary to return.",
  "title": "DatasetArg"
}

출력 스키마

{
  "type": "object",
  "properties": {
    "cadence": {
      "description": "How frequently the data is sampled, e.g. \"1-minute bars\".",
      "type": "string"
    },
    "category": {
      "description": "Presentation category, e.g. `raw-tiles` or `forecast-layer`.",
      "type": "string"
    },
    "column_count": {
      "description": "Number of documented columns.",
      "format": "uint",
      "minimum": 0,
      "type": "integer"
    },
    "column_groups": {
      "description": "Columns, grouped for presentation, in schema order.",
      "items": {
        "$ref": "#/$defs/ColumnGroup"
      },
      "type": "array"
    },
    "description": {
      "description": "Longer prose — the dictionary page header.",
      "type": "string"
    },
    "direct_answer": {
      "default": "",
      "description": "40-60 word keyword-first lead answer — the definitional \"what is this\"\nblurb, and the strongest AI-citation extraction target. Defaulted for\nforward/backward compatibility with snapshots predating the field.",
      "type": "string"
    },
    "keywords": {
      "default": [],
      "description": "Per-dataset discovery keywords (schema.org keywords on the web).",
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "name": {
      "description": "Dataset name, exactly as `list_datasets` reports it.",
      "type": "string"
    },
    "note": {
      "description": "Optional \"how to use this\" callout.",
      "nullable": true,
      "type": "string"
    },
    "seo_title": {
      "default": "",
      "description": "Keyword-first SEO title tag (web `<title>`). Defaulted so older snapshots\nwithout the field still deserialize.",
      "type": "string"
    },
    "summary": {
      "description": "One-line intuitive summary — the catalog card.",
      "type": "string"
    },
    "temporal": {
      "$ref": "#/$defs/Temporal",
      "default": {
        "convention": "",
        "grain": "",
        "label": "",
        "timestamp_field": ""
      },
      "description": "Machine-readable timestamp/interval contract: what the label marks and\nhow to join without leaking the future. Defaulted so snapshots predating\nthe field still deserialize."
    },
    "tier": {
      "description": "Display tier: `free` or `pro`. Re-derived from `policy.rs` on read, so it\nalways matches actual entitlement regardless of the on-disk value.",
      "type": "string"
    },
    "title": {
      "description": "Human-friendly title, e.g. \"Order-flow OHLCV (1-minute)\".",
      "type": "string"
    },
    "use_case": {
      "default": "",
      "description": "One-line \"what you'd use it for\" (buyer-intent) copy.",
      "type": "string"
    }
  },
  "required": [
    "name",
    "title",
    "category",
    "cadence",
    "summary",
    "description",
    "tier",
    "column_count",
    "column_groups"
  ],
  "$defs": {
    "ColumnDoc": {
      "description": "One column's dictionary entry: the engineering facts (type/nullability/how\nit's computed) plus the plain-English `meaning` (what it is and why you'd care).",
      "properties": {
        "description": {
          "description": "Technical description — *how* the column is computed. May be absent.",
          "nullable": true,
          "type": "string"
        },
        "meaning": {
          "description": "Plain-English meaning — *what* the column is and why it's useful.",
          "type": "string"
        },
        "name": {
          "description": "Column name.",
          "type": "string"
        },
        "nullable": {
          "description": "Whether the column may be null.",
          "type": "boolean"
        },
        "type": {
          "description": "Arrow type string, e.g. `float64`, `timestamp[us]`.",
          "type": "string"
        }
      },
      "required": [
        "name",
        "type",
        "nullable",
        "meaning"
      ],
      "type": "object"
    },
    "ColumnGroup": {
      "description": "A labelled section of columns within a dataset.",
      "properties": {
        "columns": {
          "items": {
            "$ref": "#/$defs/ColumnDoc"
          },
          "type": "array"
        },
        "label": {
          "description": "Section heading, or `null` for a single unlabelled group.",
          "nullable": true,
          "type": "string"
        },
        "meaning": {
          "description": "Group-level plain-English meaning, used for large column families (e.g.\nthe residualized factor backbone) where a per-column line adds no value.",
          "nullable": true,
          "type": "string"
        },
        "window": {
          "default": null,
          "description": "Temporal window of this group's fields relative to the timestamp label:\none of `point_in_time`, `backward`, `forward`, `contemporaneous`,\n`static`. Null when the dataset-level `temporal.convention` covers them.",
          "nullable": true,
          "type": "string"
        }
      },
      "required": [
        "columns"
      ],
      "type": "object"
    },
    "Temporal": {
      "description": "The dataset's temporal contract — what the timestamp column marks and the\nlook-ahead-safety rules for joining. Mirror of the resolver's `temporal`\nblock (`semantic/__init__.py`).",
      "properties": {
        "convention": {
          "description": "One-paragraph plain-English join / look-ahead contract.",
          "type": "string"
        },
        "grain": {
          "description": "Observation width, e.g. `1m`, `1h`, `1d`, `1mo`.",
          "type": "string"
        },
        "label": {
          "description": "What the label marks: one of `interval_start`, `interval_end`,\n`snapshot`, `forecast_target`.",
          "type": "string"
        },
        "timestamp_field": {
          "description": "Which column carries the label, e.g. `time`, `day`, `month_start`.",
          "type": "string"
        }
      },
      "required": [
        "grain",
        "timestamp_field",
        "label",
        "convention"
      ],
      "type": "object"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "description": "One dataset's catalog entry + full data dictionary.",
  "title": "DatasetDoc"
}

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 9개
검증됨버전이 기록되지 않음도구 9개