Kairos Signal — verifiable DePIN data API

com.kairossignalPublished by kairossignal.comOfficial publisherv3.7.0Updated Nov 4, 2026

DePIN network telemetry with the source, as_of time and an upstream verify URL on every value.

VerifiedStreamable HTTPWeb executableWeb Search & ScrapingFinanceData & Analytics

Overview

AI-generated overview

Remote MCP server for DePIN network telemetry and research data, with source links, observation times and upstream verify URLs on each value.

What you can do
  • Find DePIN networks and Bittensor subnets by name or ticker, and read their latest measurements with provenance and freshness fields
  • Read observed daily metric history, dataset catalogs, row counts and per-feed coverage, freshness and history depth
  • Verify a published figure against the upstream API response, and check Merkle membership of retained observations
  • Inspect the derivation ledger of archived upstream fetches with payload and code hashes, and query raw dataset rows
  • Register an agent key, list products and prices, purchase data, top up credits and check the balance
  • Run paid descriptive analytics such as Hodge lead-lag decomposition, correlation-spectrum comparison, slashing audit…
When to use it
Useful when you need sourced, timestamped DePIN or physical-world data and want to check a figure against its origin before relying on it. Also fits research workflows that need coverage and freshness metadata, or paid descriptive analytics on network metrics.
Requirements
A remote Streamable HTTP endpoint; no local runtime needed, though a stdio bridge package exists for stdio-only clients. Most read-only tools work without a key; get_network_signals needs a paid-tier key with the engines capability in the X-API-Key header. Account tools require an api_key inside the tool input, and paid analytics spend credits.
Before you install
Paid analytics charge credits per answered call with no idempotency key, so avoid retrying uncertain calls. Purchases and top-ups spend real money, including card checkout and USDC modes; a quote or checkout link is not payment confirmation. Account tools need the api_key passed in the tool input. Verification checks upstream response matching or Merkle membership, not upstream truth, and some data is cached or may include rejected observations.

Installation

In SourceWeft

  1. Open Kairos Signal — verifiable DePIN data API in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/com.kairossignal%2Fkairos-signal/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "kairos-signal-verifiable-depin-data-api": {
      "type": "http",
      "url": "https://kairossignal.com/mcp"
    }
  }
}

README

Kairos Signal MCP Server — DePIN and world data

Measured DePIN telemetry, physical-world datasets and descriptive research analytics through REST and MCP. Use source links, observation times and coverage metadata to decide whether a result is suitable for your question. Availability and freshness vary by feed.

Kairos Signal is not a property-owner contact or lead-generation service. The current product is data and research, not a promise of profitable trading signals.

Coverage changes. Use find_networks, get_data_dictionary and the network catalog rather than a copied network count. Catalog entries, distinct networks, Bittensor subnets, rows and metric series are different quantities. get_stats describes dataset row counts, not network coverage.

Connect directly

Full MCP endpoint (Streamable HTTP):

https://kairossignal.com/mcp

Read-only edition, without account creation, purchases or payment tools:

https://kairossignal.com/mcp/public

Read-only does not mean every tool is anonymous or free. In either edition, get_network_signals requires an eligible paid-tier key with the engines capability. Other discovery/data tools have their stated no-key samples and limits. The full edition also exposes account tools and paid analytics.

Claude Code:

sh
claude mcp add --transport http kairos-signal https://kairossignal.com/mcp

Cursor, Windsurf and clients that accept a URL:

json
{"mcpServers": {"kairos-signal": {"url": "https://kairossignal.com/mcp"}}}

VS Code (.vscode/mcp.json):

json
{"servers": {"kairos-signal": {"type": "http", "url": "https://kairossignal.com/mcp"}}}

Stdio clients can use this package's bridge:

json
{"mcpServers": {"kairos-signal": {"command": "npx", "args": ["-y", "kairos-mcp-server"]}}}

Key placement depends on the tool:

  • get_network_signals requires an eligible subscription key in the connection's X-API-Key header. Tiered network/history access also uses that header. In the stdio bridge, KAIROS_API_KEY supplies the header.
  • Paid analytics accept that header or an api_key tool argument.
  • purchase_data, topup_credits and check_balance require api_key inside the tool input, even when the connection or bridge already has a header key. The bridge does not inject it into the arguments.

An API key, a credit balance and a subscription entitlement are not interchangeable.

Official MCP Registry identity: com.kairossignal/kairos-signal. Prefer the vendor endpoint above over a third-party proxy. Smithery's October 31, 2026 service notice says its proxy and connection-management services will close while its directory remains.

Ask a measured question

  • GPU capacity: find_networks {"query":"akash"}, then get_network {"symbol":"AKT","metric_filter":"gpu"}.
  • Observed history: get_metric_history {"symbol":"FIL","metric":"ACTIVE_MINERS"}. An absent series is not a zero.
  • Check a figure: verify_value {"symbol":"FIL","metric":"ACTIVE_MINERS"}. Read the verdict; some upstream values cannot be checked by a GET.

Tools and access

The bridge obtains tools/list from the hosted service rather than maintaining a separate implementation. Consult that live schema for current inputs, prices and limits.

ToolPurposeAccess / effect
get_network_signalsScheduled Hodge/lag-relation snapshots for configured market, DePIN and world cohorts. Descriptive, not a trading recommendation.Eligible paid-tier key with engines capability in the connection header
find_networksFind networks or subnets by name or ticker. Resolve ambiguous tickers before use.No key
get_networkLatest supported first-party network measurements, with provenance and freshness fields.No key
get_metric_historyObserved daily history for one metric; gaps are not zero-filled.No key for the free window; paid tiers have different limits
verify_valueCompare with a supported upstream GET response, which may be cached; inspect upstream.read_at_utc and the verdict.No key
register_agentCreate an API key; starter credits are conditional on the current per-IP policy.Creates an account/key
list_productsProduct descriptions, prices and deliverability information.No key
purchase_dataPurchase an eligible product; delivery can be inline or a receipt with a retrieval URL.api_key in tool input and sufficient credits
topup_creditsRequest a supported card-checkout link or USDC quote; follow current payment instructions.api_key in tool input; obtaining a quote is not a confirmed payment
check_balanceRead the account credit balance.api_key in tool input
list_datasetsCurrent dataset catalog.No key
get_statsDataset row counts, scope and free-tier limits; not a count of distinct networks.No key
get_data_dictionaryCoverage, observation freshness, history depth and endpoints per feed.No key
get_derivation_ledgerIndex of covered archived fetches and their payload/code hashes; raw payload bytes are a separate product.No key
fetch_datasetRaw archive rows within the applicable query limits. Rejected or unchecked observations can be retained.No key for the free sample
verify_footprintMerkle membership for a supported retained observation; not proof of upstream accuracy or zero-knowledge computation.No key
get_hodge_regime_sieveHodge decomposition of metric lead-lag flows; the historical tool name does not imply regime classification.Paid per answered call
get_rmt_regime_stateCorrelation-spectrum comparison with a Marchenko–Pastur reference; not a calibrated regime test.Paid per answered call
get_depin_slashing_auditEnforcement-capacity calculation from sourced protocol parameters; bounds and unavailable inputs remain explicit.Paid per answered call
get_shap_node_attributionDay/unit Shapley decomposition of observed metric changes; not causal attribution or a forecast.Paid per answered call
get_listing_dilution_scoreMeasured token-supply changes; not an exchange-listing or investment score.Paid per answered call

Paid analytics can spend credits. Read the current description before calling; do not repeatedly invoke a paid tool to retry an uncertain result. Their historically named identifiers are retained for compatibility, not as claims of forecasting or causal validation.

Provenance: what the checks establish

Supported network measurements expose provenance and observation-time fields. A source URL is a way to inspect an origin, not a guarantee that the origin is correct. History, derived analytics, raw archives and catalog metadata have different response contracts; do not assume that every output is a fresh first-party measurement.

verify_value compares against a supported upstream GET response that may be cached; inspect upstream.read_at_utc and the verdict rather than assuming a new upstream fetch. verify_footprint checks retained Merkle membership, not upstream truth, independent Bitcoin confirmation or a zero-knowledge proof. The derivation ledger covers the fetches it explicitly lists; a network can have live telemetry without an archived derivation entry. Raw archives can retain rejected or unchecked observations—read their quality fields.

Products, delivery and pricing

Use list_products and the live credit catalog for current prices, eligibility and deliverability; use the pricing page for subscription access. This documentation does not set prices or payment policy.

  • Registration creates a key; starter-credit eligibility depends on the current per-IP policy. Read the returned balance instead of assuming a grant. A starter key does not itself grant paid-tier engine access.
  • purchase_data requires api_key in its tool input and a currently deliverable product. Small responses can arrive inline; larger deliveries return a receipt and retrieval URL. Use your own stable idempotency_key for each intended purchase and reuse it only for retries of that purchase.
  • The current catalog describes dag_manifold_30d as a DAG API access product. Listed legacy/retired products are not automatically purchasable; read deliverability before committing credits.
  • topup_credits provides payment instructions for supported card and USDC modes. A quote or checkout link is not payment confirmation. Follow the payment documentation; never send funds without a successful current quote.

Links

Measurements and research only; not investment advice. Terms.

License: MIT

Source: README.md at commit 36c85ee

Tools

21

get_network_signals

Read live network signal decomposition

Returns the current scheduled Hodge and lag-relation snapshots, coverage, observation times, invariants and timestamped history for configured market, DePIN and world cohorts. Requires an API key on a paid tier that includes the engines capability (https://kairossignal.com/pricing), sent in the X-API-Key header of the MCP connection; the free starter key from register_agent does not include it, and a call without a qualifying key is refused with isError. Descriptive relationships only: no fitted memory kernel, causal attribution, calibrated anomaly probability or trading-performance claim. Missing or stale inputs remain explicitly unavailable.

Takes no parameters.

find_networks

Find DePIN networks by name or ticker

Looks up DePIN networks (and Bittensor subnets) that have live data, by name or ticker, e.g. 'akash', 'helium', 'FIL'. Returns symbol, name, category and the network's public page. Use it to get the symbol that get_network, get_metric_history and verify_value take. Read-only, no key.

Parameterslimitquerycategory

get_network

Get a network's latest measured values

Returns the latest first-party measurements for one DePIN network (GPU and CPU capacity, storage, node or hotspot counts, on-chain totals), each with value, unit, as_of, freshness and the verify_url on the network's own API that you can open to check it. Market prices are not included. metric_filter narrows by substring; stale readings are omitted unless include_stale is true. Read-only, no key.

Parameterssymbolrequiredmax_metricsinclude_stalemetric_filter

get_metric_history

Get daily history for one network metric

Returns the daily series for one network metric (one point per UTC day, with how many observations backed it), e.g. symbol=AKT metric=GPU_ACTIVE. Days with no observation are absent, never zero. The free tier serves the last 7 days and says so in window_notice; an X-API-Key header on the connection serves your tier's window. Read-only.

Parametersdaysmetricrequiredsymbolrequired

verify_value

Re-check a value against its upstream source

Re-reads the upstream API behind one of our values right now and reports where the same number appears in the upstream response (JSONPath), the relative difference, and a verdict: exact, within_1pct, within_10pct, no_matching_field or not_checkable_by_get. Use it to check a figure before relying on it. Makes one GET to a third-party API; read-only.

Parametersmetricrequiredsymbolrequired

register_agent

Register an agent API key

Creates an API key for this agent and grants the free starter credits ($5 free credits, no card (first 3 keys per IP per 30 days)). Past the per-IP limit a key is still created, with $0, and the response says so. A key is needed for purchase_data, check_balance, topup_credits and every tool that charges credits; get_network_signals needs one on a paid tier with the engines capability, which the free starter key does not have. Every other read-only tool works without one. email is optional and used for delivery and top-up notices.

Parametersemailagent_namerequired

list_products

List data products and prices

Browse purchasable products with prices in credits ($1 = 1 credit). DePIN supply-telemetry, provenance, derivation-replay, history and the intel bundle start at $0.49. Grade purchases are conditional on measured-grade availability; check /v1/credits/pricing before buying. 30-day Pro access to the DAG manifold API is sold as dag_manifold_30d and delivers its API key inline. Not purchasable, refused by purchase_data with 503 not_yet_deliverable and nothing charged: the signal-feed tiers (retired, not sold), dag_pro (buy dag_manifold_30d instead), and dag_quant, dag_enterprise and mcp_unlimited (listed, not on sale yet). The five paid analytics tools are not products here: each charges credits per answered call, stated in its own description. Call after register_agent.

Takes no parameters.

purchase_data

Buy a data product with credits

Buy a product with your credits; the data ships inline in the response. Deliverability is product-specific, including grade availability; check /v1/credits/pricing before buying — call list_products for the live prices rather than trusting a figure restated here, which is how a price in a second place drifts from the first. The signal_* keys (retired, not sold), dag_pro (sold as dag_manifold_30d), dag_quant, dag_enterprise and mcp_unlimited (not on sale yet) return 503 not_yet_deliverable and charge nothing; they are deliberately blocked, not broken. Most products deliver data inline; dag_manifold_30d delivers a 30-day DAG manifold API key inline. Use api_key from register_agent.

Parametersapi_keyrequiredproduct_keyrequiredidempotency_key

topup_credits

Add credits (card checkout link or USDC quote)

Add credits. Card (one call): {"method": "stripe", "amount": N} where N is $20 or $99 — returns a Stripe checkout_url already bound to your api_key, and credits post automatically once Stripe confirms payment at $1 = 1 credit. No human step and no wallet needed. USDC on Base, two modes. micro_decimal, no wallet signature: {"method": "usdc", "mode": "micro_decimal", "amount": N} with N whole USDC from 1 to 999,999 returns a unique amount with a 6-decimal suffix and an expires_at; a finalized Base transfer of EXACTLY that amount, from any sender including an exchange, before expires_at credits your account (1 USDC = 1 credit); a different amount does not credit your account. verified_wallet (the default when mode is omitted): verify your sender first via POST /v1/credits/crypto/challenge and /verify with X-API-Key, sign the returned challenge with your own EOA, then pass the verified from_address; only a transfer FROM that wallet is credited. In every USDC mode send only after a successful quote; credit requires finalized Base evidence. Instructions: https://kairossignal.com/docs/crypto.html

Parametersmodeamountrequiredmethodrequiredapi_keyrequiredtx_hashfrom_address

check_balance

Check credit balance

Check your remaining credit balance. Use after purchases to see remaining credits.

Parametersapi_keyrequired

list_datasets

List raw datasets

List the current dataset catalog with record counts. Browsing is free; existing query and daily-call limits apply.

Takes no parameters.

get_stats

Get coverage statistics

Returns the row count of every dataset served here (depin_onchain, market_ticks and the rest), their total, the scope statement and the free-tier limits. No arguments, no key, read-only. For one network's live values use get_network; for freshness and history depth per feed use get_data_dictionary.

Takes no parameters.

get_data_dictionary

Get the data dictionary

ONBOARDING SPEC: freshness, history depth, coverage and endpoints per feed (depin_onchain, depin_daily, health_profiles, signal_ledger, market_ticks, zk_footprints). Machine-legible; answers 'how stale is this and how far back does it go' for every feed. Free, no key.

Takes no parameters.

get_derivation_ledger

Get the derivation ledger

Returns the derivation ledger index. With a symbol: up to 20 recent archived upstream fetches behind that network, each with time, verify_url, the SHA-256 and size of the raw payload, the collector code hash and the fetch status, so a published value can be traced to the exact bytes and build that produced it (the payload bytes themselves are the paid derivation_replay product). A network with live data that the ledger does not cover yet returns entries: [] with ledger_status not_yet_covered and the covered symbols. Without a symbol: every covered symbol with its latest fetch time and entry count. Read-only, no key. To compare a live value with its upstream right now, use verify_value.

Parameterssymbol

fetch_dataset

Fetch raw dataset rows

Query records from a dataset with limit/offset. Free tier: 10 records per query. For depin_onchain, raw archived observations, including rejected rows, are retained. observation_quality reports limited PKT airdrop checks; not_checked means not validated. This read-time annotation is not covered by original proof hashes.

Parameterslimitoffsetdatasetrequired

verify_footprint

Verify a row's Merkle inclusion proof

Retained Merkle-membership check for one depin_onchain observation: stamp_day (YYYYMMDD), leaf_index (0-based row in /attestations/batch_<day>.tsv), expected_row_sha256. verified=true ONLY when the row at that index hashes to expected_row_sha256 AND its inclusion path reaches that day's manifest merkle_root. Says nothing about Bitcoin status or upstream accuracy. Returns JSON: row_sha256, merkle_root, row_hash_matches, inclusion_path_reaches_root, verified, proof_url. Use it when you hold a row from a daily batch and want to show it was committed that day; a call with arguments missing lists the days with a proof ready and a working example. Read-only, no key. Other datasets: unsupported (no retained proof).

Parametersdatasetstamp_dayrequiredleaf_indexrequiredexpected_row_sha256required

get_hodge_regime_sieve

Hodge lead-lag decomposition of one network's metrics (paid)

Paid: 10 credits ($10) per answered call, charged once and only after a non-empty answer is computed; an unavailable answer, a refusal or an error costs nothing. Send your API key in the X-API-Key header or as api_key. Each call is a new answer and a new charge (no idempotency key). For one DePIN network: daily closes of its measured first-party metrics over the last `days` complete UTC days, each metric's daily log change, and the lag-1 lead-lag flow between every pair (correlation of one metric today with the other yesterday, minus the reverse). A Helmholtz-Hodge decomposition on the complete graph splits the flow into a gradient part (one consistent ordering, reported as a lead score per metric) and a curl part (cyclic lead-lag); the harmonic part is zero on a complete graph and is shown as a check. Descriptive, no significance test; the flow size expected under independence is given for scale. Uses up to `max_metrics` (3-16, default 10) metrics, by name order. Every input daily close is returned with its as_of and verify_url. The tool name is historical: no regime classification or trading signal is produced.

Parametersdayssymbolrequiredapi_keymax_metricsmetric_filter

get_rmt_regime_state

Correlation spectrum vs Marchenko-Pastur for one network (paid)

Paid: 10 credits ($10) per answered call, charged once and only after a non-empty answer is computed; an unavailable answer, a refusal or an error costs nothing. Send your API key in the X-API-Key header or as api_key. Each call is a new answer and a new charge (no idempotency key). For one DePIN network: the correlation matrix of the daily log changes of its measured first-party metrics over the last `days` complete UTC days, its eigenvalues, and the Marchenko-Pastur edges for the same number of independent series (q = N / (T-1)). Reports the largest eigenvalue over the upper edge, how many eigenvalues exceed it, the absorption ratio (variance share of the top ceil(N/5) eigenvalues) and each metric's loading on the top eigenvector. The edge is a reference for independent light-tailed series; telemetry changes are neither, so exceeding it describes co-movement and is not a test. Uses up to `max_metrics` (3-60, default 30) metrics, by name order. Every input daily close is returned with its as_of and verify_url. No regime label, position size or trading mode is produced.

Parametersdayssymbolrequiredapi_keymax_metricsmetric_filter

get_depin_slashing_audit

Enforcement capacity from sourced protocol parameters (paid)

Paid: 20 credits ($20) per answered call, charged once and only after a non-empty answer is computed; an unavailable answer, a refusal or an error costs nothing. Send your API key in the X-API-Key header or as api_key. Each call is a new answer and a new charge (no idempotency key). Computes the left-hand side of Theorem 1 in Qazi (2026, arXiv:2608.12576), the enforcement capacity p * (lambda*S + delta*min Phi): the largest per-audit deterrence ratio a network's slashing and probation can support, in the network's stake unit. Inputs are the network's published protocol parameters (stake per provider, slash fraction, audit probability, probation ladder, hardware-identity binding), each returned with the URL it was read from and the date it was checked; unsourced parameters are refused, never defaulted. Structural screens (deviations that cannot be detected, missing identity binding) are reported. A ceiling, not a verdict: the cheating gain it would have to exceed is private, so no incentive-compatibility answer is given. Networks without sourced parameters are answered unavailable and not charged.

Parameterssymbolrequiredapi_key

get_shap_node_attribution

Exact day/unit Shapley attribution of a network's daily moves (paid)

Paid: 15 credits ($15) per answered call, charged once and only after a non-empty answer is computed; an unavailable answer, a refusal or an error costs nothing. Send your API key in the X-API-Key header or as api_key. Each call is a new answer and a new charge (no idempotency key). For one DePIN network: an exact two-factor functional ANOVA of the daily log changes of its measured first-party metrics over the last `days` complete UTC days, with factors day (moves shared by the network's metrics that day) and unit (metrics measured in the same unit). Returns each factor's variance share, their interaction and the metric-specific remainder, the mean absolute Shapley value per factor, and for the latest day each metric's change split exactly into its day and unit Shapley values plus remainder (additivity error reported). Descriptive: not causal, not a forecast. Uses up to `max_metrics` (3-60, default 30) metrics, by name order. Every input daily close is returned with its as_of and verify_url.

Parametersdayssymbolrequiredapi_keymax_metricsmetric_filter

get_listing_dilution_score

Measured token-supply change for one network (paid)

Paid: 10 credits ($10) per answered call, charged once and only after a non-empty answer is computed; an unavailable answer, a refusal or an error costs nothing. Send your API key in the X-API-Key header or as api_key. Each call is a new answer and a new charge (no idempotency key). For one DePIN network: each first-party on-chain supply series it has (eligible metrics whose name contains 'supply', e.g. onchain_total_supply), its daily close at the latest complete UTC day and 7 and 30 days earlier, the percentage changes, and each change annualised by compounding ((end/start)^(365/days) - 1, so a 7-day move is heavily amplified). A series with 2 or fewer distinct daily closes in 30 days is not used (a stuck feed cannot be told from a fixed supply). Every endpoint carries its as_of and verify_url; nothing is interpolated. No exchange-listing, price, funding, market-cap or aggregator data is used; the tool name is historical. Networks without an eligible supply series are answered unavailable and not charged.

Parameterssymbolrequiredapi_key

Version history

3
  1. v3.7.0LatestOct 7, 2026
  2. v3.6.5Sep 27, 2026
  3. v3.6.4Sep 16, 2026

Score

90% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

    Declare a license in the repository or the registry entry.

Other Kairossignal integrations