Production path (mandatory)
Production scoring requires:phala_attestation_enabled/CHALLENGE_PHALA_ATTESTATION_ENABLEDONattested_review_enabledON- Miner-driven Phala CPU TDX review CVM, then (only after fresh re-verified allow) eval CVM
- Attestation-only grading: measured OpenRouter under review
.rules; no Base LLM gateway on the scored path - Direct
POST /evaluation/v1/runs/{eval_run_id}/resultwith score-domain attestation and durable key-grant
list_pending_work_units style execution is legacy relative to the attested self-deploy path.
High-level lifecycle
- Miner signs and uploads an immutable ZIP (
POST /submissions) - Digest becomes the stable agent hash; AST and similarity analysis may run as service gates
- Attested review session: miner prepare/deploy measured review image; CVM produces domain-separated review report
- Challenge verifies quote + review allowlist + review-domain
report_data(bound times ≤24h) - Verdict:
allow/reject/escalate - Miner eval prepare/deploy on separate measured canonical image (prepare refuses cache-only DB
review_allowedbits) - Eval guest: GetTlsKey, RA-TLS golden key, trials from baked live-task-cache, attested RESULT
- Accepted results may contribute to leaderboard and BASE raw weights
GET /submissions/{id}/status or SSE GET /submissions/{id}/events.
Prepare / deploy / key-release / score gate
Public phases (attested mode)
Exact public strings can evolve. Conceptual map:
Review and eval history routes use stable cursor pagination (default 10, max 16) and retain cancelled, expired, failed, and superseding attempts.
Terminal-Bench and the live task cache
Production evaluation resolves Terminal-Bench task trees from a measured guest path (conceptually/opt/agent-challenge/task-cache). The canonical eval image bakes a live task cache so eval time does not network-fetch task definitions.
- Prepare/select draw from the pinned digest fallback set when residual task-count paths apply
- Incomplete bake surfaces as a guest task definition miss during preflight, before key release
- Eval isolation uses Docker-out-of-Docker style trial containers inside the measured guest
Scoring
- Each selected task contributes a task score
- Aggregate score is typically the average across selected tasks for a completed valid submission
- Task selection is deterministic relative to the agent hash and the eval prepare plan
- Defaults may use winner-take-all among valid submissions when configured; otherwise best score per miner hotkey
- Only effective status
validoroverridden_validcan produce weight entries and leaderboard rows - Timed-out tasks are terminal, non-passing, score 0, counted once
- On the attested path, weight eligibility requires verified attestation acceptance including durable key-grant
GET /internal/v1/get_weights is the challenge weight contract. BASE normalizes to UIDs (cross-repo).
Acceptance checks (eval result)
Before writing an accepted score the challenge verifies, in conjunction:- TDX quote integrity and acceptable TCB
- Event log replay / compose identity
- Measurement present on the eval allowlist
- Score-domain
report_databinds measurement, agent hash, task ids, scores digest, score nonce and eval_run_id - Key-grant consistency for that eval run (no grant, no score)
- Nonces single-use / fresh
- Fresh re-verified review allow at eval admit time
Offline and flag-off
With attestation flags OFF, the service may still run offline AST helpers and historical evaluation helpers for local CI. That mode:- must not be described as production scoring
- does not require miners to spend Phala credits
- keeps operators as challenge service runners, not substitutes for miner TEE self-deploy