{"ok":true,"schema_version":1,"data":{"contract_version":"2026-07-03.2","generated_at":"2026-09-20T12:26:49.169Z","name":"blockmachine","netuid":19,"schema_version":1,"slug":"sn-19","surfaces":[{"auth_required":false,"authority":"registry-observed","curation_level":"candidate-discovered","id":"sn-19-backprop-dashboard","key":"srf-34d6dabbf8ff16b9","kind":"dashboard","last_verified_at":null,"name":"blockmachine Backprop Finance dashboard","netuid":19,"notes":"Universal Backprop Finance dTAO subnet dashboard candidate. Third-party enrichment, not protocol authority.","probe":{"enabled":true,"expect":"any","method":"HEAD","timeout_ms":10000},"provider":"backprop-finance","public_safe":true,"quality_signals":{"content_type_matches_kind":true,"public_safe":true,"rate_limited":false,"redirected":true,"source_tier":"third-party-index","transient_failure":false},"rate_limit_notes":"Candidate only; no recurring probe is configured until maintainer review.","source_urls":["https://backprop.finance/dtao/subnets/19-blockmachine"],"stale":null,"subnet_name":"blockmachine","subnet_slug":"sn-19","url":"https://backprop.finance/dtao/subnets/19-blockmachine"},{"auth":{"location":"header","name":"Authorization","scheme":"bearer","scopes_note":"Derived from the subnet's own OpenAPI securitySchemes (HTTPBearer), declared per-operation.","value_format":"Bearer <token>"},"auth_required":true,"authority":"community","curation_level":"candidate-discovered","id":"sn-19-blockmachine-bans","key":"srf-0dca431895fa497e","kind":"subnet-api","last_verified_at":null,"name":"BlockMachine bans","netuid":19,"notes":"List Bans operation on the BlockMachine API (GET, POST /bans), declared in the subnet's own OpenAPI spec at https://api.blockmachine.io/openapi.json. The spec declares the HTTPBearer security scheme on it, so it is registered auth_required:true with probe.enabled:false (Phase 3). Live-verified 2026-07-21: an unauthenticated GET returns HTTP 401 {\"detail\":\"Not authenticated\"}, confirming the gate.","probe":{"enabled":false,"expect":"json","method":"GET","timeout_ms":10000},"provider":"blockmachine","public_safe":true,"review":{"state":"community-submitted","submitted_by":"joaovictor91123"},"source_urls":["https://api.blockmachine.io/openapi.json"],"stale":null,"subnet_name":"blockmachine","subnet_slug":"sn-19","url":"https://api.blockmachine.io/bans"},{"auth":{"location":"header","name":"Authorization","scheme":"bearer","scopes_note":"Derived from the subnet's own OpenAPI securitySchemes (HTTPBearer), declared per-operation.","value_format":"Bearer <token>"},"auth_required":true,"authority":"community","curation_level":"candidate-discovered","id":"sn-19-blockmachine-bans-on-chain-account","key":"srf-ae26af74dfa294f6","kind":"subnet-api","last_verified_at":null,"name":"BlockMachine bans on-chain account","netuid":19,"notes":"Unban Miner operation on the BlockMachine API (DELETE, GET /bans/{on-chain account}), declared in the subnet's own OpenAPI spec at https://api.blockmachine.io/openapi.json. The spec declares the HTTPBearer security scheme on it, so it is registered auth_required:true with probe.enabled:false (Phase 3).","probe":{"enabled":false,"expect":"json","method":"GET","timeout_ms":10000},"provider":"blockmachine","public_safe":true,"review":{"state":"community-submitted","submitted_by":"joaovictor91123"},"source_urls":["https://api.blockmachine.io/openapi.json"],"stale":null,"subnet_name":"blockmachine","subnet_slug":"sn-19","url":"https://api.blockmachine.io/bans/%7Bcoldkey%7D"},{"auth_required":false,"authority":"community","curation_level":"candidate-discovered","id":"sn-19-blockmachine-bans-proxy-detection","key":"srf-8b9bda9d888091b9","kind":"subnet-api","last_verified_at":null,"name":"BlockMachine bans proxy detection","netuid":19,"notes":"Ban Proxy Detected Miner operation on the BlockMachine API (POST /bans/proxy-detection), declared in the subnet's own OpenAPI spec at https://api.blockmachine.io/openapi.json. The spec declares no security on it; it is a state-changing operation and not probe-safe, so the probe is disabled and no auth requirement is asserted without evidence.","probe":{"enabled":false,"expect":"json","method":"GET","timeout_ms":10000},"provider":"blockmachine","public_safe":true,"review":{"state":"community-submitted","submitted_by":"joaovictor91123"},"source_urls":["https://api.blockmachine.io/openapi.json"],"stale":null,"subnet_name":"blockmachine","subnet_slug":"sn-19","url":"https://api.blockmachine.io/bans/proxy-detection"},{"auth_required":false,"authority":"community","curation_level":"candidate-discovered","id":"sn-19-blockmachine-base-incentive-candidates","key":"srf-59d102038b8dbd91","kind":"subnet-api","last_verified_at":null,"name":"BlockMachine base incentive candidates","netuid":19,"notes":"Get Base Incentive Candidates operation on the BlockMachine API (GET /base-incentive/candidates), declared in the subnet's own OpenAPI spec at https://api.blockmachine.io/openapi.json. The spec declares no security on it; it is a state-changing operation and not probe-safe, so the probe is disabled and no auth requirement is asserted without evidence.","probe":{"enabled":false,"expect":"json","method":"GET","timeout_ms":10000},"provider":"blockmachine","public_safe":true,"review":{"state":"community-submitted","submitted_by":"joaovictor91123"},"source_urls":["https://api.blockmachine.io/openapi.json"],"stale":null,"subnet_name":"blockmachine","subnet_slug":"sn-19","url":"https://api.blockmachine.io/base-incentive/candidates"},{"auth_required":false,"authority":"community","curation_level":"candidate-discovered","id":"sn-19-blockmachine-base-incentive-eligible","key":"srf-e29435a224dac960","kind":"subnet-api","last_verified_at":null,"name":"BlockMachine base incentive eligible","netuid":19,"notes":"Get Base Incentive Eligible operation on the BlockMachine API (GET /base-incentive/eligible), declared in the subnet's own OpenAPI spec at https://api.blockmachine.io/openapi.json. The spec declares no security on it; it is a state-changing operation and not probe-safe, so the probe is disabled and no auth requirement is asserted without evidence.","probe":{"enabled":false,"expect":"json","method":"GET","timeout_ms":10000},"provider":"blockmachine","public_safe":true,"review":{"state":"community-submitted","submitted_by":"joaovictor91123"},"source_urls":["https://api.blockmachine.io/openapi.json"],"stale":null,"subnet_name":"blockmachine","subnet_slug":"sn-19","url":"https://api.blockmachine.io/base-incentive/eligible"},{"auth_required":false,"authority":"community","curation_level":"candidate-discovered","id":"sn-19-blockmachine-base-incentive-ledger","key":"srf-a4d74e8fc0b4354e","kind":"subnet-api","last_verified_at":null,"name":"BlockMachine base incentive ledger","netuid":19,"notes":"Get Base Incentive Ledger operation on the BlockMachine API (GET, POST /base-incentive/ledger), declared in the subnet's own OpenAPI spec at https://api.blockmachine.io/openapi.json. Live-checked 2026-07-21: the bare URL returns HTTP 422 naming query parameter \"epoch_id\" as required, so it is a query-param route -- the fixed base URL is registered with the probe disabled and it is callable via call_subnet_surface's query argument.","probe":{"enabled":false,"expect":"json","method":"GET","timeout_ms":10000},"provider":"blockmachine","public_safe":true,"review":{"state":"community-submitted","submitted_by":"joaovictor91123"},"source_urls":["https://api.blockmachine.io/openapi.json"],"stale":null,"subnet_name":"blockmachine","subnet_slug":"sn-19","url":"https://api.blockmachine.io/base-incentive/ledger"},{"auth_required":false,"authority":"community","curation_level":"candidate-discovered","id":"sn-19-blockmachine-benchmarks","key":"srf-69f86bea71092fc9","kind":"subnet-api","last_verified_at":null,"name":"BlockMachine benchmarks","netuid":19,"notes":"Get Benchmarks operation on the BlockMachine API (GET, POST /benchmarks), declared in the subnet's own OpenAPI spec at https://api.blockmachine.io/openapi.json. The spec declares no security on it; it is a state-changing operation and not probe-safe, so the probe is disabled and no auth requirement is asserted without evidence.","probe":{"enabled":false,"expect":"json","method":"GET","timeout_ms":10000},"provider":"blockmachine","public_safe":true,"review":{"state":"community-submitted","submitted_by":"joaovictor91123"},"source_urls":["https://api.blockmachine.io/openapi.json"],"stale":null,"subnet_name":"blockmachine","subnet_slug":"sn-19","url":"https://api.blockmachine.io/benchmarks"},{"auth":{"location":"header","name":"Authorization","scheme":"bearer","scopes_note":"Derived from the subnet's own OpenAPI securitySchemes (HTTPBearer), declared per-operation.","value_format":"Bearer <token>"},"auth_required":true,"authority":"community","curation_level":"candidate-discovered","id":"sn-19-blockmachine-compatibility-policy","key":"srf-2ece29092b60b363","kind":"subnet-api","last_verified_at":null,"name":"BlockMachine compatibility policy","netuid":19,"notes":"Get Policy operation on the BlockMachine API (GET /compatibility/policy), declared in the subnet's own OpenAPI spec at https://api.blockmachine.io/openapi.json. The spec declares the HTTPBearer security scheme on it, so it is registered auth_required:true with probe.enabled:false (Phase 3).","probe":{"enabled":false,"expect":"json","method":"GET","timeout_ms":10000},"provider":"blockmachine","public_safe":true,"review":{"state":"community-submitted","submitted_by":"joaovictor91123"},"source_urls":["https://api.blockmachine.io/openapi.json"],"stale":null,"subnet_name":"blockmachine","subnet_slug":"sn-19","url":"https://api.blockmachine.io/compatibility/policy"},{"auth_required":false,"authority":"community","curation_level":"machine-verified","id":"sn-19-blockmachine-data-artifact","key":"srf-0cf09195357d6450","kind":"data-artifact","last_verified_at":"2026-09-20T04:31:09.312Z","name":"BlockMachine finalized-epoch snapshot","netuid":19,"notes":"Public no-auth GET returning the latest finalized epoch (id, number, participating gateway_ids, per-gateway manifest). Documented in the subnet's own OpenAPI schema.","probe":{"enabled":true,"expect":"json","method":"GET","timeout_ms":10000},"provider":"blockmachine","public_safe":true,"review":{"state":"community-submitted","submitted_by":"minion1227"},"source_urls":["https://blockmachine.io/","https://api.blockmachine.io/openapi.json"],"stale":false,"subnet_name":"blockmachine","subnet_slug":"sn-19","url":"https://api.blockmachine.io/epochs/latest-finalized"},{"auth_required":false,"authority":"community","curation_level":"machine-verified","id":"sn-19-blockmachine-data-artifact-api-blockmachine-io","key":"srf-f96ef1de905a31d2","kind":"data-artifact","last_verified_at":"2026-09-20T04:31:09.312Z","name":"BlockMachine current-epoch snapshot","netuid":19,"notes":"Public no-auth GET returning the current epoch (epoch_id, current_block, observed_at). Documented in the subnet's own OpenAPI schema.","probe":{"enabled":true,"expect":"json","method":"GET","timeout_ms":10000},"provider":"blockmachine","public_safe":true,"review":{"state":"community-submitted","submitted_by":"statxc"},"source_urls":["https://blockmachine.io/","https://api.blockmachine.io/openapi.json"],"stale":false,"subnet_name":"blockmachine","subnet_slug":"sn-19","url":"https://api.blockmachine.io/epochs/current"},{"auth_required":false,"authority":"community","curation_level":"machine-verified","id":"sn-19-blockmachine-epochs-catalog","key":"srf-13e601b8e71500b5","kind":"data-artifact","last_verified_at":"2026-09-20T04:31:09.312Z","name":"BlockMachine epochs catalog","netuid":19,"notes":"Public no-auth BlockMachine epochs listing — every epoch's id/number, participating gateway_ids, and per-gateway manifest (request log files + finalized CU-allocation objects). The full-history catalog behind the already-registered latest-finalized/current single-epoch endpoints; declared as GET /epochs (\"List Epochs\") in the operator's OpenAPI (source).","probe":{"enabled":true,"expect":"json","method":"GET","timeout_ms":10000},"provider":"blockmachine","public_safe":true,"review":{"state":"community-submitted","submitted_by":"glorydavid03023"},"source_urls":["https://blockmachine.io/","https://api.blockmachine.io/openapi.json"],"stale":false,"subnet_name":"blockmachine","subnet_slug":"sn-19","url":"https://api.blockmachine.io/epochs"},{"auth_required":false,"authority":"community","curation_level":"candidate-discovered","id":"sn-19-blockmachine-epochs-epoch-id","key":"srf-615b3fa10270c815","kind":"subnet-api","last_verified_at":null,"name":"BlockMachine epochs epoch id","netuid":19,"notes":"Get Epoch operation on the BlockMachine API (GET /epochs/{epoch_id}), declared in the subnet's own OpenAPI spec at https://api.blockmachine.io/openapi.json. Path-parameterized, so there is no single fixed callable URL; the template is registered per the registry's catalog-everything policy (Phase 2).","probe":{"enabled":false,"expect":"json","method":"GET","timeout_ms":10000},"provider":"blockmachine","public_safe":true,"review":{"state":"community-submitted","submitted_by":"joaovictor91123"},"source_urls":["https://api.blockmachine.io/openapi.json"],"stale":null,"subnet_name":"blockmachine","subnet_slug":"sn-19","url":"https://api.blockmachine.io/epochs/%7Bepoch_id%7D"},{"auth_required":false,"authority":"community","curation_level":"candidate-discovered","id":"sn-19-blockmachine-epochs-epoch-id-finalize","key":"srf-2a643e3c5f400380","kind":"subnet-api","last_verified_at":null,"name":"BlockMachine epochs epoch id finalize","netuid":19,"notes":"Finalize Epoch operation on the BlockMachine API (POST /epochs/{epoch_id}/finalize), declared in the subnet's own OpenAPI spec at https://api.blockmachine.io/openapi.json. Path-parameterized, so there is no single fixed callable URL; the template is registered per the registry's catalog-everything policy (Phase 2).","probe":{"enabled":false,"expect":"json","method":"GET","timeout_ms":10000},"provider":"blockmachine","public_safe":true,"review":{"state":"community-submitted","submitted_by":"joaovictor91123"},"source_urls":["https://api.blockmachine.io/openapi.json"],"stale":null,"subnet_name":"blockmachine","subnet_slug":"sn-19","url":"https://api.blockmachine.io/epochs/%7Bepoch_id%7D/finalize"},{"auth_required":false,"authority":"community","curation_level":"candidate-discovered","id":"sn-19-blockmachine-epochs-epoch-id-free-tier-incentive","key":"srf-0be5a50ce13e2185","kind":"subnet-api","last_verified_at":null,"name":"BlockMachine epochs epoch id free tier incentive","netuid":19,"notes":"Report Free Tier Incentive operation on the BlockMachine API (POST /epochs/{epoch_id}/free-tier-incentive), declared in the subnet's own OpenAPI spec at https://api.blockmachine.io/openapi.json. Path-parameterized, so there is no single fixed callable URL; the template is registered per the registry's catalog-everything policy (Phase 2).","probe":{"enabled":false,"expect":"json","method":"GET","timeout_ms":10000},"provider":"blockmachine","public_safe":true,"review":{"state":"community-submitted","submitted_by":"joaovictor91123"},"source_urls":["https://api.blockmachine.io/openapi.json"],"stale":null,"subnet_name":"blockmachine","subnet_slug":"sn-19","url":"https://api.blockmachine.io/epochs/%7Bepoch_id%7D/free-tier-incentive"},{"auth_required":false,"authority":"community","curation_level":"machine-verified","id":"sn-19-blockmachine-health","key":"srf-fa68a799d2a0e7c3","kind":"subnet-api","last_verified_at":"2026-09-20T04:31:09.312Z","name":"BlockMachine API health","netuid":19,"notes":"Public no-auth GET /health returning BlockMachine API status and version. Documented in the subnet's OpenAPI spec on the same host as the existing leaderboard and epoch snapshot surfaces.","probe":{"enabled":true,"expect":"json","method":"GET","timeout_ms":10000},"provider":"blockmachine","public_safe":true,"review":{"state":"community-submitted","submitted_by":"jimcody1995"},"source_urls":["https://api.blockmachine.io/openapi.json","https://blockmachine.io/"],"stale":false,"subnet_name":"blockmachine","subnet_slug":"sn-19","url":"https://api.blockmachine.io/health"},{"auth_required":false,"authority":"official","curation_level":"maintainer-reviewed","id":"sn-19-blockmachine-install-script","key":"srf-e8181b81774d46cf","kind":"sdk","last_verified_at":"2026-06-08T10:10:00.000Z","name":"BlockMachine CLI install script","netuid":19,"notes":"Public no-auth GET /install.sh serving the shell installer for the Blockmachine CLI (bm), which pip-installs the blockmachine package. Documented in the subnet's own OpenAPI schema; same host as the other api.blockmachine.io surfaces.","probe":{"enabled":true,"expect":"any","method":"GET","timeout_ms":10000},"provider":"blockmachine","public_safe":true,"source_urls":["https://api.blockmachine.io/openapi.json"],"stale":false,"subnet_name":"blockmachine","subnet_slug":"sn-19","url":"https://api.blockmachine.io/install.sh"},{"auth":{"location":"header","name":"Authorization","scheme":"bearer","scopes_note":"Derived from the subnet's own OpenAPI securitySchemes (HTTPBearer), declared per-operation.","value_format":"Bearer <token>"},"auth_required":true,"authority":"community","curation_level":"candidate-discovered","id":"sn-19-blockmachine-nodes","key":"srf-659a2b1a73c02ea7","kind":"subnet-api","last_verified_at":null,"name":"BlockMachine nodes","netuid":19,"notes":"List Nodes operation on the BlockMachine API (GET, POST /nodes), declared in the subnet's own OpenAPI spec at https://api.blockmachine.io/openapi.json. The spec declares the HTTPBearer security scheme on it, so it is registered auth_required:true with probe.enabled:false (Phase 3). Live-verified 2026-07-21: an unauthenticated GET returns HTTP 401 {\"detail\":\"Not authenticated\"}, confirming the gate.","probe":{"enabled":false,"expect":"json","method":"GET","timeout_ms":10000},"provider":"blockmachine","public_safe":true,"review":{"state":"community-submitted","submitted_by":"joaovictor91123"},"source_urls":["https://api.blockmachine.io/openapi.json"],"stale":null,"subnet_name":"blockmachine","subnet_slug":"sn-19","url":"https://api.blockmachine.io/nodes"},{"auth":{"location":"header","name":"Authorization","scheme":"bearer","scopes_note":"Derived from the subnet's own OpenAPI securitySchemes (HTTPBearer), declared per-operation.","value_format":"Bearer <token>"},"auth_required":true,"authority":"community","curation_level":"candidate-discovered","id":"sn-19-blockmachine-nodes-node-id","key":"srf-31c9312b9d3b50fd","kind":"subnet-api","last_verified_at":null,"name":"BlockMachine nodes node id","netuid":19,"notes":"Delete Node operation on the BlockMachine API (DELETE, GET, PATCH /nodes/{node_id}), declared in the subnet's own OpenAPI spec at https://api.blockmachine.io/openapi.json. The spec declares the HTTPBearer security scheme on it, so it is registered auth_required:true with probe.enabled:false (Phase 3).","probe":{"enabled":false,"expect":"json","method":"GET","timeout_ms":10000},"provider":"blockmachine","public_safe":true,"review":{"state":"community-submitted","submitted_by":"joaovictor91123"},"source_urls":["https://api.blockmachine.io/openapi.json"],"stale":null,"subnet_name":"blockmachine","subnet_slug":"sn-19","url":"https://api.blockmachine.io/nodes/%7Bnode_id%7D"},{"auth":{"location":"header","name":"Authorization","scheme":"bearer","scopes_note":"Derived from the subnet's own OpenAPI securitySchemes (HTTPBearer), declared per-operation.","value_format":"Bearer <token>"},"auth_required":true,"authority":"community","curation_level":"candidate-discovered","id":"sn-19-blockmachine-nodes-node-id-credential","key":"srf-82bded0c675214c2","kind":"subnet-api","last_verified_at":null,"name":"BlockMachine nodes node id credential","netuid":19,"notes":"Get credential Metadata operation on the BlockMachine API (GET, POST /nodes/{node_id}/credential), declared in the subnet's own OpenAPI spec at https://api.blockmachine.io/openapi.json. The spec declares the HTTPBearer security scheme on it, so it is registered auth_required:true with probe.enabled:false (Phase 3).","probe":{"enabled":false,"expect":"json","method":"GET","timeout_ms":10000},"provider":"blockmachine","public_safe":true,"review":{"state":"community-submitted","submitted_by":"joaovictor91123"},"source_urls":["https://api.blockmachine.io/openapi.json"],"stale":null,"subnet_name":"blockmachine","subnet_slug":"sn-19","url":"https://api.blockmachine.io/nodes/%7Bnode_id%7D/secret"},{"auth":{"location":"header","name":"Authorization","scheme":"bearer","scopes_note":"Derived from the subnet's own OpenAPI securitySchemes (HTTPBearer), declared per-operation.","value_format":"Bearer <token>"},"auth_required":true,"authority":"community","curation_level":"candidate-discovered","id":"sn-19-blockmachine-nodes-node-id-credential-promote","key":"srf-c2d5d93ffd169548","kind":"subnet-api","last_verified_at":null,"name":"BlockMachine nodes node id credential promote","netuid":19,"notes":"Promote credential operation on the BlockMachine API (POST /nodes/{node_id}/credential/promote), declared in the subnet's own OpenAPI spec at https://api.blockmachine.io/openapi.json. The spec declares the HTTPBearer security scheme on it, so it is registered auth_required:true with probe.enabled:false (Phase 3).","probe":{"enabled":false,"expect":"json","method":"GET","timeout_ms":10000},"provider":"blockmachine","public_safe":true,"review":{"state":"community-submitted","submitted_by":"joaovictor91123"},"source_urls":["https://api.blockmachine.io/openapi.json"],"stale":null,"subnet_name":"blockmachine","subnet_slug":"sn-19","url":"https://api.blockmachine.io/nodes/%7Bnode_id%7D/secret/promote"},{"auth":{"location":"header","name":"Authorization","scheme":"bearer","scopes_note":"Derived from the subnet's own OpenAPI securitySchemes (HTTPBearer), declared per-operation.","value_format":"Bearer <token>"},"auth_required":true,"authority":"community","curation_level":"candidate-discovered","id":"sn-19-blockmachine-nodes-node-id-events","key":"srf-f6729142f4312563","kind":"subnet-api","last_verified_at":null,"name":"BlockMachine nodes node id events","netuid":19,"notes":"List Events operation on the BlockMachine API (GET /nodes/{node_id}/events), declared in the subnet's own OpenAPI spec at https://api.blockmachine.io/openapi.json. The spec declares the HTTPBearer security scheme on it, so it is registered auth_required:true with probe.enabled:false (Phase 3).","probe":{"enabled":false,"expect":"json","method":"GET","timeout_ms":10000},"provider":"blockmachine","public_safe":true,"review":{"state":"community-submitted","submitted_by":"joaovictor91123"},"source_urls":["https://api.blockmachine.io/openapi.json"],"stale":null,"subnet_name":"blockmachine","subnet_slug":"sn-19","url":"https://api.blockmachine.io/nodes/%7Bnode_id%7D/events"},{"auth":{"location":"header","name":"Authorization","scheme":"bearer","scopes_note":"Derived from the subnet's own OpenAPI securitySchemes (HTTPBearer), declared per-operation.","value_format":"Bearer <token>"},"auth_required":true,"authority":"community","curation_level":"candidate-discovered","id":"sn-19-blockmachine-nodes-node-id-metrics","key":"srf-a8840ec10968e794","kind":"subnet-api","last_verified_at":null,"name":"BlockMachine nodes node id metrics","netuid":19,"notes":"Get Metrics operation on the BlockMachine API (GET /nodes/{node_id}/metrics), declared in the subnet's own OpenAPI spec at https://api.blockmachine.io/openapi.json. The spec declares the HTTPBearer security scheme on it, so it is registered auth_required:true with probe.enabled:false (Phase 3).","probe":{"enabled":false,"expect":"json","method":"GET","timeout_ms":10000},"provider":"blockmachine","public_safe":true,"review":{"state":"community-submitted","submitted_by":"joaovictor91123"},"source_urls":["https://api.blockmachine.io/openapi.json"],"stale":null,"subnet_name":"blockmachine","subnet_slug":"sn-19","url":"https://api.blockmachine.io/nodes/%7Bnode_id%7D/metrics"},{"auth_required":false,"authority":"community","curation_level":"candidate-discovered","id":"sn-19-blockmachine-openapi","key":"srf-292c67f4d96de4df","kind":"openapi","last_verified_at":null,"name":"blockmachine community openapi","netuid":19,"probe":{"enabled":true,"expect":"any","method":"GET","timeout_ms":10000},"provider":"blockmachine","public_safe":true,"review":{"confidence":"medium","state":"community-submitted","submitted_by":"kiannidev"},"schema_status":"machine-readable","schema_url":"https://api.blockmachine.io/openapi.json","source_urls":["https://blockmachine.io/"],"stale":null,"subnet_name":"blockmachine","subnet_slug":"sn-19","url":"https://api.blockmachine.io/openapi.json"},{"auth":{"location":"header","name":"Authorization","scheme":"bearer","scopes_note":"Derived from the subnet's own OpenAPI securitySchemes (HTTPBearer), declared per-operation.","value_format":"Bearer <token>"},"auth_required":true,"authority":"community","curation_level":"candidate-discovered","id":"sn-19-blockmachine-pricing-rules","key":"srf-0e01c8b1bec50531","kind":"subnet-api","last_verified_at":null,"name":"BlockMachine pricing rules","netuid":19,"notes":"Delete Pricing Rule operation on the BlockMachine API (DELETE, GET, POST /pricing/rules), declared in the subnet's own OpenAPI spec at https://api.blockmachine.io/openapi.json. The spec declares the HTTPBearer security scheme on it, so it is registered auth_required:true with probe.enabled:false (Phase 3). Live-verified 2026-07-21: an unauthenticated GET returns HTTP 401 {\"detail\":\"Not authenticated\"}, confirming the gate. REVENUE ROLE (#10452): not-revenue. /pricing/rules is a rate card, not a revenue figure, and it answers 401 unauthenticated. No public surface on this subnet carries an external-revenue number as of 2026-08-10. REVENUE ROLE (#10452): not-revenue. /pricing/rules is a rate card, not a revenue figure, and it answers 401 unauthenticated. No public surface on this subnet carries an external-revenue number as of 2026-08-10.","probe":{"enabled":false,"expect":"json","method":"GET","timeout_ms":10000},"provider":"blockmachine","public_safe":true,"revenue":{"provenance":"operator-attested","role":"not-revenue","source_url":"https://api.blockmachine.io/openapi.json"},"review":{"state":"community-submitted","submitted_by":"joaovictor91123"},"source_urls":["https://api.blockmachine.io/openapi.json"],"stale":null,"subnet_name":"blockmachine","subnet_slug":"sn-19","url":"https://api.blockmachine.io/pricing/rules"},{"auth_required":false,"authority":"community","curation_level":"machine-verified","id":"sn-19-blockmachine-ready","key":"srf-4eefba22b5905e9d","kind":"subnet-api","last_verified_at":"2026-09-20T04:31:09.312Z","name":"Blockmachine readiness check","netuid":19,"notes":"Public no-auth GET returning readiness status including database connectivity. Documented in the subnet's own OpenAPI schema.","probe":{"enabled":true,"expect":"json","method":"GET","timeout_ms":10000},"provider":"blockmachine","public_safe":true,"review":{"state":"community-submitted","submitted_by":"jsonbored"},"source_urls":["https://api.blockmachine.io/ready"],"stale":false,"subnet_name":"blockmachine","subnet_slug":"sn-19","url":"https://api.blockmachine.io/ready"},{"auth":{"location":"header","name":"Authorization","scheme":"bearer","scopes_note":"Derived from the subnet's own OpenAPI securitySchemes (HTTPBearer), declared per-operation.","value_format":"Bearer <token>"},"auth_required":true,"authority":"community","curation_level":"candidate-discovered","id":"sn-19-blockmachine-snapshots-url","key":"srf-5692602f17aa0e15","kind":"subnet-api","last_verified_at":null,"name":"BlockMachine snapshots url","netuid":19,"notes":"Get Snapshot Url operation on the BlockMachine API (GET /snapshots/url), declared in the subnet's own OpenAPI spec at https://api.blockmachine.io/openapi.json. The spec declares the HTTPBearer security scheme on it, so it is registered auth_required:true with probe.enabled:false (Phase 3). Live-verified 2026-07-21: an unauthenticated GET returns HTTP 401 {\"detail\":\"Not authenticated\"}, confirming the gate.","probe":{"enabled":false,"expect":"json","method":"GET","timeout_ms":10000},"provider":"blockmachine","public_safe":true,"review":{"state":"community-submitted","submitted_by":"joaovictor91123"},"source_urls":["https://api.blockmachine.io/openapi.json"],"stale":null,"subnet_name":"blockmachine","subnet_slug":"sn-19","url":"https://api.blockmachine.io/snapshots/url"},{"auth_required":false,"authority":"official","curation_level":"maintainer-reviewed","id":"sn-19-blockmachine-source","key":"srf-fe90410ab13a6f32","kind":"source-repo","last_verified_at":"2026-06-08T10:10:00.000Z","name":"BlockMachine source repository","netuid":19,"notes":"Official BlockMachine source repository.","probe":{"enabled":true,"expect":"any","method":"HEAD","timeout_ms":10000},"provider":"blockmachine","public_safe":true,"source_urls":["https://github.com/taostat/blockmachine"],"stale":false,"subnet_name":"blockmachine","subnet_slug":"sn-19","url":"https://github.com/taostat/blockmachine"},{"auth_required":false,"authority":"community","curation_level":"candidate-discovered","id":"sn-19-blockmachine-subnet-api","key":"srf-f8bda901a1163175","kind":"subnet-api","last_verified_at":null,"name":"BlockMachine public leaderboard API","netuid":19,"notes":"Public no-auth GET returning the BlockMachine leaderboard. Consistently slow (~17s observed across repeated live tests, TLS handshake succeeds immediately but the response body takes that long) -- timeout extended well past this file's usual 10s default so it isn't misreported unhealthy for being slow rather than down.","probe":{"enabled":true,"expect":"json","method":"GET","timeout_ms":25000},"provider":"blockmachine","public_safe":true,"review":{"state":"community-submitted","submitted_by":"minion1227"},"source_urls":["https://blockmachine.io/","https://api.blockmachine.io/openapi.json"],"stale":null,"subnet_name":"blockmachine","subnet_slug":"sn-19","url":"https://api.blockmachine.io/leaderboard"},{"auth":{"location":"header","name":"Authorization","scheme":"bearer","scopes_note":"Derived from the subnet's own OpenAPI securitySchemes (HTTPBearer), declared per-operation.","value_format":"Bearer <token>"},"auth_required":true,"authority":"community","curation_level":"candidate-discovered","id":"sn-19-blockmachine-validator-config","key":"srf-f713864c96cefc47","kind":"subnet-api","last_verified_at":null,"name":"BlockMachine validator config","netuid":19,"notes":"Get Validator Config operation on the BlockMachine API (GET /validator/config), declared in the subnet's own OpenAPI spec at https://api.blockmachine.io/openapi.json. The spec declares the HTTPBearer security scheme on it, so it is registered auth_required:true with probe.enabled:false (Phase 3).","probe":{"enabled":false,"expect":"json","method":"GET","timeout_ms":10000},"provider":"blockmachine","public_safe":true,"review":{"state":"community-submitted","submitted_by":"joaovictor91123"},"source_urls":["https://api.blockmachine.io/openapi.json"],"stale":null,"subnet_name":"blockmachine","subnet_slug":"sn-19","url":"https://api.blockmachine.io/validator/config"},{"auth_required":false,"authority":"official","curation_level":"candidate-discovered","id":"sn-19-blockmachine-website","key":"srf-8fe1c433872cd2ed","kind":"website","last_verified_at":"2026-06-08T10:10:00.000Z","name":"BlockMachine website","netuid":19,"notes":"Official BlockMachine website.","probe":{"enabled":true,"expect":"html","method":"HEAD","timeout_ms":10000},"provider":"blockmachine","public_safe":true,"source_urls":["https://github.com/taostat/blockmachine"],"stale":true,"subnet_name":"blockmachine","subnet_slug":"sn-19","url":"https://blockmachine.io/"},{"auth_required":false,"authority":"official","curation_level":"candidate-discovered","id":"sn-19-blockmachine-whitepaper","key":"srf-acd5599970944ee9","kind":"docs","last_verified_at":"2026-06-08T10:10:00.000Z","name":"BlockMachine whitepaper","netuid":19,"notes":"Official BlockMachine whitepaper.","probe":{"enabled":true,"expect":"html","method":"HEAD","timeout_ms":10000},"provider":"blockmachine","public_safe":true,"source_urls":["https://blockmachine.io/whitepaper"],"stale":true,"subnet_name":"blockmachine","subnet_slug":"sn-19","url":"https://blockmachine.io/whitepaper"},{"auth_required":false,"authority":"registry-observed","curation_level":"candidate-discovered","id":"sn-19-subnetradar-dashboard","key":"srf-09035f85c0ece008","kind":"dashboard","last_verified_at":null,"name":"blockmachine SubnetRadar dashboard","netuid":19,"notes":"Universal SubnetRadar subnet dashboard candidate. Third-party risk/market analytics enrichment, not Metagraphed endpoint health authority.","probe":{"enabled":true,"expect":"any","method":"HEAD","timeout_ms":10000},"provider":"subnetradar","public_safe":true,"quality_signals":{"content_type_matches_kind":true,"public_safe":true,"rate_limited":false,"redirected":false,"source_tier":"third-party-index","transient_failure":false},"rate_limit_notes":"Candidate only; no recurring probe is configured until maintainer review.","source_urls":["https://subnetradar.com/subnet/19"],"stale":null,"subnet_name":"blockmachine","subnet_slug":"sn-19","url":"https://subnetradar.com/subnet/19"},{"auth_required":false,"authority":"registry-observed","curation_level":"candidate-discovered","id":"sn-19-taomarketcap-dashboard","key":"srf-5dda2805cd9e5451","kind":"dashboard","last_verified_at":null,"name":"blockmachine TaoMarketCap dashboard","netuid":19,"notes":"Universal TaoMarketCap subnet dashboard candidate. Third-party enrichment, not protocol authority.","probe":{"enabled":true,"expect":"any","method":"HEAD","timeout_ms":10000},"provider":"taomarketcap","public_safe":true,"quality_signals":{"content_type_matches_kind":true,"public_safe":true,"rate_limited":false,"redirected":false,"source_tier":"third-party-index","transient_failure":false},"rate_limit_notes":"Candidate only; no recurring probe is configured until maintainer review.","source_urls":["https://api.taomarketcap.com/public/v1/subnets/19"],"stale":null,"subnet_name":"blockmachine","subnet_slug":"sn-19","url":"https://taomarketcap.com/subnets/19"},{"auth_required":false,"authority":"registry-observed","curation_level":"candidate-discovered","id":"sn-19-taopedia-article","key":"srf-849662813d57f58d","kind":"docs","last_verified_at":null,"name":"blockmachine Taopedia article","netuid":19,"notes":"Discovered from the public Taopedia article repository. Not verified as an operational interface.","probe":{"enabled":true,"expect":"any","method":"HEAD","timeout_ms":10000},"provider":"taopedia-articles","public_safe":true,"quality_signals":{"content_type_matches_kind":true,"public_safe":true,"rate_limited":false,"redirected":false,"source_tier":"community-docs","transient_failure":false},"rate_limit_notes":"Candidate only; no recurring probe is configured until maintainer review.","source_urls":["https://github.com/e35ventura/taopedia-articles/blob/main/content/pages/subnet_19/index.mdx"],"stale":null,"subnet_name":"blockmachine","subnet_slug":"sn-19","url":"https://github.com/e35ventura/taopedia-articles/blob/main/content/pages/subnet_19/index.mdx"},{"auth_required":false,"authority":"registry-observed","curation_level":"candidate-discovered","id":"sn-19-tensorplex-docs","key":"srf-9c6114a5e69d1da6","kind":"docs","last_verified_at":null,"name":"blockmachine Tensorplex subnet docs","netuid":19,"notes":"Discovered from Tensorplex subnet-docs. Useful as documentation enrichment, not verified operational authority.","probe":{"enabled":true,"expect":"any","method":"HEAD","timeout_ms":10000},"provider":"tensorplex-subnet-docs","public_safe":true,"quality_signals":{"content_type_matches_kind":true,"public_safe":true,"rate_limited":false,"redirected":false,"source_tier":"community-docs","transient_failure":false},"rate_limit_notes":"Candidate only; no recurring probe is configured until maintainer review.","source_urls":["https://github.com/tensorplex-labs/subnet-docs/blob/main/data/19/subnet.json"],"stale":null,"subnet_name":"blockmachine","subnet_slug":"sn-19","url":"https://github.com/tensorplex-labs/subnet-docs/tree/main/data/19"},{"auth_required":false,"authority":"registry-observed","curation_level":"candidate-discovered","id":"sn-19-website-common-docs","key":"srf-350424782d54a767","kind":"docs","last_verified_at":null,"name":"blockmachine docs","netuid":19,"notes":"Common read-only path discovered from a public project website root. Requires verification before promotion.","probe":{"enabled":true,"expect":"any","method":"HEAD","timeout_ms":10000},"provider":"blockmachine","public_safe":true,"quality_signals":{"content_type_matches_kind":true,"public_safe":true,"rate_limited":false,"redirected":false,"source_tier":"provider-claimed","transient_failure":false},"rate_limit_notes":"Candidate only; no recurring probe is configured until maintainer review.","source_urls":["https://blockmachine.io/"],"stale":null,"subnet_name":"blockmachine","subnet_slug":"sn-19","url":"https://blockmachine.io/docs"}]},"meta":{"artifact_path":"/metagraph/surfaces/19.json","cache":"standard","contract_version":"2026-07-03.2","generated_at":"2026-09-20T12:26:49.169Z","published_at":"2026-09-20T12:26:49.169Z","source":"r2","pagination":{"collection":"surfaces","total":37,"returned":37,"limit":37,"cursor":0,"next_cursor":null,"sort":null,"order":"asc"}}}