Datasets and coverage
Understand completed batches, historical observations and exact values.
Discover the available schema
GET /v1/analytics/datasets lists the served tables. GET /v1/analytics/datasets/{dataset} returns a wrapper containing dataset, database, generatedAt, ingestion and officialSchemaSource.
Use the returned column names and types for dataset queries. Examples include history_transactions, history_operations, history_contract_events, history_trades, accounts, trustlines and offers. The catalog, rather than a hard-coded table list, is the contract for your deployment.
Catalog row counts are estimates of active ClickHouse rows, not counts of distinct accounts, unique checkpoints or fully verified archives.
Read coverage as intervals
completedRanges- Disjoint completed ledger intervals, including supplemental imports.
contiguousFirstLedger / contiguousLastLedger- The completed historical prefix, starting from ledger 2 when available.
supplementalLedgerCount- Completed ledgers outside that contiguous prefix.
maximumLedger- The highest completed ledger, not a claim of complete history below it.
coverageStatus- On windowed entity queries,
completemeans the requested interval is covered;partial_or_unknownmeans absence is not established.
Public warehouse queries exclude in-flight and failed ingestion batches. A completed import describes parsed-data availability. Archive byte verification, source availability findings and cryptographic proof work are separate evidence systems.
Historical observations are not current state
Account balances and asset holders use the latest ingested observations. Their watermarks expose the catalog position and snapshotPinned: false; they are not current-chain or arbitrary-height balance proofs. Account balances accept only after and limit, not as-of filters. Asset holder lists accept as_of_ledger (GraphQL: asOfLedger) as an upper bound on ingested observations, up to the catalog’s maximum observed ledger. This does not pin a snapshot or prove complete state at that height; inspect watermark.selectedLedger and watermark.coverageStatus and retain the same bound while paging.
Offer queries return historical changes, not a live order book. Asset and contract lists return identities observed in the selected window, not a complete current registry. A contract event can establish activity without a state record at that exact ledger.
Preserve identifiers and amount precision
Keep IDs, hashes, raw amounts and large numeric strings as strings. Converting them to JavaScript Number can lose precision. Read the response’s amountPrecision, raw-value fields and aggregate approximate flag.
Some parsed balances and trade values originate as Float64 observations. A decimal-looking string does not restore precision already lost upstream. Aggregate outputs are strings or null; Float64 and average results remain approximate.