← Back to kairossignal.com

KAIROS Signal Customer Technical Manual

The comprehensive, verifiable dataset for decentralized physical infrastructure networks (DePIN). Every value is measured live, every value carries proof. Delivered over REST, MCP, and A2A — this manual documents the full API surface, pricing, and provenance model.

Platform status: Live and production-ready.
Primary delivery: REST API (HTTP/JSON)
Agent delivery: MCP server + A2A agent card
Version: v1
Updated: 2026-08-25
372
Networks w/ live data
295
First-party telemetry
77
On-chain market only
727
Total cataloged
11,127
Live series
134
Distinct data sources
665K
Rows in ClickHouse
19
Live REST endpoints

What KAIROS measures

KAIROS Signal tracks the operating health, supply, revenue, and market position of decentralized physical infrastructure networks across every major blockchain. We do not guess, model, or interpolate. We read the network's own telemetry, chain state, and markets — and we show you the receipts.

Of the 727 networks we have cataloged, 372 currently return live data. Of those, 295 are served by first-party telemetry read directly from the network's own API or chain and 77 are on-chain market only. We maintain 11,127 live time series sourced from 134 distinct upstream sources, stored in 4,443,209 rows in ClickHouse.

Coverage & Scale

Metric Value Meaning
networks_live372Networks with live telemetry flowing today
first_party295Networks read from their own API or chain
market_only77Networks with on-chain market data only
catalog_only224Cataloged but no live data yet
catalog_total727Total cataloged networks
live_series11,127Individual live time series
data_sources134Distinct upstream data sources
rows_clickhouse665KRows in our ClickHouse store
endpoints19Live REST API endpoints

Quick Start

The fastest path: hit a public endpoint, no key required. The network list, a single network's detail, first-party supply, and the source registry are all free to browse — no registration, no card. Networks are addressed by their canonical ticker (Helium is HNT, not HELIUM); an unknown symbol returns 404. On the free tier /v1/networks returns a sample of the catalog rather than all of it — the response carries n_networks_shown and n_networks so you can see which — while /v1/network/<SYM> resolves any catalogued symbol, sampled or not.

CURL — Health Checkcurl https://api.kairossignal.com/health
CURL — Network List (no key)curl https://api.kairossignal.com/v1/networks
CURL — Single Network (no key)curl https://api.kairossignal.com/v1/network/HNT
CURL — With API Keycurl -H "X-API-Key: your_key_here" \
  https://api.kairossignal.com/v1/signals

Without a key that last one answers 402 Payment Required with a JSON body telling you what unlocks it — that is the expected, documented behaviour, not a failure.

Prefer a proxy? Every endpoint is also served at https://kairossignal.com (e.g. https://kairossignal.com/v1/networks). Use whichever fits your network policy.

Base URL & Versioning

Channel Base URL Notes
REST (primary)https://api.kairossignal.comVersioned under /v1
REST (proxy)https://kairossignal.comSame endpoints
Engines (paid)https://api.kairossignal.com (same host, no port suffix)Node-quality, sector-health, bot-detection, competitive-landscape, gpu-supply-demand — all under /v1/
MCP serverhttps://kairossignal.com/mcp/10 tools, agent-ready
A2A agent cardhttps://a2a.kairossignal.com/.well-known/agent-card.jsonAgent-to-Agent discovery
DAG Manifold APIhttps://dag.kairossignal.comCorrelation/analytics manifold

Versioning is path-based (/v1/...). Breaking changes ship under a new major version (/v2/...) with a documented migration window. Minor additive changes (new fields) do not bump the version.

Authentication

Authentication uses a single API key passed in the X-API-Key header. Keys are issued by POST /v1/credits/register or via Stripe checkout (GET /v1/credits is not a route; it returns 404 with the list of the five real /v1/credits/* routes). There is no OAuth and no session tokens, and you do not sign your requests — the key alone authenticates you. Responses are a different matter: every /v1/ response we serve is ed25519-signed, so you hold a verifiable receipt of what we returned and when. See Response receipts below.

Authentication is not authorisation. The key identifies you; what it can reach depends on your tier, and these are two separate systems. Verified end to end on 2026-09-13:

  • Keyless. The browsing surfaces — /v1/networks, /v1/network/<SYM>, /v1/supply, /v1/market, /v1/revenue, /v1/provenance, /v1/history, /v1/attest — need no key and no account at all.
  • Credits. Registering grants free credits. You spend them with POST /v1/credits/purchase, which ships a data product inline and debits your balance. Credits do not change your tier. Buying a $0.49 snapshot does not lift the gate on a tier-gated endpoint — the balance falls and the 402 stays.
  • Tier. The cross-network derived views — /v1/signals, /v1/correlations, /v1/digest, /v1/grades, /v1/health-profile/<SYM> and the rest below — are unlocked by a subscription, not by credits. See pricing.

So the command below is an authentication example, not a working call for a newly registered key: /v1/signals is tier-gated, and a fresh key receives 402 with a how_to_unlock block naming the tier it needs. That is the expected response, not a fault.

AUTH — API Keycurl -H "X-API-Key: ks_live_xxxxxxxxxxxxxxxx" \
  https://api.kairossignal.com/v1/signals

Response receipts (ed25519)

Every GET against /v1/ returns three extra headers. They let you prove later what this API served you — which a verify_url on its own cannot do, because an upstream URL only shows you what the upstream says now.

HeaderMeaning
X-Kairos-Signatureed25519:<base64> over the response body and request path
X-Kairos-TimestampRFC3339 UTC instant we served it
X-Kairos-Signing-KeyURL of the public key that verifies the signature
VERIFY A RECEIPTcurl -sS -D headers.txt -o body.json \
  "https://api.kairossignal.com/v1/networks?limit=1"
curl -sS https://kairossignal.com/.well-known/kairos-signing-key.json

What this proves, and what it does not. The signature proves these bytes came from us, unaltered, at that timestamp — we are on the record for what we said. It does not prove the upstream network agreed with us at that moment. Note the signature is attached on GET; a HEAD request returns headers without it.

Key tiers & behavior

Tier Key required? Free endpoints Paid endpoints
Verify Free No /v1/networks, /v1/supply, /v1/provenance 402 payment_required
Paid (Design Partner / Pro / Enterprise) Yes All free + paid Full access
Free endpoints need no key. But if you attach a key that is unpaid, paid endpoints return 402 payment_required with a message telling you how to upgrade. Public endpoints (/v1/networks, /v1/supply, /v1/provenance) always respond with or without a key.
CURL — Payment Required Responsecurl -i https://api.kairossignal.com/v1/signals

HTTP/1.1 402 Payment Required
Content-Type: application/json

{"error": "payment_required", "message": "Valid X-API-Key required for this endpoint",
 "plan": "pro", "upgrade_url": "https://kairossignal.com/#access"}

Header reference

HeaderRequiredDescription
X-API-KeyPaid endpointsYour live API key
AcceptNoapplication/json (default)

Request budgets

Every tier has an exact daily request budget. These are the numbers the gate enforces — not guidance, and not rounded for the page.

TierRequests / dayCounted against
Verify Free (no key) 1,000 Your IP
Verify Free (free key) 1,000 Your key
Design Partner 100,000 Your key
Watchtower 100,000 Your key
Pro 500,000 Your key
Enterprise 5,000,000 Your key

Budgets reset at 00:00 UTC. Anonymous callers are counted per IP so the free tier cannot be farmed by omitting the key. There is no per-second or per-minute limit — the daily budget is the whole limit.

Five endpoints are never counted: /health, /try, /v1/world, /v1/brief and /v1/key/by-session. Discovery, liveness checks and the post-checkout key handover must never be the thing that 429s you. Measured 2026-09-14: three /health calls and one /v1/world moved the counter by 0; one /v1/networks moved it by 1.
CURL — Budget Exhausted Responsecurl -i https://api.kairossignal.com/v1/changes -H "X-API-Key: $KAIROS_KEY"

HTTP/1.1 429 Too Many Requests
Content-Type: application/json

{"error": "daily request quota exceeded", "tier_served": "pro",
 "daily_limit": 500000, "resets": "00:00 UTC",
 "upgrade": "https://kairossignal.com/pricing"}

requests_remaining_today is attached to the response body on some — not all — counted endpoints, so you can back off before you are cut off rather than after. Measured 2026-09-14: present on /v1/networks and /v1/supply; absent on /v1/provenance, /v1/compare and /v1/digest. Do not build a client that depends on the field being there. The 429 body always states your daily_limit.

Pricing & Tiers

Tier Price What you get Requests / day Term
Verify Free $0 Browse /v1/networks, /v1/supply, /v1/provenance with verify_url 1,000 Forever
Design Partner $199/mo Full API access at a rate locked for the life of the subscription 100,000 Locked while active
Watchtower $249/mo Everything in Design Partner plus material-change detection across a 10-network watchlist and the weekly IC Pack 100,000 Monthly
Pro $499/mo Full API + all 8 engines (node-quality, dilution-risk, gpu-supply-demand, sector-health, bot-detection, geo-concentration, dev-velocity, competitive-landscape) under /v1/, plus bulk CSV/NDJSON export 500,000 Monthly
Enterprise from $2,000/mo Custom schemas, SLA, dedicated support, change webhooks 5,000,000 Custom
Design Partner rate: $199/mo locks that rate for as long as you stay subscribed — it does not step up to the post-cap $249/mo. If you're building on top of KAIROS before the wider rollout, this is the entry point for full API access with a price guarantee.
Pro adds the engines. Engine endpoints live on the main API host under /v1/ and require a Pro (or higher) key. See the Engines section for details.
Start free. The Verify Free tier is fully functional for verification use cases — you can confirm a network's live supply and follow its verify_url back to the source at zero cost.

Credits & Deposits

Beyond monthly plans, KAIROS runs a self-serve agent credit system. You purchase credits up front via Stripe, and credits are drawn against usage (especially for agent-facing workloads).

Payment rails

MethodDetail
Card (Stripe)Self-serve at checkout; issues API key immediately
USDC on BaseRequires a verified sending wallet, a current quote and a finalized transfer. Instructions and current availability.
CURL — Product & Price List (no key)curl https://api.kairossignal.com/v1/credits/pricing
CURL — Check Your Balancecurl -H "X-API-Key: your_key" \
  https://api.kairossignal.com/v1/credits/balance

Note the distinction in failure codes: /v1/credits/balance is about who you are, so an unauthenticated call returns 401 Unauthorized. The metered data endpoints are about what you have bought, so they return 402 Payment Required instead.

USDC top-ups require verified wallet ownership. Verify your sending wallet and obtain a current quote before sending. Credit requires the exact quoted amount and a finalized Base transfer. Follow the complete flow. Legacy uncredited transfers remain held for attribution review.

Other billed services

ServiceBase URLBilling
DAG Manifold APIhttps://dag.kairossignal.com$99/mo per customer

Endpoint Index

Base URL: https://api.kairossignal.com (or https://kairossignal.com). None of these are "coming soon" — every one is implemented and answering today, with one routing exception noted below.

How to read the Auth column. Free means the endpoint answers 200 with no key at all. Free (sampled) means the same, but an anonymous call returns a rotating slice of the rows rather than the whole set — the response's access block always tells you how many rows you got and how many were withheld. Key means an anonymous call is refused with HTTP 402 Payment Required and a JSON body explaining what unlocks it; it is never a silent empty result.

Known routing gap (verified 2026-09-13). /v1/correlations/lead-lag is implemented and answers 402 on the service itself, but the public host currently returns nginx 404 for that path. Until that is routed, treat lead-lag as unreachable from outside. Every other endpoint in this table was executed against the public host on 2026-09-13 and behaved as the Auth column says.
#MethodEndpointDescriptionAuth
1GET/healthAPI health check
2GET/v1/networksFull network list with telemetry tiersFree
3GET/v1/network/<SYM>Single network detailFree
4GET/v1/supplyFirst-party supply telemetry (scarce tier)Free
5GET/v1/marketPrice, mcap, volume (CoinGecko/DefiLlama)Free (sampled)
6GET/v1/revenueProtocol revenue / feesFree (sampled)
7GET/v1/provenanceSource registry with verify_url per sourceFree
8GET/v1/correlationsCross-network correlation matrixKey
9GET/v1/correlations/lead-lagLead-lag analysisKey
10GET/v1/indicatorsTechnical indicatorsKey
11GET/v1/signalsTrading signalsKey
12GET/v1/digestDaily digest of changesKey
13GET/v1/changesRecent changes / movementsKey
14GET/v1/compare?metric=<canonical>Compare networks on a metricKey
15GET/v1/history?network=<SYM>&metric=<M>&days=<N>Historical time seriesFree (capped window)
16GET/v1/health-profile/<SYM>Network health profileKey
17GET/v1/gradesNetwork gradesKey
18GET/v1/enrichment/<SYM>Enrichment data per networkKey
19GET/v1/ai-intelAI intelligence layerKey
GET /health

API health check. Returns service status and version. No key required.

CURL — Healthcurl https://api.kairossignal.com/health
RESPONSE{"status": "ok", "version": "v1", "time": "2026-08-25T12:00:00Z"}
GET /v1/networks

Full network list with telemetry tiers. This is the free browsing surface — no key required. Each entry tells you whether the network is first-party, market-only, or catalog-only.

This endpoint is paged. One anonymous call returns a slice of the catalog — 40 rows at the time of writing — not the whole list. The response tells you exactly what you got: n_networks (the full catalogued count), n_networks_shown (rows in this response), and access.withheld_networks (the remainder). The slice is ordered richest-telemetry first and re-rotates every 30 minutes, so a given symbol is not guaranteed to be on the page you happen to fetch. The counts, the tier legend and the not_covered map are always complete and always free. To pull a specific network, call /v1/network/<SYM> directly — also free, and not subject to the rotation.

CURL — Network Listcurl https://api.kairossignal.com/v1/networks
RESPONSE (abridged){
  "n_networks": 782,
  "n_networks_shown": 40,
  "access": {"tier_served": "free", "withheld_networks": 742},
  "networks": [
    {"symbol": "HNT", "name": "Helium", "category": "wireless", "chains": "solana",
     "telemetry_tier": "first_party_telemetry", "has_live_supply_telemetry": true,
     "has_onchain_market_data": true, "first_party_stats_api": true,
     "live_supply_metrics": 2},
    {"symbol": "MOBILE", "name": "Helium Mobile", "category": "wireless", "chains": "solana",
     "telemetry_tier": "first_party_telemetry", "has_live_supply_telemetry": true},
    {"symbol": "FIL", "name": "Filecoin", "category": "storage",
     "telemetry_tier": "onchain_only", "has_onchain_market_data": true,
     "has_live_supply_telemetry": false}
  ],
  "not_covered": {"IO": "io.net — no free public network-stats endpoint", "...": "..."}
}

Tier values, exactly as the API spells them: first_party_telemetry (295), onchain_only (77), market_data_only, catalog_only (224). The not_covered map names the networks we deliberately do not claim first-party coverage for, and says why — read it before you assume a missing symbol is an outage.

GET /v1/network/<SYM>

Single network detail. No key required — this is part of the free browsing surface, same as /v1/networks and /v1/supply. Use the network's canonical ticker, not its project name: Helium is HNT (with IOT and MOBILE as its two subnetworks), Filecoin is FIL. A project name such as HELIUM is not a symbol and returns 404. If you are unsure of a symbol, take it from the symbol field of /v1/networks — but note that on the free tier that list is a sample, not the full directory: compare n_networks_shown against n_networks in the response to see how much of the catalog you are being shown. /v1/network/<SYM> resolves any catalogued symbol, including ones the sampled list does not display — HNT, FIL and STORJ all return full detail whether or not they appear in your copy of /v1/networks. So a symbol missing from that list is not evidence the network is unavailable.

CURL — Network Detail (no key)curl https://api.kairossignal.com/v1/network/HNT

Returns the symbol you asked for echoed back, the catalog record (name, category, chains, token address, website), on-chain market/revenue values, the live first-party series under live.supply_telemetry, and the standing disclosure block. Every live value carries its own source, as_of and verify_yourself URL; every on-chain value carries source, as_of and verify_url. For HNT that verify link points at entities.nft.helium.io — Helium's own hotspot endpoint, which you can call without us.

GET /v1/supply

First-party supply telemetry — the scarce tier. This is real circulating supply read from each network's own API or chain, not a CoinGecko estimate. Free to browse.

CURL — Supply (no key)curl https://api.kairossignal.com/v1/supply
RESPONSE (abridged){
  "series": 11,127,
  "networks": 295,
  "tier": "supply_telemetry",
  "data": {
    "HNT": {
      "MOBILE_HOTSPOTS": {
        "value": 57904.0, "source": "depin_first_party",
        "as_of": "2026-09-13 17:09:33.702", "age_hours": 0.9, "freshness": "live",
        "verify_yourself": "https://entities.nft.helium.io/v2/hotspots/pagination-metadata?subnetwork=mobile"
      }
    }
  },
  "not_covered": {"IO": "io.net — no free public network-stats endpoint", "...": "..."}
}

Shape and paging. data is keyed by symbol, then by metric name — it is not a flat array. Like /v1/networks, an anonymous call returns a rotating slice (n_networks of n_networks_available), so a particular symbol may not be on the page you fetch; /v1/network/<SYM> always returns a named one. Every metric carries source, as_of and verify_yourself. Absent metrics are omitted, never zero-filled — a symbol missing here means no verified value exists, and not_covered says which ones we do not claim and why.

GET /v1/market

Market data — price, market cap, volume — sourced from CoinGecko and DefiLlama. No key required: an anonymous call returns a rotating sample of the networks with live market telemetry (n_symbols of n_symbols_available), with every value carrying its own provenance. A key lifts the sampling, it does not change the values. This is the commodity tier — price is available anywhere; it is included for convenience, not as the product.

CURL — Market (no key)curl https://api.kairossignal.com/v1/market
GET /v1/revenue

Protocol revenue / fees. Real fee capture per network, from the DefiLlama fees dataset. No key required — like /v1/market this is a sampled free tier: the response reports n_networks of n_networks_available, and not_covered names the networks we do not claim revenue for.

CURL — Revenue (no key)curl https://api.kairossignal.com/v1/revenue
GET /v1/provenance

Source registry — every source we read from, with a verify_url per source. This is how you confirm the data yourself. Free to browse.

CURL — Provenance (no key)curl https://api.kairossignal.com/v1/provenance
RESPONSE (abridged){
  "sources": 69,
  "sources": [
    {"name": "CoinGecko", "kind": "commodity", "networks": 288,
     "verify_url": "https://api.coingecko.com/api/v3/coins/markets"},
    {"name": "bittensor_subtensor_rpc", "networks": 130,
     "verify_url": "https://...subtensor..."},
    {"name": "evm_blockscout", "networks": 118,
     "verify_url": "https://.../api/v2/"}
  ]
}
GET /v1/correlations

Cross-network correlation matrix. Requires key.

CURL — Correlationscurl -H "X-API-Key: your_key" \
  https://api.kairossignal.com/v1/correlations
GET /v1/correlations/lead-lag

Lead-lag analysis — which series leads, which lags, and the lag horizon. Requires key.

CURL — Lead-Lagcurl -H "X-API-Key: your_key" \
  https://api.kairossignal.com/v1/correlations/lead-lag
GET /v1/indicators

Technical indicators computed over live series. Requires key.

CURL — Indicatorscurl -H "X-API-Key: your_key" \
  https://api.kairossignal.com/v1/indicators
GET /v1/signals

Trading signals derived from the indicator layer. Requires key.

CURL — Signalscurl -H "X-API-Key: your_key" \
  https://api.kairossignal.com/v1/signals
GET /v1/digest

Daily digest of changes across networks. Requires key.

CURL — Digestcurl -H "X-API-Key: your_key" \
  https://api.kairossignal.com/v1/digest
GET /v1/changes

Recent changes and movements across the dataset. Requires key.

CURL — Changescurl -H "X-API-Key: your_key" \
  https://api.kairossignal.com/v1/changes
GET /v1/compare?metric=<canonical>

Compare multiple networks on a single canonical metric. Requires key.

CURL — Comparecurl -H "X-API-Key: your_key" \
  "https://api.kairossignal.com/v1/compare?metric=circulating_supply"

Use canonical metric names from /v1/provenance.

GET /v1/history?network=<SYM>&metric=<M>&days=<N>

Historical time series for one network and metric over N days. No key required, but the free tier caps the window: the response echoes window_days and window_capped_by_tier so you can see whether you got the full range you asked for. The requested symbol comes back as a key inside data, not as a top-level network field.

CURL — History (no key)curl "https://api.kairossignal.com/v1/history?network=HNT&metric=circulating_supply&days=30"
RESPONSE (abridged){
  "source_table": "default.depin_onchain",
  "window_days": 30, "window_capped_by_tier": true, "tier_served": "free",
  "data": {
    "HNT": {
      "circulating_supply": {
        "tier": "market", "source": "CoinGecko /coins/markets",
        "points": [{"date": "2026-09-06", "value": 187659024.4339131, "n_observations": 24}, "..."]
      }
    }
  }
}
GET /v1/health-profile/<SYM>

Network health profile — the composite operating-health view. Requires key.

CURL — Health Profilecurl -H "X-API-Key: your_key" \
  https://api.kairossignal.com/v1/health-profile/HNT
GET /v1/grades

Network grades across the catalog. Requires key.

CURL — Gradescurl -H "X-API-Key: your_key" \
  https://api.kairossignal.com/v1/grades
GET /v1/enrichment/<SYM>

Enrichment data per network — supplementary derived fields. Requires key.

CURL — Enrichmentcurl -H "X-API-Key: your_key" \
  https://api.kairossignal.com/v1/enrichment/HNT
GET /v1/ai-intel

AI intelligence layer — the agent-facing analytical surface. Requires key.

CURL — AI Intelcurl -H "X-API-Key: your_key" \
  https://api.kairossignal.com/v1/ai-intel

Engines (Paid — Pro & Enterprise)

Engines run on the same API host, on the same ordinary /v1/ paths as everything else. They require a Pro ($499/mo) or higher key. There are eight engines:

EnginePathDocumented below
Node Quality/v1/node-qualityyes
Sector Health/v1/sector-healthyes
Bot Detection/v1/bot-detectionyes
Competitive Landscape/v1/competitive-landscapeyes
GPU Supply & Demand/v1/gpu-supply-demandyes
Dilution Risk/v1/dilution-risknot yet — call it
Geo Concentration/v1/geo-concentrationnot yet — call it
Dev Velocity/v1/dev-velocitynot yet — call it
Three engines ship without a reference section yet. Dilution Risk, Geo Concentration and Dev Velocity are live and included in your Pro key — this page just has not written them up. Until it does, call them directly; each response carries the same provenance fields as every other surface. This page said “five engines” until 2026-09-14, which undersold the tier by three. Verified live that day: all eight return 402 without a key on api.kairossignal.com, i.e. the routes exist and gate correctly.
Engine base: https://api.kairossignal.com — identical to the main API, with no port suffix. Send your X-API-Key header exactly as with the main API. Internally these are served by a separate process on port :6035, but that port is not reachable from outside and you should never address it directly: use https://api.kairossignal.com/v1/node-quality, not …:6035/v1/node-quality. Without a key each engine answers 402.
GET /v1/node-quality

Node-quality engine. Returns 5 key metrics per network evaluating node operational health.

CURL — Node Qualitycurl -H "X-API-Key: pro_key" \
  https://api.kairossignal.com/v1/node-quality
GET /v1/sector-health

Sector-health engine. Returns 4 sector-level health indices.

CURL — Sector Healthcurl -H "X-API-Key: pro_key" \
  https://api.kairossignal.com/v1/sector-health
GET /v1/bot-detection

Bot-detection engine. Returns 5 bot-detection signals per network.

CURL — Bot Detectioncurl -H "X-API-Key: pro_key" \
  https://api.kairossignal.com/v1/bot-detection
GET /v1/competitive-landscape

Competitive-landscape engine. Returns 4 competitive metrics.

CURL — Competitive Landscapecurl -H "X-API-Key: pro_key" \
  https://api.kairossignal.com/v1/competitive-landscape
GET /v1/gpu-supply-demand

GPU supply/demand engine. Returns 6 GPU market metrics.

CURL — GPU Supply & Demandcurl -H "X-API-Key: pro_key" \
  https://api.kairossignal.com/v1/gpu-supply-demand

Provenance Model

The KAIROS provenance model is the core promise: every value is attributable and verifiable. Nothing is fabricated, estimated into place, or back-filled. If a metric isn't flowing, it is absent — never filled with zero.

Every value carries four attributes

AttributeTypeDescription
sourceStringThe upstream source name (e.g. solana_rpc, first_party_api)
as_ofISO-8601When the value was measured upstream
verify_urlURLPoints to the upstream API you can call yourself to reproduce the value
freshnessfresh|stale|deadLive freshness verdict

The rules

  • No zero-fill. An absent metric is absent, not zero.
  • No estimates. We report measured values only.
  • No back-fill. Missing history is not invented.
  • Verifiable. verify_url lets you reproduce any figure.
Why this matters. When your models depend on circulating supply, revenue, or node counts, a "zero" from a dead feed will silently poison the signal. KAIROS surfaces the freshness verdict on every value so your pipeline can distinguish real zeros from missing data and act accordingly.

Data Sources

We aggregate from 69 distinct data sources. The table below is the top 15 by network count, covering the majority of live coverage. Every source carries a verify_url in /v1/provenance.

Source Networks Data provided Class
CoinGecko288Market data (price, mcap, volume)COMMODITY
Bittensor subtensor_rpc130Bittensor subnet telemetryfirst_party
evm_blockscout118Holders, transfers, gaschain
github54Dev velocitysocial
bsc_rpc50BSC token supplychain
solana_rpc49Solana L1 + SPL tokenschain
first_party_api44Per-network first-party stats APIsfirst_party
ethereum_rpc32Ethereum token supplychain
ethereum_blockscout27Ethereum block explorerschain
DefiLlama protocols25TVLdefi
DefiLlama fees21Revenue / feesdefi
bsc_deep_stats20BSC token supply + circulatingchain
DefiLlama chains16Chain TVLdefi
cosmos_lcd12Cosmos validators, bonded stakechain
polygon_rpc6Polygon token supplychain
Provenance classes: sources are tagged so you can separate commodity market data (CoinGecko), first-party telemetry (the network's own API/chain), chain reads (RPC/block explorer), defi aggregates (DefiLlama), and social signals (GitHub). Query /v1/provenance for the full 69-source registry with per-source verify_url.

Delivery Channels

Channel Where Status
REST API (HTTP/JSON)https://api.kairossignal.com✅ Live
MCP serverhttps://kairossignal.com/mcp/ — 10 tools, agent-ready✅ Live
A2A agent cardhttps://a2a.kairossignal.com/.well-known/agent-card.json✅ Live
WebSocketNot yet
WebhooksNot yet
Agent-native by design. Beyond REST, KAIROS exposes an MCP server with 10 tools so AI agents can consume the dataset directly, and an A2A agent card for peer-agent discovery. This makes the data reachable from autonomous toolchains without bespoke scraping.

Kairos Signal · [email protected] · Home · Pricing · Internal Docs

Data for informational and research purposes only. Not investment advice.