Server definition
- Hash
- sha256:3e403aa909e9d6c8a9ada94f58108f52c377558b18756c45161bf3d76761a75d
- What it is
- What a remote MCP server returned when asked what it offers: 9 tools
The blob, as servednamed by its sha256
{
"instructions": "Cross-sectional market analytics for the Hyperliquid perp universe: rank, screen and compare every market on a completed interval, follow one market's series, and read funding divergence from the majors. Every analytical tool takes bar: 1d (the default) for completed UTC days, or bar: 1h for completed UTC hours on a Pro key, and each answer states which it answered and the exact interval it used. Start with list_fields to see the measurable fields and the bars each one exists on, then query_cross_section, screen_universe, funding_divergence, get_universe or query_series. Browsing the catalog needs no key: list_datasets and describe_dataset cover the downloadable datasets, and list_fields the analytics vocabulary. Analytics require a free Tessera API key (get one at https://tesseralytics.dev) sent as `Authorization: Bearer <key>`. Every answer reports visible_count, eligible_count and matched_count, so the population behind a number is never inferred from the rows. The in-progress interval is never served. Free keys rank every market over the trailing 7 days, up to 20 tool calls a day, at the daily grain; Pro adds the hourly grain, full history and unlimited calls. For what is happening right now, call live_market — both bars are history.",
"tools": [
{
"description": "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.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"description": "Which dataset's dictionary to return.",
"properties": {
"asset": {
"description": "Dataset name, as returned by `list_datasets`.",
"type": "string"
}
},
"required": [
"asset"
],
"title": "DatasetArg",
"type": "object"
},
"name": "describe_dataset",
"outputSchema": {
"$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.",
"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"
],
"title": "DatasetDoc",
"type": "object"
}
},
{
"description": "Rank markets by how far their funding has diverged from a benchmark (default ETH) over a trailing window. Pick bar (1d, the default, or 1h on a Pro key) to read completed days or completed hours. metric=rate compares mean funding over the window; 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.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"bar": {
"default": null,
"description": "`1d` (the default) for completed UTC days, `1h` for the most recent\ncompleted UTC hour.",
"nullable": true,
"type": "string"
},
"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 funding over the window\nminus the benchmark's; `cum_funding_spread` ranks funding accumulated\nover the window, 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"
}
},
"title": "DivergenceArgs",
"type": "object"
},
"name": "funding_divergence",
"outputSchema": {
"$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",
"properties": {
"as_of": {
"type": "string"
},
"bar": {
"description": "The grain this answer was computed at: `1d` or `1h`.",
"type": "string"
},
"benchmark": {
"type": "string"
},
"benchmark_value": {
"description": "The benchmark's own value for the metric.",
"format": "double",
"type": "number"
},
"eligible_count": {
"description": "Markets left after your explicit market filter.",
"format": "int64",
"type": "integer"
},
"matched_count": {
"description": "Markets that had a funding reading in the window. Markets without one are\nexcluded from both lists and from this count — a missing reading must\nnever appear as an extreme.",
"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"
},
"visible_count": {
"description": "Markets in your plan's slice on this interval, before any filter you\npassed.",
"format": "int64",
"type": "integer"
},
"window_days": {
"format": "uint",
"minimum": 0,
"type": "integer"
}
},
"required": [
"bar",
"source",
"as_of",
"scope",
"visible_count",
"eligible_count",
"matched_count",
"metric",
"benchmark",
"window_days",
"benchmark_value",
"top_positive",
"top_negative",
"truncated",
"notes"
],
"title": "DivergenceResult",
"type": "object"
}
},
{
"description": "The coverage picture: the last complete interval, how many markets are in the universe for a scope, how much history sits behind them, and how densely it is populated. Pick bar (1d, the default, or 1h on a Pro key) to describe completed days or completed hours. A compact SUMMARY by default — pass top_n (1..50) only if you need the per-market counts.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"bar": {
"default": null,
"description": "`1d` (the default) for completed UTC days, `1h` for the most recent\ncompleted UTC hour.",
"nullable": true,
"type": "string"
},
"day": {
"default": null,
"description": "The day or hour to describe: `YYYY-MM-DD` or `latest` at `bar: 1d`, a\ncompleted `YYYY-MM-DDTHH:00:00Z` or `latest` at `bar: 1h`.",
"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"
}
},
"title": "UniverseArgs",
"type": "object"
},
"name": "get_universe",
"outputSchema": {
"$defs": {
"UniverseCoin": {
"description": "One market's coverage within the described range.",
"properties": {
"coin": {
"type": "string"
},
"observations": {
"description": "How many intervals of the range this market appears on — days at\n`bar: 1d`, completed hours at `bar: 1h`.",
"format": "int64",
"type": "integer"
}
},
"required": [
"coin",
"observations"
],
"type": "object"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"as_of": {
"description": "The interval the per-population counts describe.",
"type": "string"
},
"bar": {
"description": "The grain this answer was computed at: `1d` or `1h`.",
"type": "string"
},
"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 interval range came from the published coverage manifest,\nfalse when it had to be read from the data or the object listing itself.",
"type": "boolean"
},
"eligible_count": {
"description": "Distinct markets in scope over the whole range.",
"format": "int64",
"type": "integer"
},
"interval_count": {
"description": "Distinct intervals in the range.",
"format": "int64",
"type": "integer"
},
"interval_end": {
"description": "The newest complete interval — the one `latest` resolves to.",
"type": "string"
},
"interval_start": {
"description": "The oldest interval the counts below cover: the published range start, or\nthe caller's history floor when the plan clips it (the response says so\nin `notes`).",
"type": "string"
},
"market_count_crypto": {
"description": "Markets without a deployer prefix on the described interval, whatever\nscope was asked for.",
"format": "int64",
"type": "integer"
},
"market_count_hip3": {
"description": "Markets with a deployer prefix on the described interval.",
"format": "int64",
"type": "integer"
},
"market_count_total": {
"description": "Distinct markets in scope over the whole range.",
"format": "int64",
"type": "integer"
},
"matched_count": {
"description": "Markets the range actually represents — the ones with at least one row in\nit, which is every market in `eligible_count` at the described interval.",
"format": "int64",
"type": "integer"
},
"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_interval": {
"description": "`row_count` divided by (intervals × markets) — how densely the range is\npopulated. Below 1.0 means some markets are missing some intervals.",
"format": "double",
"type": "number"
},
"scope": {
"type": "string"
},
"source": {
"type": "string"
},
"truncated": {
"description": "True when more markets exist than the detail list returned.",
"type": "boolean"
},
"visible_count": {
"description": "Markets in your plan's slice on the described interval, before any scope\nclass is applied.",
"format": "int64",
"type": "integer"
}
},
"required": [
"bar",
"source",
"as_of",
"scope",
"interval_start",
"interval_end",
"interval_count",
"months_covered",
"visible_count",
"eligible_count",
"matched_count",
"market_count_total",
"market_count_crypto",
"market_count_hip3",
"row_count",
"rows_per_market_interval",
"coverage_from_manifest",
"truncated",
"notes"
],
"title": "UniverseResult",
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "list_datasets",
"outputSchema": {
"$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",
"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"
],
"title": "DatasetsResult",
"type": "object"
}
},
{
"description": "Every field the query tools accept, each with its meaning, unit, whether it can be missing, and which bars (1d, 1h) it exists on. 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.",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "list_fields",
"outputSchema": {
"$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": {
"grains": {
"description": "Plane grains on which this field is available, in canonical order.",
"items": {
"type": "string"
},
"type": "array"
},
"kind": {
"description": "`stored` (a column in the plane's own source) or `factor` (computed at\nquery time over a trailing window, or from the selected end 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 selected interval.",
"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",
"grains"
],
"type": "object"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"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"
],
"title": "FieldsResult",
"type": "object"
}
},
{
"description": "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 bar=1d and bar=1h tools answer completed intervals only.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"coins": {
"description": "The markets to snapshot, 1..25.",
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"coins"
],
"title": "LiveMarketArgs",
"type": "object"
},
"name": "live_market",
"outputSchema": {
"$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",
"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"
],
"title": "LiveMarketResult",
"type": "object"
}
},
{
"description": "Rank the whole market on ONE completed interval: pick bar (1d, the default, or 1h on a Pro key), columns, an order_by field and top_n. Answers 'top markets by funding / open interest / returns on the latest day or hour' and 'what percentile is BTC on open interest'. day defaults to the last complete interval; scope defaults to crypto (HIP-3 markets track an underlying that closes, so their flow is not comparable); stat=percentile|zscore ranks within your eligible markets; window_days recomputes the trailing-window fields; min_usd_volume_7d_avg keeps dust out of the ranking and the ranking is computed after it. Field names come from list_fields — never guess them, they are snake_case compound names and each one lists the bars it exists on; for a cut ('top decile by X') use screen_universe.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"bar": {
"default": null,
"description": "`1d` (the default) for completed UTC days, `1h` for the most recent\ncompleted UTC hour.",
"nullable": true,
"type": "string"
},
"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 interval's return.",
"items": {
"type": "string"
},
"nullable": true,
"type": "array"
},
"day": {
"default": null,
"description": "The day or hour to rank. For `bar: 1d`, `YYYY-MM-DD` or `latest` (the\ndefault: the most recent complete day). For `bar: 1h`, a completed hour\nas `YYYY-MM-DDTHH:00:00Z`, or `latest`.",
"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\ninterval'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"
}
},
"title": "CrossSectionArgs",
"type": "object"
},
"name": "query_cross_section",
"outputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"as_of": {
"description": "The UTC day (`YYYY-MM-DD`) or completed hour (`YYYY-MM-DDTHH:00:00Z`) the\nanswer describes.",
"type": "string"
},
"bar": {
"description": "The grain this answer was computed at: `1d` or `1h`.",
"type": "string"
},
"eligible_count": {
"description": "Markets left after your explicit market filter and any traded-notional\nfloor — the population the percentile, z-score and deciles were computed\nover.",
"format": "int64",
"type": "integer"
},
"matched_count": {
"description": "Markets that reported the ranked field and passed every filter. This is\nthe count the rows are drawn from.",
"format": "int64",
"type": "integer"
},
"notes": {
"items": {
"type": "string"
},
"type": "array"
},
"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` or `tessera_hourly` — the clock this answer came from,\nnever the live market.",
"type": "string"
},
"stat": {
"description": "The ranking treatment actually applied: `raw`, `percentile` or\n`zscore`.",
"type": "string"
},
"truncated": {
"description": "True when `matched_count` exceeds `row_count`.",
"type": "boolean"
},
"visible_count": {
"description": "Markets in your plan's slice with a row on this interval, before any\nfilter you passed. This is the universe the answer is a statement about.",
"format": "int64",
"type": "integer"
}
},
"required": [
"bar",
"source",
"as_of",
"scope",
"visible_count",
"eligible_count",
"matched_count",
"row_count",
"truncated",
"stat",
"rows",
"notes"
],
"title": "CrossSectionResult",
"type": "object"
}
},
{
"description": "The series for one market or a few (max 10): one row per market per interval over a trailing window, oldest first. Pick bar (1d, the default, for one row per day, or 1h on a Pro key for one row per completed hour). Answers 'is this move backed by real flow' and 'how has positioning built up'. ending_day defaults to the last complete interval. The whole answer is capped, so markets times window_days (times 24 at bar 1h) must stay inside the row cap; the response states the window it used.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"bar": {
"default": null,
"description": "`1d` (the default) for completed UTC days, `1h` for completed UTC hours.",
"nullable": true,
"type": "string"
},
"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`. The interval column\n(`day` at 1d, `hour` at 1h) and `coin` are always included.",
"items": {
"type": "string"
},
"nullable": true,
"type": "array"
},
"ending_day": {
"default": null,
"description": "The last interval to include: `YYYY-MM-DD` or `latest` at `bar: 1d`, a\ncompleted `YYYY-MM-DDTHH:00:00Z` or `latest` at `bar: 1h`.",
"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. At\n`bar: 1h` one window day is 24 hourly rows.",
"format": "uint",
"minimum": 0,
"nullable": true,
"type": "integer"
}
},
"required": [
"coins"
],
"title": "SeriesArgs",
"type": "object"
},
"name": "query_series",
"outputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"as_of": {
"description": "The last interval in the series.",
"type": "string"
},
"bar": {
"description": "The grain this answer was computed at: `1d` or `1h`.",
"type": "string"
},
"eligible_count": {
"description": "The markets you asked for, after the plan's slice and your filter were\nintersected.",
"format": "int64",
"type": "integer"
},
"matched_count": {
"description": "How many of the requested markets the series actually has rows for — less\nthan `eligible_count` when one of them has no data in the window.",
"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"
},
"visible_count": {
"description": "Markets in your plan's slice with a row on the last interval.",
"format": "int64",
"type": "integer"
},
"window_days": {
"description": "The window the trailing fields were computed over, in days.",
"format": "uint",
"minimum": 0,
"type": "integer"
}
},
"required": [
"bar",
"source",
"as_of",
"scope",
"window_days",
"visible_count",
"eligible_count",
"matched_count",
"row_count",
"truncated",
"rows",
"notes"
],
"title": "SeriesResult",
"type": "object"
}
},
{
"description": "Screen the whole market on ONE completed interval with several conditions ANDed together. Pick bar (1d, the default, or 1h on a Pro key; a free key is screened at 1d). Conditions use op >, <, >=, <=, between, top_pct or bottom_pct; top_pct/bottom_pct are deciles of your eligible markets, and the liquidity floor is applied before the deciles so they are measured over the population you are choosing from. 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.",
"inputSchema": {
"$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",
"properties": {
"bar": {
"default": null,
"description": "`1d` (the default) for completed UTC days, `1h` for the most recent\ncompleted UTC hour.",
"nullable": true,
"type": "string"
},
"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 or hour to screen: `YYYY-MM-DD` or `latest` at `bar: 1d`, a\ncompleted `YYYY-MM-DDTHH:00:00Z` or `latest` at `bar: 1h`.",
"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 interval's traded\nnotional.",
"nullable": true,
"type": "string"
},
"scope": {
"default": null,
"description": "`crypto` (the default), `hip3`, or `all`.",
"nullable": true,
"type": "string"
}
},
"required": [
"conditions"
],
"title": "ScreenArgs",
"type": "object"
},
"name": "screen_universe",
"outputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"as_of": {
"type": "string"
},
"bar": {
"description": "The grain this answer was computed at: `1d` or `1h`.",
"type": "string"
},
"eligible_count": {
"description": "Markets left after your explicit market filter and any\ntraded-notional floor — the population the percentage conditions were\nmeasured against.",
"format": "int64",
"type": "integer"
},
"matched_count": {
"description": "Markets that 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"
},
"visible_count": {
"description": "Markets in your plan's slice with a row on this interval, before any\nfilter you passed.",
"format": "int64",
"type": "integer"
}
},
"required": [
"bar",
"source",
"as_of",
"scope",
"visible_count",
"eligible_count",
"matched_count",
"row_count",
"truncated",
"rows",
"notes"
],
"title": "ScreenResult",
"type": "object"
}
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:3e403aa909e9d6c8a9ada94f58108f52c377558b18756c45161bf3d76761a75d | sha256sum