Skip to main content
Glama
PulseBet

pulse-verity

Get Pulse Verity Index History

get_index_history
Read-onlyIdempotent

Fetch one page of crypto index history with OHLC candles, summary metrics, and signed observations for verified data so prices can be checked offline.

Instructions

Read one page of index history for a crypto symbol from /api/index/v1/history: candles (open, high, low, close per interval), summary metrics, pagination and, for dataset=verified, verifiedObservations. dataset=verified (default) is built from prints Pulse calculated and signed live; dataset=reconstructed is rebuilt history, not signed at the historical time, served at interval 1h or 1d. Candles, metrics and surrounding metadata are unsigned. Each verifiedObservations row carries symbol, price (the exact signed text), at, grade, signature and kid; pass those fields to verify_print to check a row, which authenticates its price fields only (history rows carry no v2 block). A null kid can be passed as it is or left out; a row whose signature or grade is null cannot be verified. The account's plan sets how far back history reaches: when the request started earlier, rangeClamped is true and from is where the page begins. limit (1 to 1000, default 200) bounds the rows on one page. For dataset=verified at interval 1h or 1d it is at most 250: a page there can count hours, and each hour can carry up to four signed prints (open, high, low and close), so verifiedObservations can hold up to four rows per hour. For the next page pass pagination.nextCursor as cursor with the same symbol, dataset and interval. from and to are ISO-8601 times; the default window is the 30 days before to. Pass assetId, written as the server issues it (native::, or contract:: such as contract:eip155:1:0x...), when a symbol identifies more than one asset. Needs a developer key (PULSE_API_KEY) or the hosted server.

Input Schema

NameRequiredDescriptionDefault
toNoEnd of the window, ISO-8601; defaults to now
fromNoStart of the window, ISO-8601
limitNoRows on one page; at most 250 for dataset=verified at interval 1h or 1d
cursorNopagination.nextCursor from the previous page
symbolYesCrypto ticker symbol, e.g. BTC, ETH, SOL
assetIdNoCanonical asset identity as the server issues it, e.g. native:pulse-verity:btc or contract:eip155:1:0x...; only when a symbol identifies more than one asset
datasetNoverified
intervalNo1h

Output Schema

NameRequiredDescriptionDefault
toNo
fromNo
noteNo
assetNo
errorNo
symbolNo
candlesNo
datasetNo
metricsNo
successNo
intervalNo
requestIdYesIdentifier for this MCP call; not a signed price field.
paginationNo
provenanceNo
rangeClampedNo
identityBindingNo
verifiedArchiveSinceNo
verifiedObservationsNo
contemporaneouslySignedNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.3.6

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/open-world, and the description adds substantial behavior the annotations don't: signed vs unsigned data split, per-row verifiedObservations fields and the null-kid/null-signature caveats, plan-based history depth with rangeClamped, and the 250-row/4-prints-per-hour limit interaction. This is rich disclosure well beyond structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded and most sentences earn their place, but it reads as one dense, semicolon-heavy paragraph. Structuring the dataset/verification/pagination guidance into discrete points would improve scannability without adding content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 8-param, multi-mode, paginated read tool this is complete: dataset semantics, auth requirement, plan-based range capping, pagination flow, and verification hand-off are all covered, and with an output schema present it correctly needn't explain return shape.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 75%, and the description meaningfully extends it: it explains the 30-day default window and default-to-now for from/to, the up-to-250 limit nuance for verified hourly/daily, the cursor provenance, and the assetId format semantics. It also fills the gap for the undocumented dataset and interval enums.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Read one page of index history for a crypto symbol') plus the endpoint, and immediately enumerates what the page contains (candles, summary metrics, pagination, verifiedObservations). An agent can distinguish this history-listing tool from price and print siblings without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit conditions for dataset=verified vs reconstructed, when to pass assetId ('when a symbol identifies more than one asset'), how to paginate (pass pagination.nextCursor as cursor with same symbol/dataset/interval), and when to call verify_print. It stops short of naming siblings like get_index_price as the current-price alternative, so not a full 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.