API Reference
Comprehensive reference for the Minotaur validator HTTP API exposed at api.minotaursubnet.com — base URL, authentication model, and the full /v1 surface organised by router.
The Minotaur validator exposes a versioned HTTP API at https://api.minotaursubnet.com. All product endpoints sit under the /v1 prefix. The OpenAPI schema is not served publicly in production (openapi_url=None on the FastAPI app); this reference is generated directly from the route source in minotaur_subnet/api/routes/*.py so it can’t silently drift.
Base URL & CORS
| Property | Value |
|---|---|
| Production base | https://api.minotaursubnet.com |
| Version prefix | /v1 |
CORS Access-Control-Allow-Origin | https://app.minotaursubnet.com (preflight allows GET, POST, PUT, PATCH, DELETE, OPTIONS) |
| Health check | GET /health (no prefix) |
Authentication
Most endpoints are unauthenticated and rely on EIP-712 signatures for binding operations:
- Order signing: a wallet signs the
IntentOrdertyped-data (domain.name = "MinotaurAppIntent",version = "1",verifyingContract = <app>). The server recovers the signer with_signature_verify.pyand compares it tosubmitted_by. Thenoncefield uses the sentinel value2^256-1to skip on-chain nonce verification. - Solver-round / champion-consensus: validator-to-validator messages carry an
EIP-191signature over a canonical message payload; only addresses in the on-chainValidatorRegistryare accepted. - Submissions: miner solver submissions require a wallet signature over the submission payload (commit hash + manifest).
- App management: create / deploy / lifecycle / registry actions use an EIP-712 wallet-signature model that retires the shared admin key. Auth travels in headers (
X-App-Auth-Signer,X-App-Auth-Signature,X-App-Auth-Nonce,X-App-Auth-Deadline); allowed signers are the appdeployerplusAPP_ADMIN_SIGNERS. Deploy can alternatively be authorized by the once-per-app WTAO deploy-fee payment. Create acceptsX-Admin-Keyor a self-serveowner_signature.
Endpoints that do not require a signature: read-only listings (GET /v1/orders, GET /v1/apps, GET /v1/chains/..., GET /v1/blockloop/status, GET /health).
Routers
- Apps — 26 endpoints
- Chains & Tokens — 1 endpoints
- Orders — 12 endpoints
- Wallets — 5 endpoints
- Monitoring — 3 endpoints
- Native Bittensor — 10 endpoints
- Identity — 1 endpoints
- Submissions — 3 endpoints
- Solver Round — 18 endpoints
Notes
- OpenAPI is disabled in production for the API surface area. To regenerate this reference, re-run
apps/docs/scripts/sync_from_subnet.pyagainst the latestminotaur_subnet/api/routes/. - Versioning: the API is at
v0.2.0(perFastAPI(title="Minotaur App Intents API", version="0.2.0")). - Errors follow FastAPI’s default shape:
{"detail": "..."}for 4xx/5xx, with status codes per RFC 9110.