Get universe coverage
get_universeThe 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 for completed hours) to describe completed days or completed hours. The range counts cover the last 7 days at bar: 1h (pass days, 1..30, to widen them) and the whole published range at bar: 1d. A compact SUMMARY by default — pass top_n (1..100, clamped) only if you need the per-market counts.
Tool call template
This tool declares no required parameters. Add optional parameters from the input schema as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {},
"name": "get_universe"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| bar | No | `1d` (the default) for completed UTC days, `1h` for completed UTC hours. An interval, at either grain, is stamped by the instant it **closes** — an hourly `…T09:00:00Z` is the hour that ended at 09:00. | |
| day | No | The day or hour to describe: `YYYY-MM-DD` or `latest` at `bar: 1d`, a completed `YYYY-MM-DDTHH:00:00Z` (the hour that *ended* there) or `latest` at `bar: 1h`. | |
| days | No | How many days of completed intervals the range counts cover, 1..30. Defaults to 7 at `bar: 1h` — the hourly source publishes one object per completed hour, so an unbounded inventory would open every hour ever published — and to the whole published range at `bar: 1d`, whose source is one object per month. The window the counts actually covered is `interval_start`..`interval_end`, and `notes` says when it was bounded. | |
| scope | No | `crypto` (the default), `hip3`, or `all`. | |
| top_n | No | Per-market detail is off by default; passing a value (1..100, clamped) returns that many markets, listed by name, alongside the summary. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| bar | Yes | The grain this answer was computed at: `1d` or `1h`. | |
| as_of | Yes | The interval the per-population counts describe. | |
| coins | No | Per-market detail, only when requested. Markets are listed by name. | |
| notes | Yes | ||
| scope | Yes | ||
| source | Yes | ||
| row_count | Yes | Rows in scope over the counted range. | |
| truncated | Yes | True when more markets exist than the detail list returned. | |
| interval_end | Yes | The newest interval the counts below cover — the same interval `as_of` describes, since the counts are the history behind those populations. | |
| published_at | No | ||
| bar_age_hours | Yes | ||
| matched_count | Yes | Markets the counted range actually represents — the ones with at least one row in it, which is every market in `eligible_count` at the described interval. | |
| visible_count | Yes | Markets in your plan's slice on the described interval, before any scope class is applied. | |
| eligible_count | Yes | Distinct markets in scope over the counted range. | |
| interval_count | Yes | Distinct intervals in the range the counts below cover. | |
| interval_start | Yes | The oldest interval the counts below cover: the published range start, the caller's history floor when the plan clips it, or the start of the window `days` bounded them to. The response says which, in `notes`. | |
| months_covered | Yes | ||
| market_count_hip3 | Yes | Markets with a deployer prefix on the described interval. | |
| market_count_total | Yes | Distinct markets in scope over the counted range. | |
| market_count_crypto | Yes | Markets without a deployer prefix on the described interval, whatever scope was asked for. | |
| coverage_from_manifest | Yes | True when the interval range came from the published coverage manifest, false when it had to be read from the data or the object listing itself. | |
| rows_per_market_interval | Yes | `row_count` divided by (intervals × markets) — how densely the counted range is populated. Below 1.0 means some markets are missing some intervals. |