{"openapi":"3.1.0","info":{"title":"Aurelius Central API","description":"Central coordination service for the Aurelius Bittensor subnet","version":"0.1.0"},"paths":{"/auth/validator/challenge":{"post":{"tags":["auth"],"summary":"Request Challenge","operationId":"request_challenge_auth_validator_challenge_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChallengeRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChallengeResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/validator/verify":{"post":{"tags":["auth"],"summary":"Verify Challenge","operationId":"verify_challenge_auth_validator_verify_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/work-token/deposit":{"post":{"tags":["work-token"],"summary":"Deposit","operationId":"deposit_work_token_deposit_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DepositRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DepositResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/work-token/balance/{hotkey}":{"get":{"tags":["work-token"],"summary":"Balance","operationId":"balance_work_token_balance__hotkey__get","parameters":[{"name":"hotkey","in":"path","required":true,"schema":{"type":"string","title":"Hotkey"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BalanceResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/work-token/rate-limit/{hotkey}":{"get":{"tags":["work-token"],"summary":"Rate Limit Status","operationId":"rate_limit_status_work_token_rate_limit__hotkey__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"hotkey","in":"path","required":true,"schema":{"type":"string","title":"Hotkey"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/work-token/consume":{"post":{"tags":["work-token"],"summary":"Consume","operationId":"consume_work_token_consume_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConsumeRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConsumeResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/work-token/status/{work_id}":{"get":{"tags":["work-token"],"summary":"Work Id Status","operationId":"work_id_status_work_token_status__work_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"work_id","in":"path","required":true,"schema":{"type":"string","title":"Work Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkIdStatusResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/work-token/designated-address":{"get":{"tags":["work-token"],"summary":"Designated Address","operationId":"designated_address_work_token_designated_address_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DesignatedAddressResponse"}}}}}}},"/work-token/deposit-address/verify":{"get":{"tags":["work-token"],"summary":"Verify Deposit Address","operationId":"verify_deposit_address_work_token_deposit_address_verify_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/work-token/deposit-address/rotate":{"post":{"tags":["work-token"],"summary":"Rotate Deposit Address","description":"Rotate the designated deposit address. Requires admin auth.\n\nThe new address must be an equivalent or stronger multisig (threshold >= current).\nAt least 2 keyholders must authorize.","operationId":"rotate_deposit_address_work_token_deposit_address_rotate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RotateAddressRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RotateAddressResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/work-token/deposit-address":{"patch":{"tags":["work-token"],"summary":"Admin Update Deposit Address","operationId":"admin_update_deposit_address_work_token_deposit_address_patch","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminUpdateDepositAddressRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DesignatedAddressResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/work-token/deposit-address/history":{"get":{"tags":["work-token"],"summary":"Deposit Address History","description":"View the history of deposit address rotations.","operationId":"deposit_address_history_work_token_deposit_address_history_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/work-token/admin/onchain-transfers":{"get":{"tags":["work-token"],"summary":"Admin List Onchain Transfers","description":"List observed on-chain transfers — used by operators to spot\nuncredited drift and decide whether to manually credit it.","operationId":"admin_list_onchain_transfers_work_token_admin_onchain_transfers_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":100,"title":"Limit"}},{"name":"only_uncredited","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Only Uncredited"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/OnChainTransferView"},"title":"Response Admin List Onchain Transfers Work Token Admin Onchain Transfers Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/work-token/admin/repair-balances":{"post":{"tags":["work-token"],"summary":"Admin Repair Balances","description":"R2: recompute drifted ``available_balance`` from the transaction log.\n\nUse ``dry_run=true`` first to preview what would change. Repairs are\nonly applied when the cached totals themselves agree with the\ntransaction sums; if they don't, the row is returned in\n``unrepairable`` for operator investigation (auto-repair would erase\nthe divergence rather than explaining it).\n\nEvery applied repair writes an entry to ``work_token_audit_log``.","operationId":"admin_repair_balances_work_token_admin_repair_balances_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"dry_run","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Dry Run"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RepairBalancesResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/work-token/admin/credit-onchain/{transfer_id}":{"post":{"tags":["work-token"],"summary":"Admin Credit Onchain","description":"Manually credit an observed on-chain transfer to its source hotkey.\n\nUsed when:\n- Auto-credit is disabled (default) and an operator has reviewed the\n  observation and wants to apply it.\n- The amount is above the auto-credit cap.\n- The miner hasn't called /deposit themselves (lost token, network blip,\n  etc.) and the operator has confirmed the transfer is legitimate.\n\nIdempotent: if the transfer is already credited, returns the current\nstate without double-crediting.","operationId":"admin_credit_onchain_work_token_admin_credit_onchain__transfer_id__post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"transfer_id","in":"path","required":true,"schema":{"type":"integer","title":"Transfer Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreditOnChainResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/work-token/admin/onchain/backfill":{"post":{"tags":["work-token"],"summary":"Admin Backfill Onchain","description":"Rewind the on-chain scanner cursor so the next reconcile cycle\nre-scans from ``from_block`` onward.\n\nConcurrency: takes the same advisory lock the scanner holds\n(``_SCANNER_ADVISORY_LOCK_KEY``) so a concurrent scanner cycle can't\nsilently overwrite the rewind. Returns 409 if the scanner is mid-cycle.\n\nBounds: ``from_block`` must be ≤ current ``safe_head`` (a rewind to\nthe future is meaningless). For rewinds with delta > ``_BACKFILL_CONFIRM_DELTA``\nblocks the caller must pass ``confirm: true`` — this is the\noperator-confirmation gate the dashboard's stage→commit pattern enforces\nfor dramatic config changes.\n\nAudit: every rewind writes a ``config_change_log`` row keyed\n``scanner_cursor`` so we have a queryable trail of who rewound what when.\nThe ``X-Admin-Actor`` header (free-text operator name) is required so\nthe actor field is not the literal string ``admin``.\n\nIdempotent: re-observed transfers hit the UNIQUE on\n``(block_number, extrinsic_index)`` and reuse the existing row;\nre-credits hit the UNIQUE on ``(tx_hash, extrinsic_index)`` in\n``work_token_transaction``. Safe to run repeatedly.","operationId":"admin_backfill_onchain_work_token_admin_onchain_backfill_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackfillRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackfillResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/work-token/admin/onchain/skip-poison-block":{"post":{"tags":["work-token"],"summary":"Admin Skip Poison Block","description":"Advance the scanner cursor past a single block whose decode is\npersistently failing.\n\nAuth: admin Bearer + ``X-Admin-Actor`` (validated charset/length).\n\nConcurrency: takes the same advisory lock the scanner holds so a\ncycle can't race the cursor write. Returns 409 if the scanner is\nmid-cycle.\n\nBounds: ``block_number`` must equal ``cursor + 1`` (the block the\nscanner is stuck on). Any other value is rejected with 400 — operators\nwho want to jump the cursor anywhere else use ``/admin/onchain/backfill``\n(rewind) or wait for the cycle to advance naturally.\n\nIdempotent: if the cursor already moved past ``block_number``, the\nendpoint is a no-op (returns the current state with no further write).\n\nAudit: writes a ``config_change_log`` row keyed ``scanner_poison_skip``\nwith JSON body capturing the block, actor, reason, and pre-skip poison\nstate. The operator MUST externally verify that ``block_number`` has\nno transfer to the designated deposit address before authorizing —\nskipping a block with a real transfer silently drops a credit.","operationId":"admin_skip_poison_block_work_token_admin_onchain_skip_poison_block_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SkipPoisonBlockRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SkipPoisonBlockResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/work-token/admin/synthetic-credit":{"post":{"tags":["work-token"],"summary":"Admin Synthetic Credit","operationId":"admin_synthetic_credit_work_token_admin_synthetic_credit_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyntheticCreditRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyntheticCreditResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/work-token/admin/synthetic-debit":{"post":{"tags":["work-token"],"summary":"Admin Synthetic Debit","description":"Zero out a miner's synthetic_balance. Records the cleared amount as a\nCONSUME row with work_id=None for audit. Real balance untouched.","operationId":"admin_synthetic_debit_work_token_admin_synthetic_debit_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyntheticDebitRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyntheticCreditResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/work-token/admin/synthetic-balance/{hotkey}":{"get":{"tags":["work-token"],"summary":"Admin Synthetic Balance","operationId":"admin_synthetic_balance_work_token_admin_synthetic_balance__hotkey__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"hotkey","in":"path","required":true,"schema":{"type":"string","title":"Hotkey"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyntheticBalanceResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/config":{"get":{"tags":["config"],"summary":"Get Config","description":"Return the subnet's remote configuration. Validators only (H2).\n\nPreviously ``require_auth``-gated, which let any authenticated miner\nread live tuning values (classifier/novelty thresholds, rate limits,\narchetype bumps) and game submissions against the exact decision\nboundary. Miners have no runtime need for this payload — they read\na static `PROTOCOL_VERSION` locally — so the endpoint is now scoped\nto validators. If a future miner-facing config is required, add a\nseparate ``/config/miner`` route returning only the fields miners\nactually need.\n\nValidators poll this every `polling_interval_seconds` and merge the\nresponse over their local config. In ENVIRONMENT=local, validators\nignore remote values entirely and use the local defaults.\n\nField lifecycle on the validator side\n-------------------------------------\n\nLive — change takes effect on the next refresh tick (no restart):\n  classifier_threshold, novelty_threshold, rate_limit_per_uid_per_tempo,\n  work_token_cost_per_unit, custom_archetype_threshold_bump, max_agents,\n  polling_interval_seconds, concordia_timeout_seconds, concordia_image_tag,\n  classifier_update_interval_hours, min_premise_length, max_premise_length,\n  min_validator_version, min_miner_version, semantic_coherence_enabled,\n  burn_mode, burn_percentage, weight_interval, query_timeout,\n  require_image_digest, sim_data_dir, sim_data_host_dir, max_config_size,\n  work_id_freshness_seconds, min_consistency_reports, consistency_floor.\n\nRestart-required — captured once at validator init (queue and simulation\nrunner read these when they are constructed, and don't re-read them):\n  queue_max_size, queue_max_file_size_mb, queue_max_age_seconds,\n  concordia_image_name, concordia_image_digest, sim_network_name,\n  sim_allowed_llm_hosts, sim_base_timeout, sim_base_ram_mb, sim_cpu_count,\n  container_pool_size, llm_model, llm_base_url.\n\nIf you change a restart-required field, restart validators (Watchtower\nauto-pulls on :latest, or operators can `docker compose restart`).","operationId":"get_config_config_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RemoteConfig"}}}}},"security":[{"HTTPBearer":[]}]},"put":{"tags":["config"],"summary":"Update Config","description":"Admin endpoint: update remote config values. Requires ADMIN_API_KEY.\n\nNOTE: This endpoint remains one-shot for backward-compatibility with\nscripts/CI that authenticate via the legacy bearer key. The dashboard\nSPA uses /admin/api/config/{stage,commit} for the two-step flow that\nthe operator policy requires for human-driven changes.","operationId":"update_config_config_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigUpdate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/submissions":{"post":{"tags":["submissions"],"summary":"Create Submission","operationId":"create_submission_submissions_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubmissionCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubmissionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["submissions"],"summary":"List Submissions","operationId":"list_submissions_submissions_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"miner_hotkey","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Miner Hotkey"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SubmissionStatus"},{"type":"null"}],"title":"Status"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/submissions/{work_id}":{"get":{"tags":["submissions"],"summary":"Get Submission","operationId":"get_submission_submissions__work_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"work_id","in":"path","required":true,"schema":{"type":"string","title":"Work Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubmissionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/benchmark/status":{"get":{"tags":["submissions"],"summary":"Benchmark Status","operationId":"benchmark_status_benchmark_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BenchmarkStatusResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/benchmark/trigger":{"post":{"tags":["submissions"],"summary":"Trigger Benchmark","description":"Admin endpoint: trigger a benchmark pipeline run. Requires ADMIN_API_KEY.\n\nWith full=false (default): only collects a batch of simulated submissions.\nWith full=true: runs the complete pipeline (batch → finetune → eval → influence → label → retrain).","operationId":"trigger_benchmark_benchmark_trigger_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"full","in":"query","required":false,"schema":{"type":"boolean","description":"Run full pipeline (finetune → eval → influence → retrain). If false, only collects batch.","default":false,"title":"Full"},"description":"Run full pipeline (finetune → eval → influence → retrain). If false, only collects batch."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/benchmark/result":{"post":{"tags":["submissions"],"summary":"Record Benchmark Result","description":"Record the result of a benchmark evaluation. Requires admin auth.","operationId":"record_benchmark_result_benchmark_result_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BenchmarkResultCreate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/benchmark/history":{"get":{"tags":["submissions"],"summary":"Benchmark History","description":"Get history of benchmark evaluation results.","operationId":"benchmark_history_benchmark_history_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/novelty/check":{"post":{"tags":["novelty"],"summary":"Check Novelty","description":"Check novelty. If field_embeddings provided, uses per-field checking.","operationId":"check_novelty_novelty_check_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NoveltyCheckRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NoveltyCheckResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/novelty/add":{"post":{"tags":["novelty"],"summary":"Add To Index","operationId":"add_to_index_novelty_add_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NoveltyAddRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/novelty/remove":{"post":{"tags":["novelty"],"summary":"Remove From Index","description":"PO-07: roll back a previously-added embedding keyed by config_hash.\n\nCalled by the validator when work-token deduction (stage 8) fails\nafter the embedding has already been added (stage 7c). Without this\nrollback, a miner whose consume failed would be unable to resubmit\nthe same content.\n\nH1: only the validator that originally added an entry may remove it.\nCross-validator removal attempts return 403 (not 404) so legitimate\noperators see a clear signal when misuse occurs.","operationId":"remove_from_index_novelty_remove_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NoveltyRemoveRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/classifier/predict":{"post":{"tags":["classifier"],"summary":"Classifier Predict","description":"Run classifier inference on a scenario config.\n\nRestricted to authenticated validators (CL7).","operationId":"classifier_predict_classifier_predict_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PredictRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/classifier/model/version":{"get":{"tags":["classifier"],"summary":"Classifier Version","operationId":"classifier_version_classifier_model_version_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/classifier/model":{"get":{"tags":["classifier"],"summary":"Classifier Model","description":"Download the classifier model binary. Requires authentication.","operationId":"classifier_model_classifier_model_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["classifier"],"summary":"Upload Classifier Model","description":"Upload a new classifier model. Body is the JSON envelope produced\nby GET /classifier/model (includes sha256 integrity check).\n\nOn success, the new model becomes effective at the next tempo\nboundary (the tempo-aligned cache gates reloads so all validators\nroll over together — CL-09). Returns the uploaded model version.","operationId":"upload_classifier_model_classifier_model_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/stats/deposits":{"get":{"tags":["stats"],"summary":"Deposit Stats","operationId":"deposit_stats_stats_deposits_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DepositStatsResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/stats/submissions":{"get":{"tags":["stats"],"summary":"Submission Stats","operationId":"submission_stats_stats_submissions_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubmissionStatsResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/stats/validators":{"get":{"tags":["stats"],"summary":"Validator Stats","operationId":"validator_stats_stats_validators_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidatorStatsResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/stats/pipeline":{"get":{"tags":["stats"],"summary":"Pipeline Stats","description":"Pipeline pass/fail rates from validation reports.","operationId":"pipeline_stats_stats_pipeline_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipelineStatsResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/stats/transparency-report":{"get":{"tags":["stats"],"summary":"Transparency Report","description":"Generate an aggregate transparency report of fund disposition and subnet activity.","operationId":"transparency_report_stats_transparency_report_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransparencyReportResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/stats/consensus-deviation":{"get":{"tags":["stats"],"summary":"Consensus Deviation","description":"Monitor validator consensus deviation and alert on anomalies.","operationId":"consensus_deviation_stats_consensus_deviation_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConsensusDeviationResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/stats/version-distribution":{"get":{"tags":["stats"],"summary":"Version Distribution","description":"Protocol version distribution across miners and validators.","operationId":"version_distribution_stats_version_distribution_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VersionDistributionResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/stats/archetypes":{"get":{"tags":["stats"],"summary":"Archetype Stats","description":"Submission count and pass rate broken down by tension archetype.","operationId":"archetype_stats_stats_archetypes_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ArchetypeStatsResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/stats/influence-distribution":{"get":{"tags":["stats"],"summary":"Influence Distribution","description":"Influence score distribution across all scored submissions and per batch.","operationId":"influence_distribution_stats_influence_distribution_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InfluenceDistributionResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/reports":{"post":{"tags":["reports"],"summary":"Submit Report","operationId":"submit_report_reports_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReportCreate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReportResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/reports/consistency":{"get":{"tags":["reports"],"summary":"Validator Consistency","description":"Return the calling validator's own consistency data only.","operationId":"validator_consistency_reports_consistency_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConsistencyResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/reports/consistency/{hotkey}":{"get":{"tags":["reports"],"summary":"Validator Consistency By Hotkey","description":"Return consistency for a specific hotkey. Validators can only query their own.","operationId":"validator_consistency_by_hotkey_reports_consistency__hotkey__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"hotkey","in":"path","required":true,"schema":{"type":"string","title":"Hotkey"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConsistencyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/reports/consensus/{work_id}":{"get":{"tags":["reports"],"summary":"Work Id Consensus","operationId":"work_id_consensus_reports_consensus__work_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"work_id","in":"path","required":true,"schema":{"type":"string","title":"Work Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConsensusResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/api/auth/login":{"post":{"tags":["admin-auth"],"summary":"Login","operationId":"login_admin_api_auth_login_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/api/auth/logout":{"post":{"tags":["admin-auth"],"summary":"Logout","operationId":"logout_admin_api_auth_logout_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/admin/api/auth/me":{"get":{"tags":["admin-auth"],"summary":"Me","operationId":"me_admin_api_auth_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MeResponse"}}}}}}},"/admin/api/config":{"get":{"tags":["admin-dashboard"],"summary":"Admin Get Config","operationId":"admin_get_config_admin_api_config_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RemoteConfig"}}}}}}},"/admin/api/config/schema":{"get":{"tags":["admin-dashboard"],"summary":"Admin Get Config Schema","description":"Field metadata for schema-driven UI rendering.\n\nMirrors the source-of-truth in routes/config.py — type sets, _BOUNDS,\n_DEFAULTS, the restart-required set, and the CRITICAL_FIELDS gate\nused by the SPA to decide UI friction (typed-confirm).","operationId":"admin_get_config_schema_admin_api_config_schema_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigSchemaResponse"}}}}}}},"/admin/api/config/stage":{"post":{"tags":["admin-dashboard"],"summary":"Stage Config","description":"Validate updates and stage them as pending_config_change rows.\n\nCookie auth only — scripts using the legacy ADMIN_API_KEY hit the\none-shot `PUT /config` instead. The two-step flow exists to make\nhuman-driven changes intentional.","operationId":"stage_config_admin_api_config_stage_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StageRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StageResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/api/config/commit":{"post":{"tags":["admin-dashboard"],"summary":"Commit Config","description":"Apply previously staged changes. All-or-nothing.\n\nThe committing admin must be the same admin who staged the rows\n(no proxy commits) and the rows must not have expired.","operationId":"commit_config_admin_api_config_commit_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommitRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommitResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/api/config/history":{"get":{"tags":["admin-dashboard"],"summary":"Config History","description":"Return the most recent N audit entries, newest first.","operationId":"config_history_admin_api_config_history_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HistoryResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/api/config/revert":{"post":{"tags":["admin-dashboard"],"summary":"Revert Change","description":"Stage a revert of a single audit-log entry.\n\nRoutes through the same stage/commit flow — reverting requires a\nconfirming commit click in the SPA. We never directly write the old\nvalue back without operator confirmation, even for \"undo\".","operationId":"revert_change_admin_api_config_revert_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RevertRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StageResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/health/live":{"get":{"summary":"Health Live","operationId":"health_live_health_live_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/health/ready":{"get":{"summary":"Health Ready","operationId":"health_ready_health_ready_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/health":{"get":{"summary":"Health","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}}},"components":{"schemas":{"AdminUpdateDepositAddressRequest":{"properties":{"address":{"type":"string","title":"Address"},"multisig_threshold":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Multisig Threshold"},"signatories":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Signatories"}},"type":"object","required":["address"],"title":"AdminUpdateDepositAddressRequest","description":"Admin override for the active deposit-address record.\n\nUse to switch between single-key (signatories=None, multisig_threshold=None)\nand multisig deposit destinations, or to correct a malformed record. The\ncryptographic-rotation flow (`/deposit-address/rotate`) requires keyholder\nsignatures and only supports multisig→multisig moves; this admin path is\nthe escape hatch for everything else (initial setup, single-key operator\nwallets, fixing a leaked record)."},"ArchetypeStatsResponse":{"properties":{"archetypes":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Archetypes"},"total_submissions":{"type":"integer","title":"Total Submissions"}},"type":"object","required":["archetypes","total_submissions"],"title":"ArchetypeStatsResponse"},"BackfillRequest":{"properties":{"from_block":{"type":"integer","minimum":0.0,"title":"From Block"},"confirm":{"type":"boolean","title":"Confirm","description":"Required for rewinds with delta > 10000 blocks. Forces the operator to explicitly acknowledge a dramatic re-scan.","default":false},"force":{"type":"boolean","title":"Force","description":"When ``from_block`` is below the wallet birth block (the earliest deposit_address_history.activated_at), the endpoint rejects with 400 by default — those blocks predate the deposit wallet so the scanner would skip them anyway. Set ``force=true`` to override the lower-bound check (e.g. recovering an old leaked-address deposit pre-rotation). Logged CRITICAL when used.","default":false}},"type":"object","required":["from_block"],"title":"BackfillRequest"},"BackfillResponse":{"properties":{"previous_cursor":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Previous Cursor"},"new_cursor":{"type":"integer","title":"New Cursor"},"safe_head":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Safe Head"},"rewind_delta":{"type":"integer","title":"Rewind Delta"},"message":{"type":"string","title":"Message"},"clamped_from_block":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Clamped From Block"}},"type":"object","required":["previous_cursor","new_cursor","safe_head","rewind_delta","message"],"title":"BackfillResponse"},"BalanceResponse":{"properties":{"hotkey":{"type":"string","title":"Hotkey"},"balance":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Balance"},"has_balance":{"type":"boolean","title":"Has Balance"}},"type":"object","required":["hotkey","has_balance"],"title":"BalanceResponse"},"BenchmarkResultCreate":{"properties":{"batch_id":{"type":"string","title":"Batch Id"},"morebench_score":{"type":"number","title":"Morebench Score"},"morebench_delta":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Morebench Delta"},"base_model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Base Model"},"submission_count":{"type":"integer","title":"Submission Count"}},"type":"object","required":["batch_id","morebench_score","submission_count"],"title":"BenchmarkResultCreate"},"BenchmarkStatusResponse":{"properties":{"pending_count":{"type":"integer","title":"Pending Count"},"validated_count":{"type":"integer","title":"Validated Count"},"simulated_count":{"type":"integer","title":"Simulated Count"},"benchmarked_count":{"type":"integer","title":"Benchmarked Count"},"latest_morebench_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Latest Morebench Score"}},"type":"object","required":["pending_count","validated_count","simulated_count","benchmarked_count"],"title":"BenchmarkStatusResponse"},"ChallengeRequest":{"properties":{"hotkey":{"type":"string","maxLength":48,"minLength":46,"title":"Hotkey"}},"type":"object","required":["hotkey"],"title":"ChallengeRequest"},"ChallengeResponse":{"properties":{"challenge":{"type":"string","title":"Challenge"},"expires_at":{"type":"string","title":"Expires At"}},"type":"object","required":["challenge","expires_at"],"title":"ChallengeResponse"},"CommitRequest":{"properties":{"change_ids":{"items":{"type":"integer"},"type":"array","title":"Change Ids"}},"type":"object","required":["change_ids"],"title":"CommitRequest"},"CommitResponse":{"properties":{"status":{"type":"string","title":"Status"},"keys":{"items":{"type":"string"},"type":"array","title":"Keys"}},"type":"object","required":["status","keys"],"title":"CommitResponse"},"ConfigSchemaResponse":{"properties":{"fields":{"items":{"$ref":"#/components/schemas/FieldSchema"},"type":"array","title":"Fields"}},"type":"object","required":["fields"],"title":"ConfigSchemaResponse"},"ConfigUpdate":{"properties":{"updates":{"additionalProperties":{"type":"string"},"type":"object","title":"Updates"}},"type":"object","required":["updates"],"title":"ConfigUpdate","description":"Partial config update. Only provided keys are changed."},"ConsensusDeviationResponse":{"properties":{"total_validators":{"type":"integer","title":"Total Validators"},"anomalous_validators":{"type":"integer","title":"Anomalous Validators"},"low_agreement_validators":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Low Agreement Validators"},"alert":{"type":"boolean","title":"Alert"},"alert_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Alert Message"}},"type":"object","required":["total_validators","anomalous_validators","low_agreement_validators","alert"],"title":"ConsensusDeviationResponse"},"ConsensusResponse":{"properties":{"work_id":{"type":"string","title":"Work Id"},"total_reports":{"type":"integer","title":"Total Reports"},"pass_count":{"type":"integer","title":"Pass Count"},"fail_count":{"type":"integer","title":"Fail Count"},"consensus":{"type":"boolean","title":"Consensus"},"consensus_result":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Consensus Result"}},"type":"object","required":["work_id","total_reports","pass_count","fail_count","consensus","consensus_result"],"title":"ConsensusResponse"},"ConsistencyResponse":{"properties":{"hotkey":{"type":"string","title":"Hotkey"},"total_reports":{"type":"integer","title":"Total Reports"},"agreement_rate":{"type":"number","title":"Agreement Rate"},"anomalous":{"type":"boolean","title":"Anomalous"}},"type":"object","required":["hotkey","total_reports","agreement_rate","anomalous"],"title":"ConsistencyResponse"},"ConsumeRequest":{"properties":{"miner_hotkey":{"type":"string","title":"Miner Hotkey"},"work_id":{"type":"string","maxLength":64,"minLength":64,"pattern":"^[a-f0-9]{64}$","title":"Work Id"},"config_hash":{"type":"string","maxLength":64,"title":"Config Hash","description":"SHA-256 hash of the scenario config. Stored on first consume; subsequent consumes with the same work_id must match.","default":""},"work_id_signature":{"type":"string","maxLength":256,"title":"Work Id Signature","description":"Miner's hotkey signature over the work_id, hex-encoded. Proves the miner authorized this work_id. Verified server-side.","default":""}},"type":"object","required":["miner_hotkey","work_id"],"title":"ConsumeRequest"},"ConsumeResponse":{"properties":{"success":{"type":"boolean","title":"Success"},"deducted":{"type":"boolean","title":"Deducted"},"valid":{"type":"boolean","title":"Valid"},"message":{"type":"string","title":"Message"}},"type":"object","required":["success","deducted","valid","message"],"title":"ConsumeResponse"},"CreditOnChainResponse":{"properties":{"success":{"type":"boolean","title":"Success"},"onchain_transfer_id":{"type":"integer","title":"Onchain Transfer Id"},"miner_hotkey":{"type":"string","title":"Miner Hotkey"},"amount_alpha":{"type":"number","title":"Amount Alpha"},"new_balance":{"type":"number","title":"New Balance"},"message":{"type":"string","title":"Message"}},"type":"object","required":["success","onchain_transfer_id","miner_hotkey","amount_alpha","new_balance","message"],"title":"CreditOnChainResponse"},"DepositRequest":{"properties":{"miner_hotkey":{"type":"string","minLength":1,"title":"Miner Hotkey"},"tx_hash":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$","title":"Tx Hash","description":"Block hash containing the transfer_stake extrinsic (0x + 64 hex)"},"amount":{"type":"number","exclusiveMinimum":0.0,"title":"Amount","description":"Deposit amount in alpha tokens"},"sender_coldkey":{"type":"string","minLength":1,"title":"Sender Coldkey","description":"Coldkey SS58 address that signed the on-chain transfer. Required — verified against the on-chain extrinsic sender."}},"type":"object","required":["miner_hotkey","tx_hash","amount","sender_coldkey"],"title":"DepositRequest"},"DepositResponse":{"properties":{"success":{"type":"boolean","title":"Success"},"balance":{"type":"number","title":"Balance"},"message":{"type":"string","title":"Message"}},"type":"object","required":["success","balance","message"],"title":"DepositResponse"},"DepositStatsResponse":{"properties":{"total_deposited":{"type":"number","title":"Total Deposited"},"total_consumed":{"type":"number","title":"Total Consumed"},"active_miners":{"type":"integer","title":"Active Miners"},"designated_address":{"type":"string","title":"Designated Address"}},"type":"object","required":["total_deposited","total_consumed","active_miners","designated_address"],"title":"DepositStatsResponse"},"DesignatedAddressResponse":{"properties":{"address":{"type":"string","title":"Address"},"multisig_threshold":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Multisig Threshold"},"signatories":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Signatories"}},"type":"object","required":["address"],"title":"DesignatedAddressResponse"},"FieldSchema":{"properties":{"key":{"type":"string","title":"Key"},"type":{"type":"string","title":"Type"},"default":{"title":"Default"},"min":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Min"},"max":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Max"},"restart_required":{"type":"boolean","title":"Restart Required","default":false},"critical":{"type":"boolean","title":"Critical","default":false}},"type":"object","required":["key","type","default"],"title":"FieldSchema"},"FieldScore":{"properties":{"field":{"type":"string","title":"Field"},"similarity":{"type":"number","title":"Similarity"},"novel":{"type":"boolean","title":"Novel"}},"type":"object","required":["field","similarity","novel"],"title":"FieldScore"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HistoryEntry":{"properties":{"id":{"type":"integer","title":"Id"},"actor":{"type":"string","title":"Actor"},"key":{"type":"string","title":"Key"},"old_value":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Old Value"},"new_value":{"type":"string","title":"New Value"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","actor","key","old_value","new_value","created_at"],"title":"HistoryEntry"},"HistoryResponse":{"properties":{"entries":{"items":{"$ref":"#/components/schemas/HistoryEntry"},"type":"array","title":"Entries"}},"type":"object","required":["entries"],"title":"HistoryResponse"},"InfluenceDistributionResponse":{"properties":{"total_scored":{"type":"integer","title":"Total Scored"},"min_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Min Score"},"max_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Max Score"},"mean_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Mean Score"},"std_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Std Score"},"by_batch":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"By Batch"}},"type":"object","required":["total_scored","min_score","max_score","mean_score","std_score","by_batch"],"title":"InfluenceDistributionResponse"},"LoginRequest":{"properties":{"email":{"type":"string","title":"Email"},"password":{"type":"string","title":"Password"}},"type":"object","required":["email","password"],"title":"LoginRequest"},"LoginResponse":{"properties":{"email":{"type":"string","title":"Email"}},"type":"object","required":["email"],"title":"LoginResponse"},"MeResponse":{"properties":{"email":{"type":"string","title":"Email"},"last_login_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Login At"}},"type":"object","required":["email","last_login_at"],"title":"MeResponse"},"NoveltyAddRequest":{"properties":{"submission_id":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Submission Id"},"embedding":{"items":{"type":"number"},"type":"array","maxItems":384,"minItems":384,"title":"Embedding"},"config_hash":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Config Hash"}},"type":"object","required":["embedding"],"title":"NoveltyAddRequest"},"NoveltyCheckRequest":{"properties":{"embedding":{"items":{"type":"number"},"type":"array","maxItems":384,"minItems":384,"title":"Embedding"},"threshold":{"type":"number","title":"Threshold","default":0.92},"field_embeddings":{"anyOf":[{"additionalProperties":{"items":{"type":"number"},"type":"array","maxItems":384,"minItems":384},"type":"object","maxProperties":32},{"type":"null"}],"title":"Field Embeddings"},"pooled_threshold":{"type":"number","title":"Pooled Threshold","default":0.85},"field_threshold":{"type":"number","title":"Field Threshold","default":0.95}},"type":"object","required":["embedding"],"title":"NoveltyCheckRequest"},"NoveltyCheckResponse":{"properties":{"similarity":{"type":"number","title":"Similarity"},"novel":{"type":"boolean","title":"Novel"},"message":{"type":"string","title":"Message"},"field_scores":{"anyOf":[{"items":{"$ref":"#/components/schemas/FieldScore"},"type":"array"},{"type":"null"}],"title":"Field Scores"}},"type":"object","required":["similarity","novel","message"],"title":"NoveltyCheckResponse"},"NoveltyRemoveRequest":{"properties":{"config_hash":{"type":"string","title":"Config Hash"}},"type":"object","required":["config_hash"],"title":"NoveltyRemoveRequest"},"OnChainTransferView":{"properties":{"id":{"type":"integer","title":"Id"},"block_number":{"type":"integer","title":"Block Number"},"block_hash":{"type":"string","title":"Block Hash"},"extrinsic_index":{"type":"integer","title":"Extrinsic Index"},"sender_coldkey":{"type":"string","title":"Sender Coldkey"},"source_hotkey":{"type":"string","title":"Source Hotkey"},"destination":{"type":"string","title":"Destination"},"amount_rao":{"type":"integer","title":"Amount Rao"},"amount_alpha":{"type":"number","title":"Amount Alpha"},"netuid":{"type":"integer","title":"Netuid"},"observed_at":{"type":"string","title":"Observed At"},"credited_tx_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Credited Tx Id"},"credit_source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Credit Source"},"credited_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Credited At"}},"type":"object","required":["id","block_number","block_hash","extrinsic_index","sender_coldkey","source_hotkey","destination","amount_rao","amount_alpha","netuid","observed_at","credited_tx_id","credit_source","credited_at"],"title":"OnChainTransferView"},"PipelineStatsResponse":{"properties":{"classifier_pass_rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Classifier Pass Rate"},"simulation_success_rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Simulation Success Rate"},"novelty_rejection_rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Novelty Rejection Rate"}},"type":"object","required":["classifier_pass_rate","simulation_success_rate","novelty_rejection_rate"],"title":"PipelineStatsResponse"},"PredictRequest":{"properties":{"config":{"additionalProperties":true,"type":"object","title":"Config"},"threshold":{"type":"number","title":"Threshold","default":0.5}},"type":"object","required":["config"],"title":"PredictRequest"},"RemoteConfig":{"properties":{"polling_interval_seconds":{"type":"integer","title":"Polling Interval Seconds","default":120},"classifier_threshold":{"type":"number","title":"Classifier Threshold","default":0.5},"novelty_threshold":{"type":"number","title":"Novelty Threshold","default":0.88},"rate_limit_per_uid_per_tempo":{"type":"integer","title":"Rate Limit Per Uid Per Tempo","default":1},"work_token_cost_per_unit":{"type":"number","title":"Work Token Cost Per Unit","default":0.1},"concordia_timeout_seconds":{"type":"integer","title":"Concordia Timeout Seconds","default":600},"concordia_llm_model":{"type":"string","title":"Concordia Llm Model","default":"deepseek-chat"},"concordia_image_tag":{"type":"string","title":"Concordia Image Tag","default":"v2.0.0"},"classifier_update_interval_hours":{"type":"integer","title":"Classifier Update Interval Hours","default":6},"min_premise_length":{"type":"integer","title":"Min Premise Length","default":200},"max_premise_length":{"type":"integer","title":"Max Premise Length","default":2000},"max_agents":{"type":"integer","title":"Max Agents","default":2},"custom_archetype_threshold_bump":{"type":"number","title":"Custom Archetype Threshold Bump","default":0.1},"min_validator_version":{"type":"string","title":"Min Validator Version","default":"1.0.0"},"min_miner_version":{"type":"string","title":"Min Miner Version","default":"1.0.0"},"semantic_coherence_enabled":{"type":"boolean","title":"Semantic Coherence Enabled","default":true},"burn_mode":{"type":"boolean","title":"Burn Mode","default":true},"burn_percentage":{"type":"number","title":"Burn Percentage","default":1.0},"weight_interval":{"type":"integer","title":"Weight Interval","default":300},"query_timeout":{"type":"number","title":"Query Timeout","default":12.0},"container_pool_size":{"type":"integer","title":"Container Pool Size","default":2},"llm_model":{"type":"string","title":"Llm Model","default":"deepseek-chat"},"llm_base_url":{"type":"string","title":"Llm Base Url","default":"https://api.deepseek.com/v1"},"concordia_image_name":{"type":"string","title":"Concordia Image Name","default":"ghcr.io/aurelius-protocol/aurelius-concordia"},"concordia_image_digest":{"type":"string","title":"Concordia Image Digest","default":""},"require_image_digest":{"type":"boolean","title":"Require Image Digest","default":true},"sim_network_name":{"type":"string","title":"Sim Network Name","default":"aurelius-sim-restricted"},"sim_base_timeout":{"type":"integer","title":"Sim Base Timeout","default":600},"sim_base_ram_mb":{"type":"integer","title":"Sim Base Ram Mb","default":4096},"sim_cpu_count":{"type":"integer","title":"Sim Cpu Count","default":2},"sim_allowed_llm_hosts":{"items":{"type":"string"},"type":"array","title":"Sim Allowed Llm Hosts","default":[]},"sim_data_dir":{"type":"string","title":"Sim Data Dir","default":"/sim-data"},"sim_data_host_dir":{"type":"string","title":"Sim Data Host Dir","default":""},"max_config_size":{"type":"integer","title":"Max Config Size","default":65536},"work_id_freshness_seconds":{"type":"integer","title":"Work Id Freshness Seconds","default":300},"min_consistency_reports":{"type":"integer","title":"Min Consistency Reports","default":10},"consistency_floor":{"type":"number","title":"Consistency Floor","default":0.4},"queue_max_size":{"type":"integer","title":"Queue Max Size","default":500},"queue_max_file_size_mb":{"type":"integer","title":"Queue Max File Size Mb","default":50},"queue_max_age_seconds":{"type":"integer","title":"Queue Max Age Seconds","default":12960},"gatekeeper_prompt":{"type":"string","title":"Gatekeeper Prompt","default":""}},"type":"object","title":"RemoteConfig"},"RepairBalancesResponse":{"properties":{"repaired":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Repaired"},"unrepairable":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Unrepairable"},"dry_run":{"type":"boolean","title":"Dry Run"}},"type":"object","required":["repaired","unrepairable","dry_run"],"title":"RepairBalancesResponse"},"ReportCreate":{"properties":{"work_id":{"type":"string","title":"Work Id"},"miner_hotkey":{"type":"string","title":"Miner Hotkey"},"passed":{"type":"boolean","title":"Passed"},"failed_stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Failed Stage"},"classifier_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Classifier Score"},"miner_protocol_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Miner Protocol Version"},"validator_protocol_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Validator Protocol Version"}},"type":"object","required":["work_id","miner_hotkey","passed"],"title":"ReportCreate"},"ReportResponse":{"properties":{"status":{"type":"string","title":"Status"},"work_id":{"type":"string","title":"Work Id"}},"type":"object","required":["status","work_id"],"title":"ReportResponse"},"RevertRequest":{"properties":{"log_id":{"type":"integer","title":"Log Id"}},"type":"object","required":["log_id"],"title":"RevertRequest"},"RotateAddressRequest":{"properties":{"new_address":{"type":"string","title":"New Address"},"new_multisig_threshold":{"type":"integer","minimum":2.0,"title":"New Multisig Threshold"},"new_signatories":{"items":{"type":"string"},"type":"array","minItems":2,"title":"New Signatories"},"authorized_by":{"items":{"$ref":"#/components/schemas/RotationAuthorization"},"type":"array","minItems":2,"title":"Authorized By","description":"Keyholder authorizations: each must include a cryptographic signature"}},"type":"object","required":["new_address","new_multisig_threshold","new_signatories","authorized_by"],"title":"RotateAddressRequest"},"RotateAddressResponse":{"properties":{"success":{"type":"boolean","title":"Success"},"old_address":{"type":"string","title":"Old Address"},"new_address":{"type":"string","title":"New Address"},"message":{"type":"string","title":"Message"}},"type":"object","required":["success","old_address","new_address","message"],"title":"RotateAddressResponse"},"RotationAuthorization":{"properties":{"hotkey":{"type":"string","title":"Hotkey","description":"SS58 address of the authorizing keyholder"},"signature":{"type":"string","title":"Signature","description":"Hex-encoded signature of the rotation payload by this keyholder"}},"type":"object","required":["hotkey","signature"],"title":"RotationAuthorization"},"SkipPoisonBlockRequest":{"properties":{"block_number":{"type":"integer","minimum":0.0,"title":"Block Number","description":"The block number to skip past. Must equal cursor+1 (the block the scanner is currently stuck on); the endpoint refuses any other value to prevent accidental cursor jumps."},"confirm":{"type":"boolean","title":"Confirm","description":"Must be true. Defense against accidental skips.","default":false},"reason":{"type":"string","maxLength":500,"minLength":1,"title":"Reason","description":"Free-text reason for the skip — recorded in the audit row so post-incident review can reconstruct the operator's rationale."}},"type":"object","required":["block_number","reason"],"title":"SkipPoisonBlockRequest"},"SkipPoisonBlockResponse":{"properties":{"previous_cursor":{"type":"integer","title":"Previous Cursor"},"new_cursor":{"type":"integer","title":"New Cursor"},"skipped_block":{"type":"integer","title":"Skipped Block"},"poison_state_before":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Poison State Before"},"message":{"type":"string","title":"Message"}},"type":"object","required":["previous_cursor","new_cursor","skipped_block","poison_state_before","message"],"title":"SkipPoisonBlockResponse"},"StageRequest":{"properties":{"updates":{"additionalProperties":{"type":"string"},"type":"object","title":"Updates"}},"type":"object","required":["updates"],"title":"StageRequest"},"StageResponse":{"properties":{"change_ids":{"items":{"type":"integer"},"type":"array","title":"Change Ids"},"expires_at":{"type":"string","format":"date-time","title":"Expires At"},"critical_keys":{"items":{"type":"string"},"type":"array","title":"Critical Keys"}},"type":"object","required":["change_ids","expires_at","critical_keys"],"title":"StageResponse"},"SubmissionCreate":{"properties":{"work_id":{"type":"string","title":"Work Id"},"miner_hotkey":{"type":"string","title":"Miner Hotkey"},"scenario_config":{"additionalProperties":true,"type":"object","title":"Scenario Config"},"classifier_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Classifier Score"},"simulation_transcript":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Simulation Transcript"}},"type":"object","required":["work_id","miner_hotkey","scenario_config"],"title":"SubmissionCreate"},"SubmissionResponse":{"properties":{"id":{"type":"integer","title":"Id"},"work_id":{"type":"string","title":"Work Id"},"miner_hotkey":{"type":"string","title":"Miner Hotkey"},"status":{"type":"string","title":"Status"},"created_at":{"type":"string","title":"Created At"}},"type":"object","required":["id","work_id","miner_hotkey","status","created_at"],"title":"SubmissionResponse"},"SubmissionStatsResponse":{"properties":{"total_submissions":{"type":"integer","title":"Total Submissions"},"by_status":{"additionalProperties":{"type":"integer"},"type":"object","title":"By Status"},"by_confidence":{"additionalProperties":{"type":"integer"},"type":"object","title":"By Confidence"}},"type":"object","required":["total_submissions","by_status","by_confidence"],"title":"SubmissionStatsResponse"},"SubmissionStatus":{"type":"string","enum":["pending","validated","simulated","benchmarking","benchmarked"],"title":"SubmissionStatus"},"SyntheticBalanceResponse":{"properties":{"hotkey":{"type":"string","title":"Hotkey"},"synthetic_balance":{"type":"number","title":"Synthetic Balance"},"available_balance":{"type":"number","title":"Available Balance"},"has_balance":{"type":"boolean","title":"Has Balance"}},"type":"object","required":["hotkey","synthetic_balance","available_balance","has_balance"],"title":"SyntheticBalanceResponse"},"SyntheticCreditRequest":{"properties":{"miner_hotkey":{"type":"string","maxLength":48,"minLength":1,"title":"Miner Hotkey"},"amount":{"type":"number","maximum":1000000.0,"exclusiveMinimum":0.0,"title":"Amount"},"reason":{"type":"string","maxLength":255,"minLength":1,"title":"Reason"}},"type":"object","required":["miner_hotkey","amount","reason"],"title":"SyntheticCreditRequest"},"SyntheticCreditResponse":{"properties":{"hotkey":{"type":"string","title":"Hotkey"},"synthetic_balance_before":{"type":"number","title":"Synthetic Balance Before"},"synthetic_balance_after":{"type":"number","title":"Synthetic Balance After"},"message":{"type":"string","title":"Message"}},"type":"object","required":["hotkey","synthetic_balance_before","synthetic_balance_after","message"],"title":"SyntheticCreditResponse"},"SyntheticDebitRequest":{"properties":{"miner_hotkey":{"type":"string","maxLength":48,"minLength":1,"title":"Miner Hotkey"},"reason":{"type":"string","maxLength":255,"minLength":1,"title":"Reason"}},"type":"object","required":["miner_hotkey","reason"],"title":"SyntheticDebitRequest"},"TransparencyReportResponse":{"properties":{"total_deposited":{"type":"number","title":"Total Deposited"},"total_consumed":{"type":"number","title":"Total Consumed"},"active_miners":{"type":"integer","title":"Active Miners"},"active_validators":{"type":"integer","title":"Active Validators"},"total_submissions":{"type":"integer","title":"Total Submissions"},"benchmarked_submissions":{"type":"integer","title":"Benchmarked Submissions"},"latest_morebench_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Latest Morebench Score"},"deposit_volume_by_period":{"additionalProperties":{"type":"number"},"type":"object","title":"Deposit Volume By Period"},"designated_address":{"type":"string","title":"Designated Address"}},"type":"object","required":["total_deposited","total_consumed","active_miners","active_validators","total_submissions","benchmarked_submissions","latest_morebench_score","deposit_volume_by_period","designated_address"],"title":"TransparencyReportResponse"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"ValidatorStatsResponse":{"properties":{"active_validators":{"type":"integer","title":"Active Validators"},"total_reports":{"type":"integer","title":"Total Reports"}},"type":"object","required":["active_validators","total_reports"],"title":"ValidatorStatsResponse"},"VerifyRequest":{"properties":{"hotkey":{"type":"string","maxLength":48,"minLength":46,"title":"Hotkey"},"challenge":{"type":"string","title":"Challenge"},"signature":{"type":"string","title":"Signature"}},"type":"object","required":["hotkey","challenge","signature"],"title":"VerifyRequest"},"VerifyResponse":{"properties":{"token":{"type":"string","title":"Token"},"expires_at":{"type":"string","title":"Expires At"}},"type":"object","required":["token","expires_at"],"title":"VerifyResponse"},"VersionDistributionResponse":{"properties":{"miner_versions":{"additionalProperties":{"type":"integer"},"type":"object","title":"Miner Versions"},"validator_versions":{"additionalProperties":{"type":"integer"},"type":"object","title":"Validator Versions"},"total_reports":{"type":"integer","title":"Total Reports"}},"type":"object","required":["miner_versions","validator_versions","total_reports"],"title":"VersionDistributionResponse"},"WorkIdStatusResponse":{"properties":{"work_id":{"type":"string","title":"Work Id"},"paid":{"type":"boolean","title":"Paid"},"valid":{"type":"boolean","title":"Valid"}},"type":"object","required":["work_id","paid","valid"],"title":"WorkIdStatusResponse"}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"}}}}