Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,539Letters: 14Defects: 1,323counted 4 min ago
teppi

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 yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:3e403aa909e9d6c8a9ada94f58108f52c377558b18756c45161bf3d76761a75d | sha256sum