Skip to main content
API referenceBlocks

Runtime Versions

Last updated

GET
/api/v1/runtime

Fetch the spec-version transition timeline — the earliest known block at each distinct runtime spec_version, ascending by block_number. A single aggregate over the whole retained blocks window, nothing to filter or paginate. Every block from genesis to head carries a spec_version reading, so coverage_from_block/coverage_from_at and coverage_gaps describe a complete timeline rather than bounding a partial one. Computed live from the first-party blocks tier (#4316/3.1, #9265). The current block (#8702) adds the forward-looking half: live mainnet/testnet spec versions, the latest subtensor release, and a derived pending_upgrade state of none / testnet_soaking / released_undeployed / unknown. Every field is independently null on its own upstream failure, and a missing reading yields "unknown" rather than "none" — the two are opposite answers. No deploy date is predicted anywhere in the payload: the foundation publishes no schedule. Pass ?format=csv to download the transition timeline as CSV (the current_spec_version + coverage_from_* rollup and the current block stay JSON-only).

Query Parameters

format?string

Response format override. Use csv to download the transition timeline as text/csv; json (default) keeps the response envelope.

Default"json"

Value in

  • "json"
  • "csv"

Response Body

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/api/v1/runtime"
{  "data": {    "coverage_complete": false,    "coverage_from_at": "2026-06-01T00:00:00.000Z",    "coverage_from_block": 5000000,    "coverage_gaps": [      {        "after_block": 5000000,        "after_spec_version": 1,        "before_block": 5000000,        "before_spec_version": 1,        "block_span": 5000000      }    ],    "current": {      "latest_release": {        "name": "Example Subnet",        "prerelease": false,        "published_at": "2026-06-01T00:00:00.000Z",        "spec_version": 1,        "tag": "example",        "url": "https://api.metagraph.sh/example"      },      "mainnet": {        "network": "example",        "observed_at": "2026-06-01T00:00:00.000Z",        "spec_version": 1      },      "pending_upgrade": "none",      "testnet": {        "network": "example",        "observed_at": "2026-06-01T00:00:00.000Z",        "spec_version": 1      },      "versions_behind": 1    },    "current_spec_version": 1,    "schema_version": 1,    "transition_count": 1,    "transitions": [      {        "block_number": 5000000,        "observed_at": "2026-06-01T00:00:00.000Z",        "spec_version": 1      }    ]  },  "meta": {    "artifact_path": "example",    "cache": "short",    "contract_version": "2026-06-29.1",    "generated_at": "2026-06-01T00:00:00.000Z",    "observed_through": "2026-06-01T00:00:00.000Z",    "pagination": {      "collection": "example",      "cursor": 1,      "limit": 1,      "next_cursor": 1,      "order": "asc",      "returned": 1,      "sort": "example",      "total": 1    },    "published_at": "2026-06-01T00:00:00.000Z",    "source": "live-cron-prober",    "stale_contract": {      "built_under": "example",      "live": "example"    }  },  "ok": true,  "schema_version": 1}