The PRISM HTTP API: public challenge routes for submissions and the leaderboard, and the internal bridge, worker, and weights routes.
PRISM exposes public challenge routes and internal routes. The public routes are mounted under the /v1 prefix; the internal routes are mounted under /internal/v1 and require internal authentication.Source: src/prism_challenge/routes.py:25; src/prism_challenge/app.py:64-72; docs/api.md:1-3.
Internal routes are not for miners. Every route under /internal/v1 requires internal authentication (Authorization: Bearer <shared-token>) and is called by the master, the proxy, or the worker - never directly by a miner. They are clearly marked INTERNAL below.
Submit a two-script bundle directly to PRISM. The direct public route uses miner authentication headers (auth_required=True, resolved by authenticate_miner). In production, miner submissions usually enter through the proxy, which uses the internal bridge route instead.
{ "filename": "project.zip", "code": "<base64 zip payload>", "metadata": {}}
final_score is the challenge-computed prequential bits-per-byte score (a lower bpb yields a higher final_score). status can be pending, running, completed, failed, rejected, or held. The response also carries q_arch, q_recipe, diversity_bonus, and penalty as legacy fields retained for response-schema stability; the live scoring path populates final_score.Source: src/prism_challenge/routes.py:70-78; docs/api.md:37-61.
Returns submissions ranked by final_score for the current epoch (earliest-commit-wins on a tie, one entry per hotkey). Optional epoch_id query.Source: src/prism_challenge/routes.py:81-103.
All internal routes require Authorization: Bearer <shared-token> and are gated by authenticate_internal. They are part of the subnet integration surface, not the miner API.
Receives subnet-verified submissions forwarded by the proxy. Gated by authenticate_internal. The verified hotkey is supplied by the trusted X-Platform-Verified-Hotkey header; miner-supplied identity headers are not trusted. The body can be raw ZIP bytes or JSON matching SubmissionCreate.
Claims and processes one pending submission through the full pipeline: the static gates, the OpenRouter LLM hard gate, the forced-init re-execution, and prequential bits-per-byte scoring. Gated by authenticate_internal.Source: src/prism_challenge/app.py:64-66; docs/api.md:121-124.
The standard challenge contract route. Returns normalized, dry-run hotkey weights (one per hotkey, from that hotkey’s best final_score). Weights are never written on-chain. The handler is wired into the challenge app via get_weights_fn.Source: src/prism_challenge/app.py:44-57; src/prism_challenge/weights.py:9-31; docs/api.md:101-104.
GET /health returns challenge health metadata, and GET /version returns the challenge version, API version, SDK version, and capabilities.Source: docs/api.md:7-13.See Running PRISM for authentication configuration and deployment.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"BASE","description":"Documentation for BASE, the Bittensor subnet (netuid 100): validators run infrastructure; miners compete inside pluggable challenges.","colors":{"primary":"#d91f35","light":"#d91f35","dark":"#d91f35"},"logo":{"light":"https://mintcdn.com/base-645db1b8/dcP88DTFSAhrc5am/logo/light.svg?fit=max\u0026auto=format\u0026n=dcP88DTFSAhrc5am\u0026q=85\u0026s=65c07350752e0e50a1ddf844d0e46122","dark":"https://mintcdn.com/base-645db1b8/dcP88DTFSAhrc5am/logo/dark.svg?fit=max\u0026auto=format\u0026n=dcP88DTFSAhrc5am\u0026q=85\u0026s=f96c6d4deb8f8aa3a5aa045c63c3a124"},"favicon":"https://mintcdn.com/base-645db1b8/dcP88DTFSAhrc5am/favicon.svg?fit=max\u0026auto=format\u0026n=dcP88DTFSAhrc5am\u0026q=85\u0026s=642e0bd7f65cfe5e92dba14b6da21654","appearance":{"default":"dark"},"navbar":{"links":[{"href":"https://github.com/BaseIntelligence/base","label":"GitHub"}],"primary":{"type":"button","label":"Choose a challenge","href":"/challenges/overview"}},"footer":{"socials":{"github":"https://github.com/BaseIntelligence"}},"seo":{"metatags":{"og:type":"website","og:site_name":"BASE","og:title":"BASE Documentation","og:description":"Validators run BASE. Miners compete inside challenges on Bittensor netuid 100.","og:image":"/images/og.png","twitter:card":"summary_large_image","twitter:title":"BASE Documentation","twitter:description":"Validators run BASE. Miners compete inside challenges on Bittensor netuid 100.","twitter:image":"/images/og.png"},"indexing":"all"},"fonts":{"family":"Rethink Sans"},"styling":{"eyebrows":"breadcrumbs","codeblocks":"dark","latex":false},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"navigation":{"global":{"anchors":[{"anchor":"GitHub","icon":"github","href":"https://github.com/BaseIntelligence"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"base-645db1b8","hasAudioNarration":false,"actualSubdomain":"base-645db1b8","customDomains":["docs.joinbase.ai"],"gitSource":{"type":"github","owner":"baseintelligence","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"collectionId":"9a45fd2d-c6c2-465c-b552-1281a9163dc8","liveDeploymentHistoryId":"6a5b6cd6ae70bc6b6f1c750a","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6a5b6cd6ae70bc6b6f1c750a"},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"REMOVE_BRANDING":{"status":"ENABLED"},"CONTEXTUAL_FEEDBACK":{"status":"ENABLED"},"CODE_SNIPPET_FEEDBACK":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae95a9ff74cc9f20f50f758:success","clientVersion":"0.0.4074","searchFilterCounts":[{"language":"default","tag":"Challenges","count":28},{"language":"default","tag":"Reference","count":14},{"language":"default","tag":"Agent Challenge","count":12},{"language":"default","tag":"Overview","count":12},{"language":"default","tag":"Architecture","count":10},{"language":"default","tag":"PRISM","count":10},{"language":"default","tag":"Miner hub","count":10},{"language":"default","tag":"Validators","count":9},{"language":"default","tag":"Infrastructure","count":6},{"language":"default","tag":"Get started","count":6}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[{"filePath":"style.css","content":"/* vietnamese */\n@font-face {\n font-family: 'Space Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/spacemono/v17/i7dPIFZifjKcF5UAWdDRYE58RWq7.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Space Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/spacemono/v17/i7dPIFZifjKcF5UAWdDRYE98RWq7.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Space Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/spacemono/v17/i7dPIFZifjKcF5UAWdDRYEF8RQ.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* vietnamese */\n@font-face {\n font-family: 'Space Mono';\n font-style: normal;\n font-weight: 700;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/spacemono/v17/i7dMIFZifjKcF5UAWdDRaPpZUFqaHjyV.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Space Mono';\n font-style: normal;\n font-weight: 700;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/spacemono/v17/i7dMIFZifjKcF5UAWdDRaPpZUFuaHjyV.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Space Mono';\n font-style: normal;\n font-weight: 700;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/spacemono/v17/i7dMIFZifjKcF5UAWdDRaPpZUFWaHg.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n:root{--bi-font-mono: \"Space Mono\", ui-monospace, \"Menlo\", \"SFMono-Regular\", \"Consolas\", monospace}code,pre,kbd,samp,code-block,code-block code,code-block pre,code-group,code-group code,code-group pre{font-family:var(--bi-font-mono)}"}],"page":{"pagePath":"challenges/prism/api","slug":"/challenges/prism/api","pageMetadata":{"title":"PRISM API","description":"The PRISM HTTP API: public challenge routes for submissions and the leaderboard, and the internal bridge, worker, and weights routes.","icon":"code-branch","href":"/challenges/prism/api"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"The PRISM HTTP API: public challenge routes for submissions and the leaderboard, and the internal bridge, worker, and weights routes.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,em:`em`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,..._provideComponents(),...props.components},{CodeBlock,Heading,Tip}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`PRISM exposes `,_jsx(_components.strong,{children:`public`}),` challenge routes and `,_jsx(_components.strong,{children:`internal`}),` routes. The public routes are mounted under the `,_jsx(_components.code,{children:`/v1`}),` prefix; the internal routes are mounted under `,_jsx(_components.code,{children:`/internal/v1`}),` and require internal authentication.`]}),`\n`,_jsx(_components.p,{children:_jsxs(_components.em,{children:[`Source: `,_jsx(_components.code,{children:`src/prism_challenge/routes.py:25`}),`; `,_jsx(_components.code,{children:`src/prism_challenge/app.py:64-72`}),`; `,_jsx(_components.code,{children:`docs/api.md:1-3`}),`.`]})}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Internal routes are not for miners.`}),` Every route under `,_jsx(_components.code,{children:`/internal/v1`}),` requires internal authentication (`,_jsx(_components.code,{children:`Authorization: Bearer \u003cshared-token>`}),`) and is called by the master, the proxy, or the worker - never directly by a miner. They are clearly marked `,_jsx(_components.strong,{children:`INTERNAL`}),` below.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`public-routes`,children:`Public routes`}),`\n`,_jsx(Heading,{level:`3`,id:`post-/v1/submissions`,children:_jsx(_components.code,{children:`POST /v1/submissions`})}),`\n`,_jsxs(_components.p,{children:[`Submit a two-script bundle directly to PRISM. The direct public route uses miner authentication headers (`,_jsx(_components.code,{children:`auth_required=True`}),`, resolved by `,_jsx(_components.code,{children:`authenticate_miner`}),`). In production, miner submissions usually enter through the proxy, which uses the internal bridge route instead.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`5`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`5`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"filename\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"project.zip\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"code\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"\u003cbase64 zip payload>\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"metadata\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: {}`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(_components.p,{children:_jsxs(_components.em,{children:[`Source: `,_jsx(_components.code,{children:`src/prism_challenge/routes.py:32-52`}),`; `,_jsx(_components.code,{children:`docs/api.md:15-31`}),`.`]})}),`\n`,_jsx(Heading,{level:`3`,id:`get-/v1/submissions/history`,children:_jsx(_components.code,{children:`GET /v1/submissions/history`})}),`\n`,_jsxs(_components.p,{children:[`Returns daily submission counts over a window (`,_jsx(_components.code,{children:`days`}),`, default 90).`]}),`\n`,_jsx(_components.p,{children:_jsxs(_components.em,{children:[`Source: `,_jsx(_components.code,{children:`src/prism_challenge/routes.py:55-67`}),`.`]})}),`\n`,_jsx(Heading,{level:`3`,id:`get-/v1/submissions/submission_id`,children:_jsx(_components.code,{children:`GET /v1/submissions/{submission_id}`})}),`\n`,_jsx(_components.p,{children:`Returns status and score fields:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`11`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`11`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"id\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"...\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"hotkey\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"...\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"epoch_id\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`123`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"status\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"completed\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"code_hash\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"...\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"created_at\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"...\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"error\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`null`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"final_score\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`0.72`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"anti_cheat_multiplier\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`1.0`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`final_score`}),` is the challenge-computed prequential bits-per-byte score (a lower bpb yields a higher `,_jsx(_components.code,{children:`final_score`}),`). `,_jsx(_components.code,{children:`status`}),` can be `,_jsx(_components.code,{children:`pending`}),`, `,_jsx(_components.code,{children:`running`}),`, `,_jsx(_components.code,{children:`completed`}),`, `,_jsx(_components.code,{children:`failed`}),`, `,_jsx(_components.code,{children:`rejected`}),`, or `,_jsx(_components.code,{children:`held`}),`. The response also carries `,_jsx(_components.code,{children:`q_arch`}),`, `,_jsx(_components.code,{children:`q_recipe`}),`, `,_jsx(_components.code,{children:`diversity_bonus`}),`, and `,_jsx(_components.code,{children:`penalty`}),` as `,_jsx(_components.strong,{children:`legacy fields`}),` retained for response-schema stability; the live scoring path populates `,_jsx(_components.code,{children:`final_score`}),`.`]}),`\n`,_jsx(_components.p,{children:_jsxs(_components.em,{children:[`Source: `,_jsx(_components.code,{children:`src/prism_challenge/routes.py:70-78`}),`; `,_jsx(_components.code,{children:`docs/api.md:37-61`}),`.`]})}),`\n`,_jsx(Heading,{level:`3`,id:`get-/v1/leaderboard`,children:_jsx(_components.code,{children:`GET /v1/leaderboard`})}),`\n`,_jsxs(_components.p,{children:[`Returns submissions ranked by `,_jsx(_components.code,{children:`final_score`}),` for the current epoch (earliest-commit-wins on a tie, one entry per hotkey). Optional `,_jsx(_components.code,{children:`epoch_id`}),` query.`]}),`\n`,_jsx(_components.p,{children:_jsxs(_components.em,{children:[`Source: `,_jsx(_components.code,{children:`src/prism_challenge/routes.py:81-103`}),`.`]})}),`\n`,_jsx(Heading,{level:`3`,id:`get-/v1/architectures`,children:_jsx(_components.code,{children:`GET /v1/architectures`})}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Legacy`}),` family-listing endpoint retained for API compatibility (`,_jsx(_components.code,{children:`limit`}),`, default 50).`]}),`\n`,_jsx(_components.p,{children:_jsxs(_components.em,{children:[`Source: `,_jsx(_components.code,{children:`src/prism_challenge/routes.py:106-123`}),`; `,_jsx(_components.code,{children:`docs/api.md:68-70`}),`.`]})}),`\n`,_jsx(Heading,{level:`3`,id:`get-/v1/training-variants`,children:_jsx(_components.code,{children:`GET /v1/training-variants`})}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Legacy`}),` variant-listing endpoint retained for API compatibility. Optional query parameters: `,_jsx(_components.code,{children:`architecture_id`}),`, `,_jsx(_components.code,{children:`limit`}),`.`]}),`\n`,_jsx(_components.p,{children:_jsxs(_components.em,{children:[`Source: `,_jsx(_components.code,{children:`src/prism_challenge/routes.py:126-151`}),`; `,_jsx(_components.code,{children:`docs/api.md:72-75`}),`.`]})}),`\n`,_jsxs(Heading,{level:`3`,id:`get-/v1/epochs/current-and-get-/v1/epochs`,children:[_jsx(_components.code,{children:`GET /v1/epochs/current`}),` and `,_jsx(_components.code,{children:`GET /v1/epochs`})]}),`\n`,_jsxs(_components.p,{children:[`Return the current epoch id and length, and recent epochs (`,_jsx(_components.code,{children:`limit`}),`, default 50).`]}),`\n`,_jsx(_components.p,{children:_jsxs(_components.em,{children:[`Source: `,_jsx(_components.code,{children:`src/prism_challenge/routes.py:154-175`}),`.`]})}),`\n`,_jsx(Heading,{level:`3`,id:`get-/v1/health/eval-jobs`,children:_jsx(_components.code,{children:`GET /v1/health/eval-jobs`})}),`\n`,_jsx(_components.p,{children:`Returns recent eval-job health entries (id, submission id, level, status, attempts).`}),`\n`,_jsx(_components.p,{children:_jsxs(_components.em,{children:[`Source: `,_jsx(_components.code,{children:`src/prism_challenge/routes.py:178-195`}),`.`]})}),`\n`,_jsx(Heading,{level:`3`,id:`get-/v1/gpu/status`,children:_jsx(_components.code,{children:`GET /v1/gpu/status`})}),`\n`,_jsx(_components.p,{children:`Returns a GPU-lease summary (total GPUs, active leases, by status, by tier).`}),`\n`,_jsx(_components.p,{children:_jsxs(_components.em,{children:[`Source: `,_jsx(_components.code,{children:`src/prism_challenge/routes.py:198-219`}),`.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`internal-routes`,children:`Internal routes`}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`All internal routes require `,_jsx(_components.code,{children:`Authorization: Bearer \u003cshared-token>`}),` and are gated by `,_jsx(_components.code,{children:`authenticate_internal`}),`. They are part of the subnet integration surface, `,_jsx(_components.strong,{children:`not`}),` the miner API.`]})}),`\n`,_jsxs(Heading,{level:`3`,id:`post-/internal/v1/bridge/submissions-internal`,children:[_jsx(_components.code,{children:`POST /internal/v1/bridge/submissions`}),` - INTERNAL`]}),`\n`,_jsxs(_components.p,{children:[`Receives subnet-verified submissions forwarded by the proxy. Gated by `,_jsx(_components.code,{children:`authenticate_internal`}),`. The verified hotkey is supplied by the trusted `,_jsx(_components.code,{children:`X-Platform-Verified-Hotkey`}),` header; miner-supplied identity headers are not trusted. The body can be raw ZIP bytes or JSON matching `,_jsx(_components.code,{children:`SubmissionCreate`}),`.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`5`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`5`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Authorization: Bearer \u003cshared-token>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`X-Platform-Verified-Hotkey: \u003chotkey>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`X-Submission-Filename: project.zip`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Content-Type: application/zip`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(_components.p,{children:_jsxs(_components.em,{children:[`Source: `,_jsx(_components.code,{children:`src/prism_challenge/app.py:68-86`}),`; `,_jsx(_components.code,{children:`_bridge_submission_create`}),` `,_jsx(_components.code,{children:`app.py:91-107`}),`; `,_jsx(_components.code,{children:`docs/api.md:106-119`}),`.`]})}),`\n`,_jsxs(Heading,{level:`3`,id:`post-/internal/v1/worker/process-next-internal`,children:[_jsx(_components.code,{children:`POST /internal/v1/worker/process-next`}),` - INTERNAL`]}),`\n`,_jsxs(_components.p,{children:[`Claims and processes one pending submission through the full pipeline: the static gates, the OpenRouter LLM hard gate, the forced-init re-execution, and prequential bits-per-byte scoring. Gated by `,_jsx(_components.code,{children:`authenticate_internal`}),`.`]}),`\n`,_jsx(_components.p,{children:_jsxs(_components.em,{children:[`Source: `,_jsx(_components.code,{children:`src/prism_challenge/app.py:64-66`}),`; `,_jsx(_components.code,{children:`docs/api.md:121-124`}),`.`]})}),`\n`,_jsxs(Heading,{level:`3`,id:`get-/internal/v1/get_weights-internal`,children:[_jsx(_components.code,{children:`GET /internal/v1/get_weights`}),` - INTERNAL`]}),`\n`,_jsxs(_components.p,{children:[`The standard challenge contract route. Returns normalized, dry-run hotkey weights (one per hotkey, from that hotkey’s best `,_jsx(_components.code,{children:`final_score`}),`). Weights are never written on-chain. The handler is wired into the challenge app via `,_jsx(_components.code,{children:`get_weights_fn`}),`.`]}),`\n`,_jsx(_components.p,{children:_jsxs(_components.em,{children:[`Source: `,_jsx(_components.code,{children:`src/prism_challenge/app.py:44-57`}),`; `,_jsx(_components.code,{children:`src/prism_challenge/weights.py:9-31`}),`; `,_jsx(_components.code,{children:`docs/api.md:101-104`}),`.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`service-routes`,children:`Service routes`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`GET /health`}),` returns challenge health metadata, and `,_jsx(_components.code,{children:`GET /version`}),` returns the challenge version, API version, SDK version, and capabilities.`]}),`\n`,_jsx(_components.p,{children:_jsxs(_components.em,{children:[`Source: `,_jsx(_components.code,{children:`docs/api.md:7-13`}),`.`]})}),`\n`,_jsxs(_components.p,{children:[`See `,_jsx(_components.a,{href:`/challenges/prism/operators`,children:`Running PRISM`}),` for authentication configuration and deployment.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"codeStyling":"dark","config":{},"pageMetadata":{"title":"PRISM API","description":"The PRISM HTTP API: public challenge routes for submissions and the leaderboard, and the internal bridge, worker, and weights routes.","icon":"code-branch","href":"/challenges/prism/api"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Public routes","slug":"public-routes","depth":2,"children":[{"title":"POST /v1/submissions","slug":"post-/v1/submissions","depth":3,"children":[]},{"title":"GET /v1/submissions/history","slug":"get-/v1/submissions/history","depth":3,"children":[]},{"title":"GET /v1/submissions/{submission_id}","slug":"get-/v1/submissions/submission_id","depth":3,"children":[]},{"title":"GET /v1/leaderboard","slug":"get-/v1/leaderboard","depth":3,"children":[]},{"title":"GET /v1/architectures","slug":"get-/v1/architectures","depth":3,"children":[]},{"title":"GET /v1/training-variants","slug":"get-/v1/training-variants","depth":3,"children":[]},{"title":"GET /v1/epochs/current and GET /v1/epochs","slug":"get-/v1/epochs/current-and-get-/v1/epochs","depth":3,"children":[]},{"title":"GET /v1/health/eval-jobs","slug":"get-/v1/health/eval-jobs","depth":3,"children":[]},{"title":"GET /v1/gpu/status","slug":"get-/v1/gpu/status","depth":3,"children":[]}]},{"title":"Internal routes","slug":"internal-routes","depth":2,"children":[{"title":"POST /internal/v1/bridge/submissions - INTERNAL","slug":"post-/internal/v1/bridge/submissions-internal","depth":3,"children":[]},{"title":"POST /internal/v1/worker/process-next - INTERNAL","slug":"post-/internal/v1/worker/process-next-internal","depth":3,"children":[]},{"title":"GET /internal/v1/get_weights - INTERNAL","slug":"get-/internal/v1/get_weights-internal","depth":3,"children":[]}]},{"title":"Service routes","slug":"service-routes","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"base-645db1b8","siteName":"BASE","title":"BASE Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-07-18T12:09:09.729Z","originalFileLocation":"challenges/prism/api.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"dark\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"The PRISM HTTP API: public challenge routes for submissions and the leaderboard, and the internal bridge, worker, and weights routes.\">\u003cmeta data-mint-head name=\"application-name\" content=\"BASE\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/base-645db1b8/nVfuJBQcLPmN-tbx/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/base-645db1b8/nVfuJBQcLPmN-tbx/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/base-645db1b8/nVfuJBQcLPmN-tbx/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/base-645db1b8/nVfuJBQcLPmN-tbx/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/base-645db1b8/nVfuJBQcLPmN-tbx/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/base-645db1b8/nVfuJBQcLPmN-tbx/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/base-645db1b8/nVfuJBQcLPmN-tbx/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/base-645db1b8/nVfuJBQcLPmN-tbx/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/base-645db1b8/nVfuJBQcLPmN-tbx/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"BASE Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Validators run BASE. Miners compete inside challenges on Bittensor netuid 100.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"BASE\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.joinbase.ai/challenges/prism/api\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://base-645db1b8.mintlify.site/images/og.png\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"BASE Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Validators run BASE. Miners compete inside challenges on Bittensor netuid 100.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://base-645db1b8.mintlify.site/images/og.png\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/base-645db1b8/nVfuJBQcLPmN-tbx/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"BASE\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#d91f35\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.joinbase.ai/challenges/prism/api\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/challenges/prism/api.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.joinbase.ai/#organization\",\"name\":\"BASE\",\"url\":\"https://docs.joinbase.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/base-645db1b8/dcP88DTFSAhrc5am/logo/light.svg?fit=max\u0026auto=format\u0026n=dcP88DTFSAhrc5am\u0026q=85\u0026s=65c07350752e0e50a1ddf844d0e46122\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.joinbase.ai#website\",\"name\":\"BASE\",\"url\":\"https://docs.joinbase.ai\",\"publisher\":{\"@id\":\"https://docs.joinbase.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.joinbase.ai/challenges/prism/api#webpage\",\"url\":\"https://docs.joinbase.ai/challenges/prism/api\",\"name\":\"PRISM API\",\"description\":\"The PRISM HTTP API: public challenge routes for submissions and the leaderboard, and the internal bridge, worker, and weights routes.\",\"dateModified\":\"2026-07-18T12:09:09.729Z\",\"isPartOf\":{\"@id\":\"https://docs.joinbase.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.joinbase.ai/challenges/prism/api#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.joinbase.ai/challenges/prism/api#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"PRISM\",\"item\":\"https://docs.joinbase.ai/challenges/prism/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"PRISM API\",\"item\":\"https://docs.joinbase.ai/challenges/prism/api\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.joinbase.ai/challenges/prism/api#article\",\"headline\":\"PRISM API\",\"name\":\"PRISM API\",\"description\":\"The PRISM HTTP API: public challenge routes for submissions and the leaderboard, and the internal bridge, worker, and weights routes.\",\"url\":\"https://docs.joinbase.ai/challenges/prism/api\",\"mainEntityOfPage\":{\"@id\":\"https://docs.joinbase.ai/challenges/prism/api#webpage\"},\"image\":\"https://docs.joinbase.ai/images/og.png\",\"dateModified\":\"2026-07-18T12:09:09.729Z\",\"publisher\":{\"@id\":\"https://docs.joinbase.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.joinbase.ai#website\"}}]}\u003c/script>","siteName":"BASE","nav":{"global":{"anchors":[{"anchor":"GitHub","icon":"github","href":"https://github.com/BaseIntelligence"}]},"tabs":[{"tab":"Overview","icon":"book-open","pages":[{"title":"Overview","href":""}]},{"tab":"Validators","icon":"shield-halved","pages":[{"title":"Validators","href":"/validators/overview"}]},{"tab":"Challenges","icon":"trophy","groups":[{"group":"Overview","pages":[{"title":"Challenges on BASE","href":"/challenges/overview"}]},{"group":"Agent Challenge","pages":[{"title":"Agent Challenge","href":"/challenges/agent-challenge/index"},{"title":"Agent Challenge quickstart","href":"/challenges/agent-challenge/quickstart"},{"title":"Submit an agent","href":"/challenges/agent-challenge/submit"},{"title":"Phala TDX attestation","href":"/challenges/agent-challenge/attestation-phala"},{"title":"Evaluation and scoring","href":"/challenges/agent-challenge/evaluation"},{"title":"RA-TLS golden key release","href":"/challenges/agent-challenge/key-release"},{"title":"Agent Challenge troubleshooting","href":"/challenges/agent-challenge/troubleshooting"},{"title":"baseagent template","href":"/challenges/agent-challenge/baseagent"},{"title":"Agent architecture","icon":"sitemap","href":"/challenges/agent-challenge/architecture"},{"title":"Agent configuration","href":"/challenges/agent-challenge/configuration"},{"title":"Tools \u0026 capabilities","icon":"screwdriver-wrench","href":"/challenges/agent-challenge/tools"},{"title":"Best practices","href":"/challenges/agent-challenge/best-practices"}]},{"group":"PRISM","pages":[{"title":"PRISM overview","icon":"microscope","href":"/challenges/prism/overview"},{"title":"PRISM quickstart","icon":"rocket","href":"/challenges/prism/quickstart"},{"title":"How PRISM works","icon":"gears","href":"/challenges/prism/how-it-works"},{"title":"Submitting to PRISM","icon":"upload","href":"/challenges/prism/submit"},{"title":"Providing context","icon":"cube","href":"/challenges/prism/context"},{"title":"Scoring","icon":"chart-line","href":"/challenges/prism/scoring"},{"title":"Constraints \u0026 limits","icon":"shield","href":"/challenges/prism/constraints"},{"title":"Examples","description":"A complete, runnable two-script PRISM bundle: the tiny ~1M-parameter example with architecture.py, training.py, and prism.yaml.","icon":"code","href":"/challenges/prism/examples"},{"title":"PRISM API","icon":"code-branch","href":"/challenges/prism/api"},{"title":"PRISM challenge operators","description":"Challenge-operator guide for PRISM (not BASE subnet validator mint): local validation, runtime config, data plane, compute budget, LLM gate.","icon":"server","href":"/challenges/prism/operators"}]},{"group":"Additional challenges","pages":[{"title":"Bounty Challenge","href":"/challenges/bounty-challenge"},{"title":"Data Fabrication Challenge","href":"/challenges/data-fabrication"},{"title":"Agent SWE Challenge","href":"/challenges/agent-swe"}]},{"group":"Build a challenge","pages":[{"title":"Creating a challenge","href":"/challenges/creating"},{"title":"Challenge SDK","href":"/challenges/sdk"}]}]},{"tab":"Miner hub","icon":"microchip","pages":[{"title":"Miner hub","href":"/miners/overview"}]},{"tab":"Reference","icon":"code","pages":[{"title":"Reference","href":"/reference/cli"}]},{"tab":"Architecture","icon":"sitemap","pages":[{"title":"Architecture","href":"/architecture/overview"}]}]},"basePath":"","title":"BASE Documentation","buildId":"dpl_BLQvU86QFwq3AhPofSTw6q8dGWKm","deploymentId":"dpl_BLQvU86QFwq3AhPofSTw6q8dGWKm","dynamics":[],"chunks":[]}