{"ok":true,"schema_version":1,"data":{"contract_version":"2026-07-03.2","generated_at":"2026-09-20T12:26:49.169Z","name":"DSperse","netuid":2,"schema_version":1,"slug":"dsperse","surfaces":[{"auth_required":false,"authority":"registry-observed","curation_level":"candidate-discovered","id":"sn-2-backprop-dashboard","key":"srf-0f6c7606f12e7847","kind":"dashboard","last_verified_at":null,"name":"DSperse Backprop Finance dashboard","netuid":2,"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/2-dsperse"],"stale":null,"subnet_name":"DSperse","subnet_slug":"dsperse","url":"https://backprop.finance/dtao/subnets/2-dsperse"},{"auth_required":false,"authority":"community","curation_level":"candidate-discovered","id":"sn-2-dsperse-circuit-detail","key":"srf-32fdcef0228020f4","kind":"subnet-api","last_verified_at":null,"name":"DSperse circuit repository circuit detail","netuid":2,"notes":"Public no-auth GET returning a single registered circuit's metadata record by repository id; path-parameterized sibling of the already-tracked circuit list on the same host. Documented in the circuit repository's own OpenAPI 3.1 schema (path /circuits/{id}) with no security declared. Live-verified 2026-07-22: a placeholder path value returns a clean HTTP 400 JSON validation error naming the id path field (the circuit collection is currently empty, so no stored record id exists to fetch); the confirmed-live collection root is served by the same routing layer. probe.enabled:false -- percent-encoded path template, no stable canonical id to probe.","probe":{"enabled":false,"expect":"json","method":"GET","timeout_ms":10000},"provider":"inference-labs","public_safe":true,"review":{"state":"community-submitted","submitted_by":"rsnetworkinginc"},"source_urls":["https://repository.inferencelabs.com/openapi.json"],"stale":null,"subnet_name":"DSperse","subnet_slug":"dsperse","url":"https://repository.inferencelabs.com/circuits/%7Bid%7D"},{"auth_required":false,"authority":"community","curation_level":"candidate-discovered","id":"sn-2-dsperse-circuit-download","key":"srf-f764c7eb1ca6c369","kind":"subnet-api","last_verified_at":null,"name":"DSperse circuit repository circuit artifact download","netuid":2,"notes":"Public no-auth GET streaming a registered circuit's packaged artifact by repository id. Documented in the circuit repository's own OpenAPI 3.1 schema (path /circuits/{id}/download) with no security declared. Live-verified 2026-07-22: a placeholder path value returns a clean HTTP 400 JSON validation error naming the id path field (circuit collection currently empty; the equivalent component file route on this host serves real bytes -- see sn-2-dsperse-component-file-by-name). probe.enabled:false -- percent-encoded path template.","probe":{"enabled":false,"expect":"any","method":"GET","timeout_ms":10000},"provider":"inference-labs","public_safe":true,"review":{"state":"community-submitted","submitted_by":"rsnetworkinginc"},"source_urls":["https://repository.inferencelabs.com/openapi.json"],"stale":null,"subnet_name":"DSperse","subnet_slug":"dsperse","url":"https://repository.inferencelabs.com/circuits/%7Bid%7D/download"},{"auth_required":false,"authority":"community","curation_level":"candidate-discovered","id":"sn-2-dsperse-circuit-file-by-name","key":"srf-7815a3693c688e40","kind":"subnet-api","last_verified_at":null,"name":"DSperse circuit repository circuit file by name","netuid":2,"notes":"Public no-auth GET returning a named file within a registered circuit. Documented in the circuit repository's own OpenAPI 3.1 schema (path /circuits/files/{circuitId}/{filename}) with no security declared. Live-verified 2026-07-22: placeholder path values return a clean HTTP 400 JSON validation error naming the circuitId path field (circuit collection currently empty). probe.enabled:false -- percent-encoded path template.","probe":{"enabled":false,"expect":"any","method":"GET","timeout_ms":10000},"provider":"inference-labs","public_safe":true,"review":{"state":"community-submitted","submitted_by":"rsnetworkinginc"},"source_urls":["https://repository.inferencelabs.com/openapi.json"],"stale":null,"subnet_name":"DSperse","subnet_slug":"dsperse","url":"https://repository.inferencelabs.com/circuits/files/%7BcircuitId%7D/%7Bfilename%7D"},{"auth_required":false,"authority":"community","curation_level":"machine-verified","id":"sn-2-dsperse-circuit-list","key":"srf-06434934e964a608","kind":"subnet-api","last_verified_at":"2026-09-20T04:31:09.312Z","name":"DSperse circuit repository circuit list","netuid":2,"notes":"Public no-auth GET returning the list of registered ZK circuits (observed: {\"circuits\":[]} when empty). Documented in the circuit repository's own OpenAPI schema (path /circuits); same host as the already-tracked openapi surface.","probe":{"enabled":true,"expect":"json","method":"GET","timeout_ms":10000},"provider":"inference-labs","public_safe":true,"review":{"state":"community-submitted","submitted_by":"jsonbored"},"source_urls":["https://repository.inferencelabs.com/openapi.json"],"stale":false,"subnet_name":"DSperse","subnet_slug":"dsperse","url":"https://repository.inferencelabs.com/circuits"},{"auth_required":false,"authority":"community","curation_level":"candidate-discovered","id":"sn-2-dsperse-circuit-metrics","key":"srf-239b70cabe953fd2","kind":"subnet-api","last_verified_at":null,"name":"DSperse circuit repository circuit metrics","netuid":2,"notes":"Public no-auth GET returning a registered circuit's usage metrics by repository id. Documented in the circuit repository's own OpenAPI 3.1 schema (path /circuits/{id}/metrics); the GET read declares no security. The same path also accepts POST metric submissions, which the schema marks as protected (security: true) -- one URL registers once, so this entry tracks the public GET read and notes the write route here (observed 2026-07-22: a bare POST returns HTTP 503 'Metrics submission not configured'). Live-verified 2026-07-22: a placeholder path value on the GET returns a clean HTTP 400 JSON validation error naming the id path field. probe.enabled:false -- percent-encoded path template.","probe":{"enabled":false,"expect":"json","method":"GET","timeout_ms":10000},"provider":"inference-labs","public_safe":true,"review":{"state":"community-submitted","submitted_by":"rsnetworkinginc"},"source_urls":["https://repository.inferencelabs.com/openapi.json"],"stale":null,"subnet_name":"DSperse","subnet_slug":"dsperse","url":"https://repository.inferencelabs.com/circuits/%7Bid%7D/metrics"},{"auth_required":false,"authority":"community","curation_level":"candidate-discovered","id":"sn-2-dsperse-circuit-repository-openapi","key":"srf-5c567757a2b80e0c","kind":"openapi","last_verified_at":null,"name":"DSperse circuit repository OpenAPI","netuid":2,"notes":"Public no-auth OpenAPI 3.1 schema for the SN2 circuit repository API (title \"Circuit Repository API\", 11 paths) on repository.inferencelabs.com. Validators and miners fetch active ZK circuits from this host; the official subnet-2 client sets CIRCUIT_API_URL to https://repository.inferencelabs.com in crates/sn2-types/src/constants.rs.","probe":{"enabled":true,"expect":"json","method":"GET","timeout_ms":15000},"provider":"inference-labs","public_safe":true,"review":{"confidence":"medium","state":"community-submitted","submitted_by":"bohdansolovie"},"schema_status":"machine-readable","schema_url":"https://repository.inferencelabs.com/openapi.json","source_urls":["https://github.com/inference-labs-inc/subnet-2/blob/main/crates/sn2-types/src/constants.rs","https://sn2-docs.inferencelabs.com/technical-roadmap.md","https://repository.inferencelabs.com/docs"],"stale":null,"subnet_name":"DSperse","subnet_slug":"dsperse","url":"https://repository.inferencelabs.com/openapi.json"},{"auth_required":false,"authority":"community","curation_level":"candidate-discovered","id":"sn-2-dsperse-component-detail","key":"srf-3808bc35d5fbc104","kind":"subnet-api","last_verified_at":null,"name":"DSperse circuit repository component detail","netuid":2,"notes":"Public no-auth GET returning a single circuit component's metadata record by its content digest; path-parameterized sibling of the already-tracked component list. Documented in the circuit repository's own OpenAPI 3.1 schema (path /components/{sha256}) with no security declared. Live-verified 2026-07-22: a real digest taken from the live component list returns HTTP 200 application/json with the matching component record (name, proof_system, file listing). probe.enabled:false -- percent-encoded path template.","probe":{"enabled":false,"expect":"json","method":"GET","timeout_ms":10000},"provider":"inference-labs","public_safe":true,"review":{"state":"community-submitted","submitted_by":"rsnetworkinginc"},"source_urls":["https://repository.inferencelabs.com/openapi.json"],"stale":null,"subnet_name":"DSperse","subnet_slug":"dsperse","url":"https://repository.inferencelabs.com/components/%7Bsha256%7D"},{"auth_required":false,"authority":"community","curation_level":"candidate-discovered","id":"sn-2-dsperse-component-file-by-name","key":"srf-4f10ab9e329bf15c","kind":"subnet-api","last_verified_at":null,"name":"DSperse circuit repository component file by name","netuid":2,"notes":"Public no-auth GET returning a named file within a circuit component, addressed by the component's content digest. Documented in the circuit repository's own OpenAPI 3.1 schema (path /components/{sha256}/files/{filename}) with no security declared. Live-verified 2026-07-22: a real digest and filename taken from the live component list return HTTP 200 application/octet-stream with the file bytes (circuit.bin, ~6.7 MB). probe.enabled:false -- percent-encoded path template.","probe":{"enabled":false,"expect":"any","method":"GET","timeout_ms":10000},"provider":"inference-labs","public_safe":true,"review":{"state":"community-submitted","submitted_by":"rsnetworkinginc"},"source_urls":["https://repository.inferencelabs.com/openapi.json"],"stale":null,"subnet_name":"DSperse","subnet_slug":"dsperse","url":"https://repository.inferencelabs.com/components/%7Bsha256%7D/files/%7Bfilename%7D"},{"auth_required":false,"authority":"community","curation_level":"machine-verified","id":"sn-2-dsperse-component-list","key":"srf-342e021c20c4d950","kind":"subnet-api","last_verified_at":"2026-09-20T04:31:09.312Z","name":"DSperse circuit repository component list","netuid":2,"notes":"Public no-auth GET returning registered circuit components (sha256, name, proof_system, file URLs). Documented in the circuit repository's own OpenAPI schema (path /components); same host as the already-tracked openapi surface.","probe":{"enabled":true,"expect":"json","method":"GET","timeout_ms":10000},"provider":"inference-labs","public_safe":true,"review":{"state":"community-submitted","submitted_by":"jsonbored"},"source_urls":["https://repository.inferencelabs.com/openapi.json"],"stale":false,"subnet_name":"DSperse","subnet_slug":"dsperse","url":"https://repository.inferencelabs.com/components"},{"auth_required":false,"authority":"official","curation_level":"candidate-discovered","id":"sn-2-dsperse-docs","key":"srf-e85fa347495911df","kind":"docs","last_verified_at":"2026-06-08T16:10:00.000Z","name":"DSperse docs","netuid":2,"notes":"Official DSperse / SN2 documentation.","probe":{"enabled":true,"expect":"html","method":"HEAD","timeout_ms":10000},"provider":"inference-labs","public_safe":true,"source_urls":["https://sn2-docs.inferencelabs.com/","https://github.com/inference-labs-inc/subnet-2"],"stale":true,"subnet_name":"DSperse","subnet_slug":"dsperse","url":"https://sn2-docs.inferencelabs.com/"},{"auth_required":false,"authority":"community","curation_level":"candidate-discovered","id":"sn-2-dsperse-model-detail","key":"srf-898802ec910eb9f3","kind":"subnet-api","last_verified_at":null,"name":"DSperse circuit repository model detail","netuid":2,"notes":"Public no-auth GET returning a single registered model's metadata and composition record by repository id; path-parameterized sibling of the already-tracked model list. Documented in the circuit repository's own OpenAPI 3.1 schema (path /models/{id}) with no security declared. Live-verified 2026-07-22: a real id taken from the live model list returns HTTP 200 application/json with the matching model record (metadata, composition, component slices). probe.enabled:false -- percent-encoded path template.","probe":{"enabled":false,"expect":"json","method":"GET","timeout_ms":10000},"provider":"inference-labs","public_safe":true,"review":{"state":"community-submitted","submitted_by":"rsnetworkinginc"},"source_urls":["https://repository.inferencelabs.com/openapi.json"],"stale":null,"subnet_name":"DSperse","subnet_slug":"dsperse","url":"https://repository.inferencelabs.com/models/%7Bid%7D"},{"auth_required":false,"authority":"community","curation_level":"machine-verified","id":"sn-2-dsperse-model-list","key":"srf-43ce8d499d2a4e28","kind":"subnet-api","last_verified_at":"2026-09-20T04:31:09.312Z","name":"DSperse circuit repository model list","netuid":2,"notes":"Public no-auth GET returning registered ML models (id, name, author, version, input/output schema). Documented in the circuit repository's own OpenAPI schema (path /models); same host as the already-tracked openapi surface.","probe":{"enabled":true,"expect":"json","method":"GET","timeout_ms":10000},"provider":"inference-labs","public_safe":true,"review":{"state":"community-submitted","submitted_by":"jsonbored"},"source_urls":["https://repository.inferencelabs.com/openapi.json"],"stale":false,"subnet_name":"DSperse","subnet_slug":"dsperse","url":"https://repository.inferencelabs.com/models"},{"auth_required":false,"authority":"community","curation_level":"candidate-discovered","id":"sn-2-dsperse-model-weights-by-digest","key":"srf-f03def981afdd117","kind":"subnet-api","last_verified_at":null,"name":"DSperse circuit repository model weights by digest","netuid":2,"notes":"Public no-auth GET streaming a model weights artifact addressed by its content digest. Documented in the circuit repository's own OpenAPI 3.1 schema (path /models/wb/{sha256}) with no security declared. Live-verified 2026-07-22: a real artifact digest taken from a live model record's composition returns HTTP 200 application/octet-stream streaming the weights file (~109 MB, transfer confirmed in progress and cut off locally). probe.enabled:false -- percent-encoded path template.","probe":{"enabled":false,"expect":"any","method":"GET","timeout_ms":10000},"provider":"inference-labs","public_safe":true,"review":{"state":"community-submitted","submitted_by":"rsnetworkinginc"},"source_urls":["https://repository.inferencelabs.com/openapi.json"],"stale":null,"subnet_name":"DSperse","subnet_slug":"dsperse","url":"https://repository.inferencelabs.com/models/wb/%7Bsha256%7D"},{"auth_required":false,"authority":"official","curation_level":"maintainer-reviewed","id":"sn-2-dsperse-source-repo","key":"srf-418cc2d4b48c08fa","kind":"source-repo","last_verified_at":"2026-06-08T16:10:00.000Z","name":"DSperse source repository","netuid":2,"notes":"Public source repository for DSperse / SN2.","probe":{"enabled":true,"expect":"any","method":"HEAD","timeout_ms":10000},"provider":"inference-labs","public_safe":true,"source_urls":["https://github.com/inference-labs-inc/subnet-2","https://subnet2.inferencelabs.com/"],"stale":false,"subnet_name":"DSperse","subnet_slug":"dsperse","url":"https://github.com/inference-labs-inc/subnet-2"},{"auth_required":false,"authority":"official","curation_level":"candidate-discovered","id":"sn-2-dsperse-website","key":"srf-880adc59b2fc2e6e","kind":"website","last_verified_at":"2026-06-08T16:10:00.000Z","name":"DSperse website","netuid":2,"notes":"Official DSperse website for SN2.","probe":{"enabled":true,"expect":"html","method":"HEAD","timeout_ms":10000},"provider":"inference-labs","public_safe":true,"source_urls":["https://subnet2.inferencelabs.com/","https://github.com/inference-labs-inc/subnet-2"],"stale":true,"subnet_name":"DSperse","subnet_slug":"dsperse","url":"https://subnet2.inferencelabs.com/"},{"auth_required":false,"authority":"registry-observed","curation_level":"candidate-discovered","id":"sn-2-github-readme-inference-labs-inc-subnet-2-dashboard-2","key":"srf-43123821bfb51d5e","kind":"dashboard","last_verified_at":null,"name":"DSperse dashboard","netuid":2,"notes":"Discovered from a project-affiliated public GitHub README link after README noise filters. Requires verification before promotion.","probe":{"enabled":true,"expect":"any","method":"HEAD","timeout_ms":10000},"provider":"inference-labs","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/inference-labs-inc/subnet-2/blob/main/README.md"],"stale":null,"subnet_name":"DSperse","subnet_slug":"dsperse","url":"https://sn2-stats.inferencelabs.com/"},{"auth_required":false,"authority":"registry-observed","curation_level":"candidate-discovered","id":"sn-2-github-readme-inference-labs-inc-subnet-2-dashboard-3","key":"srf-5118c1745c7168f9","kind":"dashboard","last_verified_at":null,"name":"DSperse dashboard","netuid":2,"notes":"Discovered from a project-affiliated public GitHub README link after README noise filters. Requires verification before promotion.","probe":{"enabled":true,"expect":"any","method":"HEAD","timeout_ms":10000},"provider":"inference-labs","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/inference-labs-inc/subnet-2/blob/main/README.md"],"stale":null,"subnet_name":"DSperse","subnet_slug":"dsperse","url":"https://wandb.ai/inferencelabs/subnet-2"},{"auth_required":false,"authority":"community","curation_level":"candidate-discovered","id":"sn-2-inference-labs-sdk","key":"srf-d5078210ccdeff6a","kind":"sdk","last_verified_at":null,"name":"DSperse community sdk","netuid":2,"probe":{"enabled":true,"expect":"any","method":"HEAD","timeout_ms":10000},"provider":"inference-labs","public_safe":true,"review":{"confidence":"medium","state":"community-submitted","submitted_by":"jsonbored"},"source_urls":["https://github.com/inference-labs-inc/proof-of-weights-sdk"],"stale":null,"subnet_name":"DSperse","subnet_slug":"dsperse","url":"https://pypi.org/project/proof-of-weights"},{"auth_required":false,"authority":"community","curation_level":"machine-verified","id":"sn-2-inference-labs-subnet-api","key":"srf-43c3b9147fb895e6","kind":"subnet-api","last_verified_at":"2026-09-20T04:31:09.312Z","name":"DSperse network stats API","netuid":2,"notes":"Public no-auth GET /stats on sn2-api.inferencelabs.com returning JSON network counters (observed: total_proofs, unique_miners, unique_validators). The official subnet-2 validator client sets DEFAULT_API_URL to https://sn2-api.inferencelabs.com on the same host. Live-verified 2026-07-21: GET https://sn2-api.inferencelabs.com/stats -> HTTP 200 application/json (total_proofs, unique_miners, unique_validators).","probe":{"enabled":true,"expect":"json","method":"GET","timeout_ms":10000},"provider":"inference-labs","public_safe":true,"revenue":{"provenance":"probe-derived","role":"usage-proxy"},"review":{"state":"community-submitted","submitted_by":"kiannidev"},"source_urls":["https://github.com/inference-labs-inc/subnet-2/blob/main/crates/sn2-types/src/constants.rs"],"stale":false,"subnet_name":"DSperse","subnet_slug":"dsperse","url":"https://sn2-api.inferencelabs.com/stats"},{"auth_required":false,"authority":"community","curation_level":"candidate-discovered","id":"sn-2-inference-labs-website","key":"srf-df0b75b777237e2f","kind":"website","last_verified_at":null,"name":"Inference Labs (Subnet 2) website","netuid":2,"probe":{"enabled":true,"expect":"any","method":"HEAD","timeout_ms":10000},"provider":"inference-labs","public_safe":true,"review":{"confidence":"medium","state":"community-submitted","submitted_by":"jsonbored"},"source_urls":["https://github.com/inference-labs-inc/subnet-2"],"stale":null,"subnet_name":"DSperse","subnet_slug":"dsperse","url":"https://www.inferencelabs.com/"},{"auth_required":false,"authority":"registry-observed","curation_level":"candidate-discovered","id":"sn-2-taopedia-article","key":"srf-abf6a6b4b9af016f","kind":"docs","last_verified_at":null,"name":"DSperse Taopedia article","netuid":2,"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_2/index.mdx"],"stale":null,"subnet_name":"DSperse","subnet_slug":"dsperse","url":"https://github.com/e35ventura/taopedia-articles/blob/main/content/pages/subnet_2/index.mdx"},{"auth_required":false,"authority":"registry-observed","curation_level":"candidate-discovered","id":"sn-2-tensorplex-docs","key":"srf-17bc6418badabbb8","kind":"docs","last_verified_at":null,"name":"DSperse Tensorplex subnet docs","netuid":2,"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/2/subnet.json"],"stale":null,"subnet_name":"DSperse","subnet_slug":"dsperse","url":"https://github.com/tensorplex-labs/subnet-docs/tree/main/data/2"},{"auth_required":false,"authority":"community","curation_level":"candidate-discovered","id":"sn-2-truthtensor-benchmark-dataset","key":"srf-f64bcfc2b320ac6e","kind":"data-artifact","last_verified_at":null,"name":"Inference Labs TruthTensor benchmark dataset","netuid":2,"notes":"Public Inference Labs HuggingFace TruthTensor benchmark — ~88k text/parquet rows of per-run LLM decision-execution logs (model, latency/duration, token counts, action, reasoning columns) measuring instruction divergence; not gated. Published by inferencelabs, the HF-verified org of Inference Labs, the DSperse (SN2) operator (its site subnet2.inferencelabs.com and X @inference_labs are the subnet's registered surfaces).","provider":"inference-labs","public_safe":true,"review":{"state":"community-submitted","submitted_by":"glorydavid03023"},"source_urls":["https://www.inferencelabs.com/","https://huggingface.co/inferencelabs"],"stale":null,"subnet_name":"DSperse","subnet_slug":"dsperse","url":"https://huggingface.co/datasets/inferencelabs/TruthTensor"}]},"meta":{"artifact_path":"/metagraph/surfaces/2.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":24,"returned":24,"limit":24,"cursor":0,"next_cursor":null,"sort":null,"order":"asc"}}}