{"ok":true,"schema_version":1,"data":{"contract_version":"2026-07-03.2","generated_at":"2026-09-20T12:26:49.169Z","name":"Dojo","netuid":52,"schema_version":1,"slug":"sn-52","surfaces":[{"auth_required":false,"authority":"official","curation_level":"maintainer-reviewed","id":"sn-52-dojo-docs","key":"srf-0e89015d726f0381","kind":"docs","last_verified_at":"2026-07-16T04:10:00.000Z","name":"Dojo subnet mechanism docs","netuid":52,"notes":"Official Tensorplex Dojo subnet mechanism documentation.","probe":{"enabled":true,"expect":"html","method":"HEAD","timeout_ms":10000},"provider":"tensorplex","public_safe":true,"source_urls":["https://docs.tensorplex.ai/tensorplex-docs/tensorplex-dojo-bittensor-subnet/subnet-mechanism"],"stale":false,"subnet_name":"Dojo","subnet_slug":"sn-52","url":"https://docs.tensorplex.ai/tensorplex-docs/tensorplex-dojo-bittensor-subnet/subnet-mechanism"},{"auth_required":false,"authority":"community","curation_level":"candidate-discovered","id":"sn-52-dojo-humanfeedback-dpo","key":"srf-4c2c9206822e93d0","kind":"data-artifact","last_verified_at":null,"name":"Dojo Human Feedback DPO dataset","netuid":52,"notes":"Public Tensorplex Dojo (SN52) HuggingFace DPO dataset of human-feedback preference pairs collected through the subnet's Dojo human-feedback-loop platform; not gated. The dojo repo README (source) declares the Bittensor subnet (--netuid 52) and the tensorplex-labs HF org owns the dataset. Distinct from the subnet's registered Dojo-Synthetic-SFT dataset.","probe":{"enabled":true,"expect":"html","method":"HEAD","timeout_ms":10000},"provider":"tensorplex","public_safe":true,"review":{"state":"community-submitted","submitted_by":"davion-knight"},"source_urls":["https://github.com/tensorplex-labs/dojo","https://huggingface.co/tensorplex-labs"],"stale":null,"subnet_name":"Dojo","subnet_slug":"sn-52","url":"https://huggingface.co/datasets/tensorplex-labs/Dojo-HumanFeedback-DPO"},{"auth_required":false,"authority":"official","curation_level":"maintainer-reviewed","id":"sn-52-dojo-source","key":"srf-e86dc151b51163df","kind":"source-repo","last_verified_at":"2026-07-16T04:10:00.000Z","name":"Dojo source repository","netuid":52,"notes":"Official Dojo source repository.","probe":{"enabled":true,"expect":"any","method":"HEAD","timeout_ms":10000},"provider":"tensorplex","public_safe":true,"source_urls":["https://github.com/tensorplex-labs/dojo"],"stale":false,"subnet_name":"Dojo","subnet_slug":"sn-52","url":"https://github.com/tensorplex-labs/dojo"},{"auth_required":false,"authority":"community","curation_level":"candidate-discovered","id":"sn-52-dojo-synthetic-sft-dataset","key":"srf-bf9767e3270e896c","kind":"data-artifact","last_verified_at":null,"name":"Dojo synthetic SFT dataset","netuid":52,"notes":"Public Tensorplex Dojo (SN52) HuggingFace dataset of 12.5k synthetic HTML/CSS/JS interface-generation Q&A pairs (id + messages columns), used to train the subnet's DOJO-INTERFACE-CODER model; not gated. The dojo repo README (source) declares the Bittensor subnet (--netuid 52) and the tensorplex-labs HF org owns the dataset.","probe":{"enabled":true,"expect":"html","method":"HEAD","timeout_ms":10000},"provider":"tensorplex","public_safe":true,"review":{"state":"community-submitted","submitted_by":"glorydavid03023"},"source_urls":["https://github.com/tensorplex-labs/dojo","https://huggingface.co/tensorplex-labs"],"stale":null,"subnet_name":"Dojo","subnet_slug":"sn-52","url":"https://huggingface.co/datasets/tensorplex-labs/Dojo-Synthetic-SFT"},{"auth_required":false,"authority":"official","curation_level":"maintainer-reviewed","id":"sn-52-dojo-ui-source","key":"srf-a5517b40ffcf91a4","kind":"source-repo","last_verified_at":"2026-07-16T04:10:00.000Z","name":"Dojo UI repository","netuid":52,"notes":"Official Dojo UI repository.","probe":{"enabled":true,"expect":"any","method":"HEAD","timeout_ms":10000},"provider":"tensorplex","public_safe":true,"source_urls":["https://github.com/tensorplex-labs/dojo-ui"],"stale":false,"subnet_name":"Dojo","subnet_slug":"sn-52","url":"https://github.com/tensorplex-labs/dojo-ui"},{"auth_required":false,"authority":"official","curation_level":"maintainer-reviewed","id":"sn-52-dojo-worker-api-source","key":"srf-743ebb9b0f42ad20","kind":"source-repo","last_verified_at":"2026-07-16T04:10:00.000Z","name":"Dojo worker API repository","netuid":52,"notes":"Official Dojo worker API repository.","probe":{"enabled":true,"expect":"any","method":"HEAD","timeout_ms":10000},"provider":"tensorplex","public_safe":true,"source_urls":["https://github.com/tensorplex-labs/dojo-worker-api"],"stale":false,"subnet_name":"Dojo","subnet_slug":"sn-52","url":"https://github.com/tensorplex-labs/dojo-worker-api"},{"auth_required":false,"authority":"registry-observed","curation_level":"candidate-discovered","id":"sn-52-subnetradar-dashboard","key":"srf-667361b8dfa3a368","kind":"dashboard","last_verified_at":null,"name":"Dojo SubnetRadar dashboard","netuid":52,"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/52"],"stale":null,"subnet_name":"Dojo","subnet_slug":"sn-52","url":"https://subnetradar.com/subnet/52"},{"auth_required":false,"authority":"registry-observed","curation_level":"candidate-discovered","id":"sn-52-taomarketcap-dashboard","key":"srf-3ff59ff9e1fdf622","kind":"dashboard","last_verified_at":null,"name":"Dojo TaoMarketCap dashboard","netuid":52,"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/52"],"stale":null,"subnet_name":"Dojo","subnet_slug":"sn-52","url":"https://taomarketcap.com/subnets/52"},{"auth_required":false,"authority":"community","curation_level":"candidate-discovered","id":"sn-52-taomarketcap-subnet-api","key":"srf-45df058bcec56f64","kind":"subnet-api","last_verified_at":null,"name":"Dojo TaoMarketCap subnet snapshot API","netuid":52,"notes":"Public no-auth GET /public/v1/subnets/52/ on api.taomarketcap.com returning machine-readable JSON for SN52 Dojo on-chain subnet state, SubnetIdentitiesV3 metadata, economics, and dTAO market fields. This indexed feed is documented in the TaoMarketCap developer API. TaoMarketCap now enforces a trailing slash (the non-slash path 301s); tracked URL updated to the canonical non-redirecting form. Rejects HEAD (405); probe uses GET.","probe":{"enabled":true,"expect":"json","method":"GET","timeout_ms":10000},"provider":"taomarketcap","public_safe":true,"review":{"state":"community-submitted","submitted_by":"davion-knight"},"source_urls":["https://api.taomarketcap.com/developer/documentation/","https://github.com/tensorplex-labs/dojo"],"stale":null,"subnet_name":"Dojo","subnet_slug":"sn-52","url":"https://api.taomarketcap.com/public/v1/subnets/52/"},{"auth_required":false,"authority":"registry-observed","curation_level":"candidate-discovered","id":"sn-52-taopedia-article","key":"srf-6e096b4290dbd59e","kind":"docs","last_verified_at":null,"name":"Dojo Taopedia article","netuid":52,"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_52/index.mdx"],"stale":null,"subnet_name":"Dojo","subnet_slug":"sn-52","url":"https://github.com/e35ventura/taopedia-articles/blob/main/content/pages/subnet_52/index.mdx"},{"auth_required":false,"authority":"registry-observed","curation_level":"candidate-discovered","id":"sn-52-taostats-metagraph","key":"srf-2866b7623a9fc9aa","kind":"dashboard","last_verified_at":null,"name":"Dojo Taostats metagraph","netuid":52,"notes":"Universal Taostats subnet metagraph dashboard candidate. Third-party explorer enrichment, not protocol authority.","probe":{"enabled":true,"expect":"any","method":"HEAD","timeout_ms":10000},"provider":"taostats","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://taostats.io/subnets/52/metagraph"],"stale":null,"subnet_name":"Dojo","subnet_slug":"sn-52","url":"https://taostats.io/subnets/52/metagraph"},{"auth_required":false,"authority":"registry-observed","curation_level":"candidate-discovered","id":"sn-52-tensorplex-docs","key":"srf-b373533fcb35ae48","kind":"docs","last_verified_at":null,"name":"Dojo Tensorplex subnet docs","netuid":52,"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/52/subnet.json"],"stale":null,"subnet_name":"Dojo","subnet_slug":"sn-52","url":"https://github.com/tensorplex-labs/subnet-docs/tree/main/data/52"},{"auth_required":false,"authority":"community","curation_level":"candidate-discovered","id":"sn-52-tensorplex-openapi","key":"srf-1580880d489c7225","kind":"openapi","last_verified_at":null,"name":"Dojo Worker API OpenAPI spec","netuid":52,"notes":"Swagger 2.0 spec (20 paths) for the Dojo Worker API, committed in the official tensorplex-labs/dojo-worker-api repository at docs/swagger.json and served here via the jsDelivr view of that exact repo file (raw.githubusercontent.com serves it as text/plain, which machine-readable validation rejects). The previously hosted API base https://dojo.network/api/v1 (the TASK_API_URL default in tensorplex-labs/dojo internal/config/env.go) currently 301-redirects every path to the GitHub repo, so the committed spec is the subnet's only live machine-readable API description.","probe":{"enabled":true,"expect":"json","method":"GET","timeout_ms":10000},"provider":"tensorplex","public_safe":true,"review":{"state":"community-submitted","submitted_by":"dalledajay-coder"},"schema_status":"machine-readable","schema_url":"https://cdn.jsdelivr.net/gh/tensorplex-labs/dojo-worker-api@main/docs/swagger.json","source_urls":["https://github.com/tensorplex-labs/dojo-worker-api","https://raw.githubusercontent.com/tensorplex-labs/dojo-worker-api/main/docs/swagger.json"],"stale":null,"subnet_name":"Dojo","subnet_slug":"sn-52","url":"https://cdn.jsdelivr.net/gh/tensorplex-labs/dojo-worker-api@main/docs/swagger.json"},{"auth_required":false,"authority":"official","curation_level":"maintainer-reviewed","id":"sn-52-tensorplex-website","key":"srf-1a415c70b286f4d1","kind":"website","last_verified_at":"2026-07-16T04:10:00.000Z","name":"Tensorplex website","netuid":52,"notes":"Official Tensorplex website.","probe":{"enabled":true,"expect":"html","method":"HEAD","timeout_ms":10000},"provider":"tensorplex","public_safe":true,"source_urls":["https://www.tensorplex.ai/","https://github.com/tensorplex-labs/dojo"],"stale":false,"subnet_name":"Dojo","subnet_slug":"sn-52","url":"https://www.tensorplex.ai/"}]},"meta":{"artifact_path":"/metagraph/surfaces/52.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":14,"returned":14,"limit":14,"cursor":0,"next_cursor":null,"sort":null,"order":"asc"}}}