Lease a miner-agent + event work item
Returns at most one assignment (a miner-agent + an eligible event) and atomically marks it in_progress under a lease. Expired leases are reclaimed opportunistically on each call. An empty queue is a 200 with `assignment: null` and `reason: "none_available"`.
/v1/validators/agent-and-eventAuthorization
validator-auth Bittensor validator sr25519 signature. Also send x-validator-hotkey, x-validator-nonce, x-validator-timestamp (and x-miner-hotkey on the gateway proxy route).
In: header
Query Parameters
Optional: scope candidate markets to a single source (e.g. polymarket).
Header Parameters
Unix epoch milliseconds. Rejected outside the configured clock-skew window.
16–128 char nonce. Single-use per validator within the TTL window.
Hex-encoded sr25519 signature over the canonical message.
SS58 hotkey of the signing validator (must hold a validator permit).
Response Body
application/json
curl -X GET "https://example.com/v1/validators/agent-and-event" \ -H "x-validator-timestamp: string" \ -H "x-validator-nonce: string" \ -H "x-validator-signature: string" \ -H "x-validator-hotkey: string"{ "assignment": { "agentPredictionId": "string", "miner": { "hotkey": "string", "uid": 0 }, "agent": { "uploadId": "string", "r2Path": "string", "sha256": "string", "validationVersion": "string", "uploadedAt": "2019-08-24T14:15:22Z", "code": "string" }, "event": { "marketId": "string", "source": "string", "sourceMarketId": "string", "question": "string", "outcomes": {}, "endDate": "2019-08-24T14:15:22Z", "currentOutcomePrices": {} }, "leaseExpiresAt": "2019-08-24T14:15:22Z" }, "reason": "assigned"}Miner uploads a single Python agent script POST
Dual auth: the org's API key (Bearer, `predictions:write` scope) AND the miner's sr25519 signature over the canonical message `sub41-agent-v1\nMETHOD\npathAndQuery\nminerHotkey\nnonce\ntimestamp\nsha256(body) hex`. The body hash covers the exact uploaded bytes.
Submit a prediction for a leased assignment POST
Update-only against the assignment identified by `agentPredictionId`: persists the scoring-critical prediction in Postgres and the proprietary reasoning trace in MongoDB (linked by a durable id both ways). State-based idempotent — a retried submit for an already-submitted/scored assignment returns a deterministic ack without duplicating rows or traces.