{"ok":true,"schema_version":1,"data":{"agent_readiness":{"blocker_level":"missing-data","blockers":[{"code":"missing-schema","field":"schemas","message":"At least one callable service exists, but no captured schema artifact is available.","next_action":"Capture an official OpenAPI/Swagger/JSON Schema source or document that no schema exists.","severity":"missing-data"},{"code":"unclear-auth","field":"auth","message":"Callable services exist, but auth requirements are not fully machine-readable.","next_action":"Declare auth_required/auth_schemes or capture auth metadata from the service schema.","severity":"missing-data"}],"missing_fields":["auth","schemas"],"status":"callable"},"categories":["baseline-augmented","baseline-curated","identity-reviewed","official-docs","official-source-repo","official-website","stablecoin"],"completeness_score":78,"contract_version":"2026-07-03.2","example_count":0,"examples":[],"generated_at":"2026-07-27T10:51:25.049Z","integration_readiness":71,"name":"TensorUSD","netuid":113,"readiness":{"components":{"active_lifecycle":true,"auth_clarity":false,"callable_now":true,"documented":false,"has_callable_api":true,"has_candidate_api":true,"has_public_docs":true,"has_source_repo":true,"profile_complete":true},"readiness_tier":"buildable","readiness_version":2,"score":71,"readiness_verified":true},"schema_version":1,"service_count":5,"services":[{"auth":null,"auth_required":false,"auth_schemes":[],"authority":"official","base_url":"https://agent-api.tensorusd.com/health","capability":"TensorUSD agent-API health","description":"Public no-auth GET /health on agent-api.tensorusd.com returning backend liveness JSON (observed: {\"success\":true,\"data\":{\"status\":\"ok\",\"env\":\"prod\"}}). This is the official TENSORUSD_SN_BACKEND_URL from the subnet's own .env documentation -- the Mechanism 1 prediction-agent backend used to fetch vault/liquidator information, distinct from the already-tracked api.tensorusd.com host and response shape.","eligibility":{"callable":true,"reasons":["not-bittensor-base-layer"],"live_status":"ok"},"fixture":{"artifact_path":"/metagraph/fixtures/sn-113-tensorusd-agent-api-health.json","captured_at":"2026-07-27T10:51:25.372Z","request":{"method":"GET","url":"https://agent-api.tensorusd.com/health"},"response":{"content_type":"application/json","status":200}},"fixture_status":{"artifact_path":"/metagraph/fixtures/sn-113-tensorusd-agent-api-health.json","captured_at":"2026-07-27T10:51:25.372Z","reason":null,"status":"available"},"health":{"status":"ok","classification":"live","latency_ms":80,"last_ok":"2026-07-27T22:30:18.289Z","last_checked":"2026-07-27T22:30:18.289Z","stale":false,"observed_by":"live-cron-prober"},"kind":"subnet-api","provider":"tensorusd","schema_artifact":null,"schema_source":null,"schema_status":null,"schema_url":null,"snippets":{"curl":"curl -sS 'https://agent-api.tensorusd.com/health'","python":"import requests\n\nresp = requests.get(\"https://agent-api.tensorusd.com/health\")\nresp.raise_for_status()\nprint(resp.json())","typescript":"const resp = await fetch(\"https://agent-api.tensorusd.com/health\");\nif (!resp.ok) throw new Error(`HTTP ${resp.status}`);\nconst data = await resp.json();"},"surface_id":"sn-113-tensorusd-agent-api-health"},{"auth":{"location":"header","name":"Authorization","scheme":"basic","scopes_note":"Requires HTTP Basic Authentication (live-verified 2026-07-22: an unauthenticated request returns HTTP 401 with a \"WWW-Authenticate: Basic\" challenge header). No bearer token, API key, or hotkey-signed request is accepted for this route.","value_format":"Basic <base64(username:password)>"},"auth_required":true,"auth_schemes":[],"authority":"community","base_url":"https://api.tensorusd.com/api/openapi.json","capability":"TensorUSD SN113 backend API schema endpoint (auth-gated)","description":"GET /api/openapi.json on api.tensorusd.com is a real, auth-gated backend OpenAPI schema endpoint -- distinct from the bare /openapi.json (404, already recorded in the existing gap_notes). It requires credentials to read, so the schema itself could not be captured (registered as subnet-api rather than openapi, since openapi-kind surfaces require a machine-readable schema). Live-verified 2026-07-22: GET https://api.tensorusd.com/api/openapi.json -> HTTP 401 (empty body); GET https://api.tensorusd.com/openapi.json -> HTTP 404 (confirms the distinct path). Registered with probe.enabled:false since it is not anonymously callable; worth re-probing with an API key to unlock full endpoint discovery.","eligibility":{"callable":false,"reasons":["not-bittensor-base-layer","status-unknown","auth-required"],"live_status":"unknown"},"fixture_status":{"artifact_path":null,"captured_at":null,"reason":"fixture capture skips credentialed services","status":"auth-required"},"health":{"status":"unknown","classification":null,"latency_ms":null,"last_ok":null,"last_checked":null,"stale":false,"observed_by":"unavailable"},"kind":"subnet-api","provider":"tensorusd","schema_artifact":null,"schema_source":null,"schema_status":null,"schema_url":null,"snippets":{"curl":"curl -sS 'https://api.tensorusd.com/api/openapi.json' \\\n  -H 'Authorization: Basic <base64(username:password)>'","python":"import requests\n\nresp = requests.get(\"https://api.tensorusd.com/api/openapi.json\", headers={\"Authorization\": \"Basic <base64(username:password)>\"})\nresp.raise_for_status()\nprint(resp.json())","typescript":"const resp = await fetch(\"https://api.tensorusd.com/api/openapi.json\", {\n  headers: { \"Authorization\": \"Basic <base64(username:password)>\" },\n});\nif (!resp.ok) throw new Error(`HTTP ${resp.status}`);\nconst data = await resp.json();"},"surface_id":"sn-113-tensorusd-api-openapi"},{"auth":null,"auth_required":false,"auth_schemes":[],"authority":"community","base_url":"https://docs.tensorusd.com/llms.txt","capability":"TensorUSD docs llms.txt index","description":"Public no-auth machine-readable llms.txt index of the official SN113 TensorUSD documentation, served at the docs.tensorusd.com domain the official TensorUSD/subnet README links (README confirms netuid 113). Provides an agent-consumable Markdown map of the TensorUSD docs (introduction, components, contracts) for LLM/agent ingestion; content begins '# TensorUSD'.","eligibility":{"callable":true,"reasons":["not-bittensor-base-layer"],"live_status":"ok"},"fixture_status":{"artifact_path":null,"captured_at":null,"reason":"non-json response","status":"capture-failed"},"health":{"status":"ok","classification":"live","latency_ms":127,"last_ok":"2026-07-27T22:30:18.289Z","last_checked":"2026-07-27T22:30:18.289Z","stale":false,"observed_by":"live-cron-prober"},"kind":"data-artifact","provider":"tensorusd","schema_artifact":null,"schema_source":null,"schema_status":null,"schema_url":null,"snippets":{"curl":"curl -sS 'https://docs.tensorusd.com/llms.txt'","python":"import requests\n\nresp = requests.get(\"https://docs.tensorusd.com/llms.txt\")\nresp.raise_for_status()\nprint(resp.json())","typescript":"const resp = await fetch(\"https://docs.tensorusd.com/llms.txt\");\nif (!resp.ok) throw new Error(`HTTP ${resp.status}`);\nconst data = await resp.json();"},"surface_id":"sn-113-tensorusd-llms-txt"},{"auth":null,"auth_required":false,"auth_schemes":[],"authority":"community","base_url":"https://api.tensorusd.com/health","capability":"TensorUSD API health","description":"Public no-auth GET returning the TensorUSD (SN113) backend API health (status + component/database connectivity). Hosted on api.tensorusd.com, the API subdomain of the subnet's registered website tensorusd.com.","eligibility":{"callable":true,"reasons":["not-bittensor-base-layer"],"live_status":"ok"},"fixture":{"artifact_path":"/metagraph/fixtures/sn-113-tensorusd-subnet-api.json","captured_at":"2026-07-27T10:51:25.372Z","request":{"method":"GET","url":"https://api.tensorusd.com/health"},"response":{"content_type":"application/json; charset=utf-8","status":200}},"fixture_status":{"artifact_path":"/metagraph/fixtures/sn-113-tensorusd-subnet-api.json","captured_at":"2026-07-27T10:51:25.372Z","reason":null,"status":"available"},"health":{"status":"ok","classification":"live","latency_ms":262,"last_ok":"2026-07-27T22:30:18.289Z","last_checked":"2026-07-27T22:30:18.289Z","stale":false,"observed_by":"live-cron-prober"},"kind":"subnet-api","provider":"tensorusd","schema_artifact":null,"schema_source":null,"schema_status":null,"schema_url":null,"snippets":{"curl":"curl -sS 'https://api.tensorusd.com/health'","python":"import requests\n\nresp = requests.get(\"https://api.tensorusd.com/health\")\nresp.raise_for_status()\nprint(resp.json())","typescript":"const resp = await fetch(\"https://api.tensorusd.com/health\");\nif (!resp.ok) throw new Error(`HTTP ${resp.status}`);\nconst data = await resp.json();"},"surface_id":"sn-113-tensorusd-subnet-api"},{"auth":null,"auth_required":false,"auth_schemes":[],"authority":"community","base_url":"https://raw.githubusercontent.com/TensorUSD/subnet/main/tensorusd/common/abis/tusdt_vault.json","capability":"TensorUSD vault contract ABI","description":"Public no-auth JSON contract metadata (ink! ABI) for the SN113 TensorUSD vault pallet contract. Loaded by miners and validators via ContractMetadata.create_from_file in the official tensorusd/common/contract.py module; the README documents the matching mainnet Vault contract address.","eligibility":{"callable":true,"reasons":["not-bittensor-base-layer"],"live_status":"ok"},"fixture_status":{"artifact_path":null,"captured_at":null,"reason":"non-json response","status":"capture-failed"},"health":{"status":"ok","classification":"live","latency_ms":166,"last_ok":"2026-07-27T22:30:18.289Z","last_checked":"2026-07-27T22:30:18.289Z","stale":false,"observed_by":"live-cron-prober"},"kind":"data-artifact","provider":"tensorusd","schema_artifact":null,"schema_source":null,"schema_status":null,"schema_url":null,"snippets":{"curl":"curl -sS 'https://raw.githubusercontent.com/TensorUSD/subnet/main/tensorusd/common/abis/tusdt_vault.json'","python":"import requests\n\nresp = requests.get(\"https://raw.githubusercontent.com/TensorUSD/subnet/main/tensorusd/common/abis/tusdt_vault.json\")\nresp.raise_for_status()\nprint(resp.json())","typescript":"const resp = await fetch(\"https://raw.githubusercontent.com/TensorUSD/subnet/main/tensorusd/common/abis/tusdt_vault.json\");\nif (!resp.ok) throw new Error(`HTTP ${resp.status}`);\nconst data = await resp.json();"},"surface_id":"sn-113-tensorusd-vault-abi"}],"slug":"sn-113","subnet_type":"application","operational_observed_at":"2026-07-27T22:30:18.289Z","health_source":"live-cron-prober"},"meta":{"artifact_path":"/metagraph/agent-catalog/113.json","cache":"standard","contract_version":"2026-07-03.2","generated_at":"2026-07-27T10:51:25.049Z","published_at":"2026-07-27T10:51:25.049Z","source":"live-cron-prober","operational_observed_at":"2026-07-27T22:30:18.289Z"}}