gauge
GET api.truthbear.co/gauge
Why an agent can trust this route.
Sonar evidence is advisory. Paid delivery is shown as verified only when paid probes are available; otherwise route estimates use the unpaid handshake as a clearly labeled proxy.
Observed outcomes
[SIGNAL+PROOF] One official signal record for any signal_id and entity: current reading against the OFFICIAL threshold ladder (band, distance-to-action) plus a 5-year same-season percentile so you can tell routine from unusual. 180+ signals across macro, weather, hazard, shipping, filings, crypto and lifecycle lines. Free coverage check first at /gauge/coverage. Descriptive only, never a forecast or advice. No data -> 422 no_charge, not billed.
Resource: api.truthbear.co/gauge
Network: base · Asset: 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 · Pay to: 0x2d16a243ba9fAcC6AC85519d5efad2149DC4C6c3
Payment methods: — · Last validation: 2026-10-15 11:57:04.712+00
{
"input": null,
"output": null,
"paymentRequirements": [
{
"raw": {
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2"
},
"payTo": "0x2d16a243ba9fAcC6AC85519d5efad2149DC4C6c3",
"amount": "10000",
"scheme": "exact",
"network": "base",
"mimeType": "application/json",
"resource": "https://api.truthbear.co/gauge",
"extensions": {
"bazaar": {
"info": {
"input": {
"type": "http",
"method": "GET",
"queryParams": {
"entity": "required - monitored object id, PAIRED WITH signal_id (e.g. 07010000 for hydrology.river-level, japan for earthquake.cur",
"signal_id": "required - signal id in genus.species ASCII form (e.g. hydrology.river-level, crypto.spot, macro.unemployment, earthquak"
}
},
"output": {
"type": "json",
"example": {
"grade": "screening-level, not decision-grade",
"scope": {
"full": "https://api.truthbear.co/scope/v1",
"verifiability": "via-endpoint",
"monitoring_not_forecast": true,
"intelligence_not_command": true
},
"entity": "03255000",
"nature": "This API supplies data organisation and trend description only. It is not a recommendation to act; the decision is yours. Purely descriptive - no judgement, no prediction.Official source plus record_hash; verify with the free /gauge/verify.",
"current": {
"gauge_height_ft": 30.69
},
"signal_id": "hydrology.river-level",
"provenance": {
"freshness": "fresh",
"age_hours_now": 23,
"freshness_basis": "cadence=daily; fresh<=24h; recent<=192h; dead_source>1440h; age_basis=request-time(now minus observed_at)"
},
"source_ref": "https://waterdata.usgs.gov/monitoring-location/03255000/",
"summary_en": "Ohio River at Cincinnati, OH: 30.69 ft gauge height - no flooding, 9.31 ft below the first official alert (action stage 40 ft). seasonal percentile 0.922 (rare). falling vs 24h ago.",
"entity_name": "Ohio River at Cincinnati, OH",
"observed_at": "2026-08-25T04:00:00.000Z",
"record_hash": "sha256:5969b8a147f438254edadf246ed1d7801a77c29babb5d725e17870320d620dd7",
"record_hash_verifiable": {
"mode": "via-endpoint",
"note": "This response is a projected delivery (some core fields are omitted to control size). Cross-check record_hash with the free /gauge/verify, or buy /gauge to get the complete core for offline recomputation."
}
}
}
},
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"type": "object",
"required": [
"type",
"method",
"queryParams"
],
"properties": {
"type": {
"const": "http"
},
"method": {
"enum": [
"GET"
],
"type": "string"
},
"queryParams": {
"type": "object",
"required": [
"signal_id",
"entity"
],
"properties": {
"entity": {
"type": "string",
"examples": [
"07010000"
],
"description": "required - monitored object id, PAIRED WITH signal_id (e.g. 07010000 for hydrology.river-level, japan for earthquake.current_activity). Valid pairs: free GET /gauge/catalog?signal_id=<signal_id> -> signals[0].entities[]"
},
"signal_id": {
"type": "string",
"examples": [
"hydrology.river-level"
],
"description": "required - signal id in genus.species ASCII form (e.g. hydrology.river-level, crypto.spot, macro.unemployment, earthquake.current_activity). Full list: free GET /gauge/catalog"
}
},
"additionalProperties": false
}
}
},
"output": {
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"const": "json"
},
"example": {}
}
}
}
},
"priceUsd": "$0.01",
"discoverable": true,
"outputSchema": {
"type": "object",
"required": [
"nature"
],
"properties": {
"tier": {
"type": "string",
"description": "Marker for the main single-point or history-series response (full / history-series); mutually exclusive with dim/addon"
},
"grade": {
"type": [
"string",
"null"
],
"description": "Honest data-grade disclosure (e.g. \"screening-level, not decision-grade\")"
},
"scope": {
"type": [
"string",
"null"
],
"description": "Honest statement of scope and limits: monitoring is not forecasting, intelligence is not instruction, and the boundary of what is verifiable"
},
"change": {
"type": [
"object",
"null"
],
"description": "Change, nested per metric: change.<metric> = {delta, direction, direction_reason?}, plus the scalar change.period (e.g. \"vs_previous\"). direction is one of rising/falling/stable/unknown - unknown means the direction CANNOT BE DETERMINED, it does not mean stable; in that case direction_reason carries a machine-readable cause: no-previous-record / metric-absent-in-previous / metric-absent-in-current / non-numeric-value"
},
"entity": {
"type": "string",
"description": "Monitored object id (e.g. btc / us / hormuz); full list at free /gauge/catalog or /gauge/preview"
},
"nature": {
"type": "string",
"description": "Neutrality statement: GAUGE supplies observations and trend description only - no judgement, no prediction, no recommendation"
},
"strata": {
"type": [
"object",
"null"
],
"description": "Statistical strata: share of each official band over the last 5 same-season years plus the band the current value falls in; null when there are no statistics"
},
"current": {
"type": [
"object",
"null"
],
"description": "Current reading. The inner metric structure varies by signal (crypto -> {price_usd, volume_24h, ...}; shipping -> {wind_kmh, wave_height_m, ...}). Units are carried in the field-name suffix; see also standard_ruler.unit"
},
"sources": {
"type": [
"array",
"null"
],
"items": {
"type": "object"
},
"description": "Source list [{name, value, weight, as_of, role, independent, relay_of?}]. independent:true = confirmed independent source; false = confirmed relay channel of another source (relay_of names the origin); null = independence unconfirmed (neither denied nor claimed). name/weight/independent/relay_of are record_hash core fields, so tampering with an independence claim breaks self-verification; as_of/value/role drift easily and are not hashed"
},
"previous": {
"type": [
"object",
"null"
],
"description": "Previous-period reading (a subset of the metrics in current; or {note} explaining that there is no previous value)"
},
"trend_7d": {
"type": [
"array",
"null"
],
"items": {
"type": "object"
},
"description": "Array of the last 7 trend points; [] means this signal has no series yet or the series does not apply - it is not an error"
},
"_citation": {
"type": [
"object",
"null"
],
"description": "Offline-verifiable citation: {statement_type, not_advice:bool, claim, fact, source, record_hash, signature(Ed25519), key_id, issuer_DID(did:key), verify_url} - the trust root for zero-trust self-verification"
},
"lifecycle": {
"type": [
"object",
"null"
],
"description": "Lifecycle block (state / birth_at / end_at / death_type / context). Part of the record_hash v3 core, so offline recomputation must include it; null for non-lifecycle lines"
},
"signal_id": {
"type": "string",
"description": "Signal id in genus.species ASCII binomial form (e.g. crypto.spot / macro.unemployment / shipping.route-disruption); full list at free /gauge/catalog"
},
"ots_status": {
"type": [
"string",
"null"
],
"description": "RETIRED FIELD - always \"pending\" or null; this field is no longer updated and is kept only for older parsers. Anchoring is done per write-batch (previously one root per day): each batch of writes gets a Merkle root stamped via OpenTimestamps, typically confirmed into a Bitcoin block within hours. See GET /gauge/anchor?hash= for the inclusion proof and the block number."
},
"provenance": {
"type": [
"object",
"null"
],
"description": "Data lineage: {served_from, data_as_of, oldest_leg_as_of, data_age_hours (frozen age, reference only), age_hours_now (age computed at request time - the real basis for freshness), freshness(fresh|recent|stale), freshness_basis (the cadence and threshold used for this row, as a string), dead_source (optional: upstream frozen or discontinued), data_lineage:[{signal,traceable_to,uncertainty,record_hash,...}], validation_status}. Freshness is cadence-aware, so monthly/quarterly/annual official lines are not misjudged against a 24h rule; the same basis is used by free /gauge/coverage. Buyers can trace back to the official source"
},
"source_ref": {
"type": [
"string",
"null"
],
"description": "Official source URL (provenance)"
},
"stat_ruler": {
"type": [
"object",
"null"
],
"description": "Statistical ruler: empirical percentile position across the last 5 same-season years; null when there are no statistics"
},
"summary_en": {
"type": "string",
"description": "Conditional - English one-line verdict derived at request time from this same record: reading + where it sits on the official ruler (distance to the first official alert) + seasonal percentile + direction, and staleness only when the data is actually old. Purely descriptive, never advice or forecast. Absent when this line carries no official ruler and no seasonal statistics (there is then nothing to conclude beyond the raw upstream reading). Not part of the record_hash core"
},
"summary_zh": {
"type": [
"string",
"null"
],
"description": "Human-readable one-line summary, IN CHINESE (zh-TW): reading + where it sits on the official ruler + statistical position. This is the HUMAN front-desk copy - machine consumers should read summary_en (English verdict) instead"
},
"unverified": {
"type": "boolean",
"description": "true = the source is untiered (source_tier is null); buyers and agents can filter on this"
},
"entity_name": {
"type": [
"string",
"null"
],
"description": "Human-readable name of the object"
},
"observed_at": {
"type": "string",
"description": "Actual observation time of the data, ISO-8601"
},
"record_hash": {
"type": [
"string",
"null"
],
"description": "sha256:<64hex> (contract A v3, binds the values plus provenance)"
},
"source_tier": {
"type": [
"string",
"null"
],
"description": "Source tier: T1 (first-hand official) / T2 or T2-<subtype, e.g. T2-exchange> (observable, curated) / screen-viewpoint; null = untiered (see unverified)"
},
"snapshot_date": {
"type": "string",
"description": "ISO-8601 date-time in UTC (e.g. 2026-07-24T00:00:00.000Z; aligned to midnight of that day)"
},
"update_status": {
"type": "object",
"properties": {
"text": {
"type": "string",
"description": "One-line human-readable form of the same fact"
},
"state": {
"type": "string",
"description": "on_schedule | overdue | not_published | unknown"
},
"overdue_days": {
"type": [
"integer",
"null"
],
"description": "How many days past that cadence; null when it cannot be determined"
},
"official_cadence": {
"type": [
"string",
"null"
],
"description": "The cadence the official source declares for this line (hourly/daily/weekly/monthly/quarterly/yearly/as-events)"
}
},
"description": "Did the OFFICIAL source keep its own declared publication cadence? Separate dimension from freshness: a record can be freshness=recent and update_status=overdue at the same time. state: on_schedule | overdue | not_published | unknown"
},
"data_age_hours": {
"type": [
"number",
"null"
],
"description": "Age frozen at collection time (0 = same hour), for reference only - if a collector stalls this field stops moving. For freshness always use provenance.age_hours_now (computed at request time) and provenance.freshness; the threshold basis is in provenance.freshness_basis"
},
"standard_ruler": {
"type": [
"object",
"null"
],
"description": "Official standard ruler (band / thresholds / normalized_index / pct_to_action, with unit and provenance); null when the line has no official ruler. Inner structure varies by signal"
},
"decision_points": {
"type": [
"object",
"null"
],
"description": "{count, points:[{tag,current,swappable,how}], note} - decision points you can re-run with a swapped tag (one swapped tag = one call); leave it alone and the original context is the default, at no extra charge"
},
"hash_core_version": {
"type": [
"integer",
"null"
],
"description": "Core-contract version of record_hash (currently 3); use it to pick the right core composition when recomputing offline"
},
"source_agreement_cv": {
"type": [
"number",
"null"
],
"description": "Multi-source agreement, coefficient of variation (smaller = closer agreement). Present ONLY when two or more CONFIRMED-INDEPENDENT sources measure the same fact at the same time - see sources[].independent. Same source relayed through two channels does not count as independent, and two different time bases (daily mean vs spot) do not count as agreement. Single-source / unconfirmed independence / not applicable -> null"
},
"record_hash_verifiable": {
"type": [
"object",
"null"
],
"description": "{mode:offline|via-endpoint, note}"
}
},
"additionalProperties": true,
"conditionalProperties": {
"last_fact": {
"type": [
"object",
"null"
],
"description": "Most recent qualifying fact for this line and entity, attached centrally (may be absent when the line has no qualifying fact yet)"
},
"decision_points": {
"type": [
"object",
"null"
],
"description": "Swappable decision points for this entity, attached centrally: {count, points:[{tag,current,swappable,how}], note}. Present only when the entity has at least one swappable tag in the index, so bundles for entities without one omit it"
},
"leg_availability": {
"type": [
"object",
"null"
],
"description": "Per-leg degradation disclosure: which legs are present, which are degraded and why. Present only when at least one leg is degraded"
},
"record_hash_verifiable": {
"type": [
"object",
"null"
],
"description": "Whether this response can recompute its own record_hash offline. Present only when the payload carries a top-level record_hash; may be absent on list-shaped deliveries where verifiability is stated per row instead"
}
}
},
"routeTemplate": "/gauge",
"priceUsdNumber": 0.01
}
},
"description": "[SIGNAL+PROOF] One official signal record for any signal_id and entity: current reading against the OFFICIAL threshold ladder (band, distance-to-action) plus a 5-year same-season percentile so you can tell routine from unusual. 180+ signals across macro, weather, hazard, shipping, filings, crypto and lifecycle lines. Free coverage check first at /gauge/coverage. Descriptive only, never a forecast or advice. No data -> 422 no_charge, not billed. $0.01 per call.",
"outputSchema": {
"input": {
"type": "http",
"method": "GET",
"example": {
"entity": "07010000",
"format": "thin",
"signal_id": "hydrology.river-level"
},
"required": [
"signal_id",
"entity"
],
"properties": {
"entity": {
"type": "string",
"examples": [
"07010000"
],
"description": "required - monitored object id, PAIRED WITH signal_id (e.g. 07010000 for hydrology.river-level, japan for earthquake.current_activity). Valid pairs: free GET /gauge/catalog?signal_id=<signal_id> -> signals[0].entities[]"
},
"signal_id": {
"type": "string",
"examples": [
"hydrology.river-level"
],
"description": "required - signal id in genus.species ASCII form (e.g. hydrology.river-level, crypto.spot, macro.unemployment, earthquake.current_activity). Full list: free GET /gauge/catalog"
}
},
"queryParams": {
"entity": "required - monitored object id, PAIRED WITH signal_id (e.g. 07010000 for hydrology.river-level, japan for earthquake.current_activity). Valid pairs: free GET /gauge/catalog?signal_id=<signal_id> -> signals[0].entities[]",
"signal_id": "required - signal id in genus.species ASCII form (e.g. hydrology.river-level, crypto.spot, macro.unemployment, earthquake.current_activity). Full list: free GET /gauge/catalog"
},
"discoverable": true,
"exampleRequest": "/gauge?signal_id=hydrology.river-level&entity=07010000&format=thin"
},
"output": {
"type": "object",
"required": [
"nature"
],
"properties": {
"tier": {
"type": "string",
"description": "Marker for the main single-point or history-series response (full / history-series); mutually exclusive with dim/addon"
},
"grade": {
"type": [
"string",
"null"
],
"description": "Honest data-grade disclosure (e.g. \"screening-level, not decision-grade\")"
},
"scope": {
"type": [
"string",
"null"
],
"description": "Honest statement of scope and limits: monitoring is not forecasting, intelligence is not instruction, and the boundary of what is verifiable"
},
"change": {
"type": [
"object",
"null"
],
"description": "Change, nested per metric: change.<metric> = {delta, direction, direction_reason?}, plus the scalar change.period (e.g. \"vs_previous\"). direction is one of rising/falling/stable/unknown - unknown means the direction CANNOT BE DETERMINED, it does not mean stable; in that case direction_reason carries a machine-readable cause: no-previous-record / metric-absent-in-previous / metric-absent-in-current / non-numeric-value"
},
"entity": {
"type": "string",
"description": "Monitored object id (e.g. btc / us / hormuz); full list at free /gauge/catalog or /gauge/preview"
},
"nature": {
"type": "string",
"description": "Neutrality statement: GAUGE supplies observations and trend description only - no judgement, no prediction, no recommendation"
},
"strata": {
"type": [
"object",
"null"
],
"description": "Statistical strata: share of each official band over the last 5 same-season years plus the band the current value falls in; null when there are no statistics"
},
"current": {
"type": [
"object",
"null"
],
"description": "Current reading. The inner metric structure varies by signal (crypto -> {price_usd, volume_24h, ...}; shipping -> {wind_kmh, wave_height_m, ...}). Units are carried in the field-name suffix; see also standard_ruler.unit"
},
"sources": {
"type": [
"array",
"null"
],
"items": {
"type": "object"
},
"description": "Source list [{name, value, weight, as_of, role, independent, relay_of?}]. independent:true = confirmed independent source; false = confirmed relay channel of another source (relay_of names the origin); null = independence unconfirmed (neither denied nor claimed). name/weight/independent/relay_of are record_hash core fields, so tampering with an independence claim breaks self-verification; as_of/value/role drift easily and are not hashed"
},
"previous": {
"type": [
"object",
"null"
],
"description": "Previous-period reading (a subset of the metrics in current; or {note} explaining that there is no previous value)"
},
"trend_7d": {
"type": [
"array",
"null"
],
"items": {
"type": "object"
},
"description": "Array of the last 7 trend points; [] means this signal has no series yet or the series does not apply - it is not an error"
},
"_citation": {
"type": [
"object",
"null"
],
"description": "Offline-verifiable citation: {statement_type, not_advice:bool, claim, fact, source, record_hash, signature(Ed25519), key_id, issuer_DID(did:key), verify_url} - the trust root for zero-trust self-verification"
},
"lifecycle": {
"type": [
"object",
"null"
],
"description": "Lifecycle block (state / birth_at / end_at / death_type / context). Part of the record_hash v3 core, so offline recomputation must include it; null for non-lifecycle lines"
},
"signal_id": {
"type": "string",
"description": "Signal id in genus.species ASCII binomial form (e.g. crypto.spot / macro.unemployment / shipping.route-disruption); full list at free /gauge/catalog"
},
"ots_status": {
"type": [
"string",
"null"
],
"description": "RETIRED FIELD - always \"pending\" or null; this field is no longer updated and is kept only for older parsers. Anchoring is done per write-batch (previously one root per day): each batch of writes gets a Merkle root stamped via OpenTimestamps, typically confirmed into a Bitcoin block within hours. See GET /gauge/anchor?hash= for the inclusion proof and the block number."
},
"provenance": {
"type": [
"object",
"null"
],
"description": "Data lineage: {served_from, data_as_of, oldest_leg_as_of, data_age_hours (frozen age, reference only), age_hours_now (age computed at request time - the real basis for freshness), freshness(fresh|recent|stale), freshness_basis (the cadence and threshold used for this row, as a string), dead_source (optional: upstream frozen or discontinued), data_lineage:[{signal,traceable_to,uncertainty,record_hash,...}], validation_status}. Freshness is cadence-aware, so monthly/quarterly/annual official lines are not misjudged against a 24h rule; the same basis is used by free /gauge/coverage. Buyers can trace back to the official source"
},
"source_ref": {
"type": [
"string",
"null"
],
"description": "Official source URL (provenance)"
},
"stat_ruler": {
"type": [
"object",
"null"
],
"description": "Statistical ruler: empirical percentile position across the last 5 same-season years; null when there are no statistics"
},
"summary_en": {
"type": "string",
"description": "Conditional - English one-line verdict derived at request time from this same record: reading + where it sits on the official ruler (distance to the first official alert) + seasonal percentile + direction, and staleness only when the data is actually old. Purely descriptive, never advice or forecast. Absent when this line carries no official ruler and no seasonal statistics (there is then nothing to conclude beyond the raw upstream reading). Not part of the record_hash core"
},
"summary_zh": {
"type": [
"string",
"null"
],
"description": "Human-readable one-line summary, IN CHINESE (zh-TW): reading + where it sits on the official ruler + statistical position. This is the HUMAN front-desk copy - machine consumers should read summary_en (English verdict) instead"
},
"unverified": {
"type": "boolean",
"description": "true = the source is untiered (source_tier is null); buyers and agents can filter on this"
},
"entity_name": {
"type": [
"string",
"null"
],
"description": "Human-readable name of the object"
},
"observed_at": {
"type": "string",
"description": "Actual observation time of the data, ISO-8601"
},
"record_hash": {
"type": [
"string",
"null"
],
"description": "sha256:<64hex> (contract A v3, binds the values plus provenance)"
},
"source_tier": {
"type": [
"string",
"null"
],
"description": "Source tier: T1 (first-hand official) / T2 or T2-<subtype, e.g. T2-exchange> (observable, curated) / screen-viewpoint; null = untiered (see unverified)"
},
"snapshot_date": {
"type": "string",
"description": "ISO-8601 date-time in UTC (e.g. 2026-07-24T00:00:00.000Z; aligned to midnight of that day)"
},
"update_status": {
"type": "object",
"properties": {
"text": {
"type": "string",
"description": "One-line human-readable form of the same fact"
},
"state": {
"type": "string",
"description": "on_schedule | overdue | not_published | unknown"
},
"overdue_days": {
"type": [
"integer",
"null"
],
"description": "How many days past that cadence; null when it cannot be determined"
},
"official_cadence": {
"type": [
"string",
"null"
],
"description": "The cadence the official source declares for this line (hourly/daily/weekly/monthly/quarterly/yearly/as-events)"
}
},
"description": "Did the OFFICIAL source keep its own declared publication cadence? Separate dimension from freshness: a record can be freshness=recent and update_status=overdue at the same time. state: on_schedule | overdue | not_published | unknown"
},
"data_age_hours": {
"type": [
"number",
"null"
],
"description": "Age frozen at collection time (0 = same hour), for reference only - if a collector stalls this field stops moving. For freshness always use provenance.age_hours_now (computed at request time) and provenance.freshness; the threshold basis is in provenance.freshness_basis"
},
"standard_ruler": {
"type": [
"object",
"null"
],
"description": "Official standard ruler (band / thresholds / normalized_index / pct_to_action, with unit and provenance); null when the line has no official ruler. Inner structure varies by signal"
},
"decision_points": {
"type": [
"object",
"null"
],
"description": "{count, points:[{tag,current,swappable,how}], note} - decision points you can re-run with a swapped tag (one swapped tag = one call); leave it alone and the original context is the default, at no extra charge"
},
"hash_core_version": {
"type": [
"integer",
"null"
],
"description": "Core-contract version of record_hash (currently 3); use it to pick the right core composition when recomputing offline"
},
"source_agreement_cv": {
"type": [
"number",
"null"
],
"description": "Multi-source agreement, coefficient of variation (smaller = closer agreement). Present ONLY when two or more CONFIRMED-INDEPENDENT sources measure the same fact at the same time - see sources[].independent. Same source relayed through two channels does not count as independent, and two different time bases (daily mean vs spot) do not count as agreement. Single-source / unconfirmed independence / not applicable -> null"
},
"record_hash_verifiable": {
"type": [
"object",
"null"
],
"description": "{mode:offline|via-endpoint, note}"
}
},
"additionalProperties": true,
"conditionalProperties": {
"last_fact": {
"type": [
"object",
"null"
],
"description": "Most recent qualifying fact for this line and entity, attached centrally (may be absent when the line has no qualifying fact yet)"
},
"decision_points": {
"type": [
"object",
"null"
],
"description": "Swappable decision points for this entity, attached centrally: {count, points:[{tag,current,swappable,how}], note}. Present only when the entity has at least one swappable tag in the index, so bundles for entities without one omit it"
},
"leg_availability": {
"type": [
"object",
"null"
],
"description": "Per-leg degradation disclosure: which legs are present, which are degraded and why. Present only when at least one leg is degraded"
},
"record_hash_verifiable": {
"type": [
"object",
"null"
],
"description": "Whether this response can recompute its own record_hash offline. Present only when the payload carries a top-level record_hash; may be absent on list-shaped deliveries where verifiability is stated per row instead"
}
}
}
},
"maxAmountRequired": "10000",
"maxTimeoutSeconds": 300
},
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"payTo": "0x2d16a243ba9fAcC6AC85519d5efad2149DC4C6c3",
"scheme": "exact",
"network": "base",
"amountAtomic": "10000"
}
]
}Source catalog records are retained separately from live endpoint observations. Sonar score, uptime, and latency are advisory metrics. CDP indexing is not inferred from validation.