{"openapi":"3.1.0","info":{"title":"ONO / BONO API","description":"Read-only Solana analytics. Start with /api/v1/overview for cards and /api/v1/history/* for charts. Amounts are exact decimal strings in whole tokens, never atomic units. null means unavailable, not zero. All dates are UTC. Requests read persisted data and never initiate RPC indexing. See /api for definitions, formulas, curl examples and compatibility notes.","version":"0.6.2"},"paths":{"/health":{"get":{"tags":["Operations"],"summary":"Check API and database connectivity","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/metrics":{"get":{"tags":["Overview"],"summary":"Read all 18 metric values","description":"Stable legacy field names. Values can be retained from an earlier observation; use /status metric_times and stale_metrics to check individual freshness.","operationId":"metrics_api_v1_metrics_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Metrics"}}}}}}},"/api/v1/history/burns":{"get":{"tags":["History"],"summary":"ONO burned per day or month","description":"Raw on-chain burn/burnChecked instructions since 2025-07-21. No manual adjustment. Default: all history, monthly. Dates inclusive; end is capped to snapshot day. Partial intervals preserve found subtotals, unknown amounts stay null.","operationId":"history_burns_api_v1_history_burns_get","parameters":[{"name":"granularity","in":"query","required":false,"schema":{"enum":["day","month"],"type":"string","default":"month","title":"Granularity"}},{"name":"start","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Start"}},{"name":"end","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"End"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HistorySeries"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/history/buybacks":{"get":{"tags":["History"],"summary":"ONO bought back per day or month","description":"Eligible Token-2022 transferChecked amounts into the configured destination, selected signers and source exclusions, excluding matching Whirlpool fee-collection/liquidity-increase outer instructions. Not every swap, not wallet net change. Default: all history since 2025-07-21, monthly; same response shape as /history/burns.","operationId":"history_buybacks_api_v1_history_buybacks_get","parameters":[{"name":"granularity","in":"query","required":false,"schema":{"enum":["day","month"],"type":"string","default":"month","title":"Granularity"}},{"name":"start","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Start"}},{"name":"end","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"End"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HistorySeries"},{"$ref":"#/components/schemas/HistoryUnavailable"}],"title":"Response History Buybacks Api V1 History Buybacks Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/history/rewards":{"get":{"tags":["History"],"summary":"Estimated ONO rewards per day or month","description":"Calculated from registration, deletion and score logs, NOT actual payouts. Formula: last score per (stream, miner) at UTC day end × 6.623814000 × 5. Uses earliest registration and latest deletion per stream, carries scores forward without expiry, excludes three configured streams. Includes failed transaction logs to match the supplied SQL (independent of burn/buyback policy). Full program history and a worker-prepared daily series are required; until then amounts are null. GET reads the prepared series and never replays event history; cache_state is indexing, preparing or ready. Starts 2025-07-22, limited to SQL activity date bounds; outside bounds amounts are null. Months sum daily estimates. Tied timestamps use deterministic slot/signature/event ordering; Dune tie order is unspecified. Independent Dune parity remains unverified.","operationId":"history_rewards_api_v1_history_rewards_get","parameters":[{"name":"granularity","in":"query","required":false,"schema":{"enum":["day","month"],"type":"string","default":"month","title":"Granularity"}},{"name":"start","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Start"}},{"name":"end","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"End"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HistorySeries"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/dc/events":{"get":{"tags":["History"],"summary":"Find stored DC burn instruction IDs in one transaction","description":"Required signature: full Solana transaction signature. Reads stored DC events only, never RPC. Returns zero-based instruction IDs such as 2 (outer) or 2.0 (first inner instruction under outer 2), exact amounts and current file-exclusion matches. Raw events include burns excluded by either TXT file. A one-time local archive upgrade is required for old DC storage. Limited to the latest snapshot event watermark. This endpoint does not inspect ONO, BONO, transfers or reward events.","operationId":"dc_events_api_v1_dc_events_get","parameters":[{"name":"signature","in":"query","required":true,"schema":{"type":"string","title":"Signature"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DCEventList"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/history/dc/burns":{"get":{"tags":["History"],"summary":"Filtered DC burns per day or month","description":"Mint EuQUMH9gyJ2s2GEyA1wpLcsZ694m5hDDWyemrwX1EouU (9 decimals). Includes burn/burnChecked calls with no success-only filter, with all signature/instruction and log-address exclusions read exclusively from the two DC TXT files described in /api. Exclusions scan full transaction logs, not account keys. All available history is indexed once, resumably. Default start: earliest eligible burn; end: snapshot day. amount is an exact token string. Interval values before UTC midnight 12 calendar months before request time are null, matching the supplied SQL. Months sum visible daily burns; a boundary month can cover only part of the daily window. Complete zero-event days are zero. Before full history/cache readiness amounts are null. DC-only file exclusions are applied by the worker; changed rules return cache_state=preparing and null amounts until the new cache is ready. GET only reads worker-prepared data; no RPC or event-history replay.","operationId":"history_dc_burns_api_v1_history_dc_burns_get","parameters":[{"name":"granularity","in":"query","required":false,"schema":{"enum":["day","month"],"type":"string","default":"month","title":"Granularity"}},{"name":"start","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Start"}},{"name":"end","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"End"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreditBurnSeries"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/history/dc/cumulative-burns":{"get":{"tags":["History"],"summary":"Lifetime cumulative filtered DC burns","description":"Same mint and TXT-defined exclusions as /history/dc/burns. amount is the lifetime cumulative total at UTC day end, or the final selected day of each month. Includes burns BEFORE start; never resets at the display boundary. No 12-month mask or manual ONO adjustment. opening_balance is the lifetime balance before start. Default start: earliest eligible burn. Exact decimal strings; amounts null until full history and worker cache are ready. GET performs no event scan or RPC. Dune parity remains unverified.","operationId":"history_dc_cumulative_api_v1_history_dc_cumulative_burns_get","parameters":[{"name":"granularity","in":"query","required":false,"schema":{"enum":["day","month"],"type":"string","default":"month","title":"Granularity"}},{"name":"start","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Start"}},{"name":"end","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"End"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreditBurnSeries"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/overview":{"get":{"tags":["Overview"],"summary":"Read clearly named dashboard statistics","description":"Convenient aliases over the existing metrics snapshot. total_burned_ono already includes the 1,356,431 adjustment once. Check /status for individual metric freshness. Does not require rewards history to be indexed.","operationId":"overview_api_v1_overview_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Overview"}}}}}}},"/api/v1/status":{"get":{"tags":["Operations"],"summary":"Read collection progress, coverage and freshness","description":"Available even before the first snapshot. 18/18 metrics does not mean every history stream is complete. Inspect streams by kind, history_exhausted, head_caught_up, error and progress.","operationId":"status_api_v1_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StatusResponse"}}}}}}}},"components":{"schemas":{"CreditBurnPoint":{"properties":{"date":{"type":"string","title":"Date","description":"UTC day or month start, YYYY-MM-DD."},"period_start":{"type":"string","title":"Period Start","description":"Inclusive selected interval start."},"period_end":{"type":"string","title":"Period End","description":"Inclusive selected interval end; cumulative balance is measured here."},"amount":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Amount","description":"Exact DC string. Interval flow or lifetime cumulative stock as identified by series_type. null if not ready or outside daily window."},"complete":{"type":"boolean","title":"Complete","description":"Underlying mint history is complete; does not override the intentional daily-window mask."},"within_daily_window":{"type":"boolean","title":"Within Daily Window","description":"All days in this interval lie in the trailing 12-calendar-month daily window. A boundary month may contain only some visible daily values."},"event_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Event Count","description":"Matching burn instructions in the selected interval, even if daily amount is masked."}},"type":"object","required":["date","period_start","period_end","amount","complete","within_daily_window","event_count"],"title":"CreditBurnPoint"},"CreditBurnSeries":{"properties":{"timezone":{"type":"string","title":"Timezone"},"snapshot_id":{"type":"string","title":"Snapshot Id"},"as_of":{"type":"string","title":"As Of"},"complete":{"type":"boolean","title":"Complete"},"history_complete":{"type":"boolean","title":"History Complete"},"dune_parity":{"type":"string","title":"Dune Parity"},"cache_state":{"type":"string","title":"Cache State"},"source_event_watermark":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Source Event Watermark"},"mint":{"type":"string","title":"Mint","description":"Exact Token-2022 mint; DC is a display label from program logs, not a verified metadata symbol."},"unit":{"type":"string","title":"Unit"},"method":{"type":"string","title":"Method"},"value_key":{"type":"string","title":"Value Key"},"series_type":{"type":"string","title":"Series Type","description":"interval sums daily burns; cumulative reports lifetime balance at each period end."},"granularity":{"type":"string","title":"Granularity"},"start":{"type":"string","title":"Start"},"end":{"type":"string","title":"End"},"daily_window_start":{"type":"string","title":"Daily Window Start","description":"UTC current request date minus 12 calendar months; leap-day clamped. Applies only to interval amounts."},"opening_balance":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Opening Balance","description":"Lifetime eligible burns before start, not reset by a narrower date range."},"history_start":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"History Start","description":"Earliest eligible burn date in prepared history."},"raw_history":{"additionalProperties":true,"type":"object","title":"Raw History","description":"Whether historical raw DC events are reversible; migration_required means run the local archive upgrade before using either DC graph."},"dc_exclusions":{"additionalProperties":true,"type":"object","title":"Dc Exclusions","description":"Current DC-only config fingerprint, active rule count and whether this snapshot cache applies it. Pending edits return promptly with null amounts until the worker updates the cache."},"excluded_event_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Excluded Event Count","description":"Stored DC burn instructions removed by additional file rules; null while preparing."},"points":{"items":{"$ref":"#/components/schemas/CreditBurnPoint"},"type":"array","title":"Points"}},"type":"object","required":["timezone","snapshot_id","as_of","complete","history_complete","dune_parity","cache_state","source_event_watermark","mint","unit","method","value_key","series_type","granularity","start","end","daily_window_start","opening_balance","history_start","raw_history","dc_exclusions","excluded_event_count","points"],"title":"CreditBurnSeries"},"DCEvent":{"properties":{"event_id":{"type":"string","title":"Event Id"},"signature":{"type":"string","title":"Signature"},"instruction":{"type":"string","title":"Instruction","description":"Zero-based outer index, or outer.inner index. Copy this value exactly into dc-exclusions.txt."},"amount":{"type":"string","title":"Amount","description":"Original stored DC amount, before custom exclusions."},"unit":{"type":"string","title":"Unit"},"block_time":{"type":"integer","title":"Block Time"},"excluded":{"type":"boolean","title":"Excluded"},"matching_rules":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Matching Rules"}},"type":"object","required":["event_id","signature","instruction","amount","unit","block_time","excluded","matching_rules"],"title":"DCEvent"},"DCEventList":{"properties":{"snapshot_id":{"type":"string","title":"Snapshot Id"},"signature":{"type":"string","title":"Signature"},"dc_exclusions":{"additionalProperties":true,"type":"object","title":"Dc Exclusions"},"count":{"type":"integer","title":"Count"},"events":{"items":{"$ref":"#/components/schemas/DCEvent"},"type":"array","title":"Events"}},"type":"object","required":["snapshot_id","signature","dc_exclusions","count","events"],"title":"DCEventList"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HistoryPoint":{"properties":{"date":{"type":"string","title":"Date","description":"UTC day YYYY-MM-DD; for months, the first calendar day."},"complete":{"type":"boolean","title":"Complete","description":"Whether this interval is fully covered. A partial non-null amount is only an observed subtotal."},"ono_amount":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ono Amount","description":"ONO per interval, not cumulative. Exact decimal string; null means unavailable, never zero by default."},"event_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Event Count","description":"Matching instructions in the interval, for burns/buybacks only."},"transaction_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Transaction Count","description":"Distinct transactions per daily interval; monthly is the sum of daily counts."},"active_score_pairs":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Active Score Pairs","description":"Active (stream, miner) pairs contributing to a daily reward estimate."},"within_sql_date_bounds":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Within Sql Date Bounds","description":"Whether this daily reward point falls inside the SQL activity calendar."},"period_start":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Period Start","description":"Inclusive first selected day within a calendar month."},"period_end":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Period End","description":"Inclusive last selected day within a calendar month."}},"additionalProperties":true,"type":"object","required":["date","complete","ono_amount"],"title":"HistoryPoint"},"HistorySeries":{"properties":{"snapshot_id":{"type":"string","title":"Snapshot Id"},"as_of":{"type":"string","title":"As Of"},"timezone":{"type":"string","title":"Timezone"},"unit":{"type":"string","title":"Unit"},"granularity":{"type":"string","title":"Granularity"},"start":{"type":"string","title":"Start"},"end":{"type":"string","title":"End"},"complete":{"type":"boolean","title":"Complete","description":"True only when every returned interval is covered. Consult /status for index progress."},"history_complete":{"type":"boolean","title":"History Complete","description":"Full relevant history indexed and head caught up, with no stream error."},"dune_parity":{"type":"string","title":"Dune Parity","description":"unverified until compared with an independent Dune export."},"cache_state":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cache State","description":"Reward series: indexing, preparing or ready. GET never prepares the cache."},"source_event_watermark":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Source Event Watermark","description":"Maximum reward-event sequence included in the prepared series."},"estimated":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Estimated","description":"True for calculated rewards, not actual payouts."},"formula":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Formula","description":"Reward calculation formula, where applicable."},"sql_date_bounds":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"null"}]},"type":"object"},{"type":"null"}],"title":"Sql Date Bounds","description":"First and last reward-program exact 00/01/03 activity dates."},"failed_transaction_logs_included":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Failed Transaction Logs Included","description":"Reward SQL policy; independent of burn/buyback selection."},"points":{"items":{"$ref":"#/components/schemas/HistoryPoint"},"type":"array","title":"Points"}},"additionalProperties":true,"type":"object","required":["snapshot_id","as_of","timezone","unit","granularity","start","end","complete","history_complete","dune_parity","points"],"title":"HistorySeries"},"HistoryUnavailable":{"properties":{"complete":{"type":"boolean","title":"Complete"},"points":{"items":{},"type":"array","title":"Points"},"rebuild_required":{"type":"boolean","title":"Rebuild Required"},"snapshot_id":{"type":"string","title":"Snapshot Id"}},"type":"object","required":["complete","points","rebuild_required","snapshot_id"],"title":"HistoryUnavailable"},"Metrics":{"properties":{"total_minted_bono":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Total Minted Bono","description":"BONO issued supply, in BONO (810,000,000 fixed issuance)."},"total_burned_bono":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Total Burned Bono","description":"Lifetime BONO burned, in BONO."},"current_circulating_bono":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Current Circulating Bono","description":"Issued BONO minus lifetime BONO burned."},"total_minted_ono":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Total Minted Ono","description":"ONO issued supply, in ONO (810,000,000 fixed issuance)."},"total_burned_ono":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Total Burned Ono","description":"Lifetime ONO burned plus the fixed 1,356,431 ONO adjustment, exactly once. Daily/monthly burn history excludes this adjustment."},"current_circulating_ono":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Current Circulating Ono","description":"Issued ONO minus adjusted lifetime burns minus configured escrow balances."},"ono_swapped":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ono Swapped","description":"Cumulative ONO in matching ONO/BONO program swap logs, in ONO."},"bono_swapped":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bono Swapped","description":"Cumulative BONO in matching ONO/BONO program swap logs, in BONO."},"ono_in_pool":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ono In Pool","description":"Current ONO balance of the configured ONO/BONO swap pool."},"bono_circulating_bono":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bono Circulating Bono","description":"Alias of current_circulating_bono, in BONO."},"bono_ono_rate":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bono Ono Rate","description":"ONO pool balance divided by circulating BONO, in ONO per BONO."},"total_all_accounts":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Total All Accounts","description":"Legacy name for total ONO buybacks under the destination-transfer method. Not an account count. Prefer /api/v1/overview buybacks_total_ono."},"ono_price_usd":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ono Price Usd","description":"On-chain derived USD per ONO. Exact decimal string; dashboard displays four decimal places."},"ono_volume_24h_usd":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ono Volume 24H Usd","description":"USD trading volume over the preceding 24 hours in configured markets only, not all exchanges."},"ono_holders":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Ono Holders","description":"Distinct owners with positive ONO balances; integer count."},"ono_escrow":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ono Escrow","description":"ONO balance held by configured escrow owners."},"ono_market_cap_usd":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ono Market Cap Usd","description":"current_circulating_ono multiplied by ono_price_usd, in USD."},"ono_fully_diluted_value_usd":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ono Fully Diluted Value Usd","description":"Issued ONO minus adjusted lifetime burns, multiplied by price (before escrow subtraction), in USD."}},"additionalProperties":false,"type":"object","required":["total_minted_bono","total_burned_bono","current_circulating_bono","total_minted_ono","total_burned_ono","current_circulating_ono","ono_swapped","bono_swapped","ono_in_pool","bono_circulating_bono","bono_ono_rate","total_all_accounts","ono_price_usd","ono_volume_24h_usd","ono_holders","ono_escrow","ono_market_cap_usd","ono_fully_diluted_value_usd"],"title":"Metrics"},"Overview":{"properties":{"snapshot_id":{"type":"string","title":"Snapshot Id"},"as_of":{"type":"string","title":"As Of","description":"Snapshot creation time; individual observations may be older, see /status."},"price_usd":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Price Usd","description":"USD per ONO, exact decimal string."},"circulating_ono":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Circulating Ono","description":"Issued ONO minus adjusted lifetime burns and escrow."},"holders":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Holders","description":"Distinct owners with a positive ONO balance."},"buybacks_total_ono":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Buybacks Total Ono","description":"Eligible destination-transfer ONO buybacks since 2025-07-21."},"burned_total_ono":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Burned Total Ono","description":"Adjusted lifetime ONO burned, including 1,356,431 exactly once. Not the sum of the chart points."},"swapped_total_ono":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Swapped Total Ono","description":"ONO amount in cumulative matching swap-program logs."},"swapped_total_bono":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Swapped Total Bono","description":"BONO amount in cumulative matching swap-program logs."}},"type":"object","required":["snapshot_id","as_of","price_usd","circulating_ono","holders","buybacks_total_ono","burned_total_ono","swapped_total_ono","swapped_total_bono"],"title":"Overview"},"StatusResponse":{"properties":{"state":{"type":"string","title":"State","description":"Metric readiness; does not guarantee chart history completeness."},"snapshot_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Snapshot Id"},"available_metrics":{"type":"integer","title":"Available Metrics"},"collection_interval_seconds":{"type":"integer","title":"Collection Interval Seconds"},"streams":{"additionalProperties":{"$ref":"#/components/schemas/StreamState"},"type":"object","title":"Streams","description":"Per-stream coverage, cursors and errors."},"metric_times":{"additionalProperties":{"type":"string"},"type":"object","title":"Metric Times","description":"Per-metric observation timestamps (UTC ISO 8601)."},"stale_metrics":{"items":{"type":"string"},"type":"array","title":"Stale Metrics","description":"Retained values whose latest observation failed."}},"additionalProperties":true,"type":"object","required":["state","snapshot_id","available_metrics","collection_interval_seconds"],"title":"StatusResponse"},"StreamState":{"properties":{"kind":{"type":"string","title":"Kind","description":"swap, buyback, burn_ono_period, reward_state or a configured observation stream."},"history_exhausted":{"type":"boolean","title":"History Exhausted","description":"Reached the provider's historical boundary or the stream start date."},"head_caught_up":{"type":"boolean","title":"Head Caught Up","description":"No outstanding forward catch-up window."},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error","description":"Last indexing error. Non-null errors prevent complete history."},"cursor":{"additionalProperties":true,"type":"object","title":"Cursor","description":"Persisted resume boundaries and last-page progress; do not edit."},"progress":{"additionalProperties":true,"type":"object","title":"Progress","description":"Counts of committed pages, scanned/decoded transactions and matched/inserted events."}},"additionalProperties":true,"type":"object","required":["kind","history_exhausted","head_caught_up","error","cursor"],"title":"StreamState"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}},"tags":[{"name":"Overview","description":"Dashboard totals and current token statistics."},{"name":"History","description":"Calendar interval totals. Same date controls for all charts."},{"name":"Operations","description":"Health, snapshot freshness and resumable indexing progress."}]}