Reference
Statuses
status is the field to read in every reply. In the scoped format (X-Verify-Result-Contract: scoped/1) the same value is also in verdict, with final: true.
| Status | Check | Meaning | What to do |
|---|---|---|---|
Quick_OK |
Quick | The CPU checks passed: proof-of-work, header, parameter bounds, token sequence. | Accept at the Quick level. |
Quick_Fail |
Quick | A CPU check failed. | Reject. |
Quick_OK_Smell_OK |
Quick-Smell | CPU checks and the token-statistics test passed. | Accept at the Quick-Smell level. |
Quick_OK_Smell_Fail |
Quick-Smell | CPU checks passed; the token statistics do not look like the model's. | Reject, or escalate to Full. |
Quick_Fail_Smell_OK |
Quick-Smell | A CPU check failed. | Reject. |
Quick_Fail_Smell_Fail |
Quick-Smell | Both failed. | Reject. |
Full_Green |
Full | The model replay matches the proof and every lower check passed. | Pay the share; apply the block. |
Full_Amber |
Full | The check completed but could not decide; the reply carries details. |
Pools: your policy. Nodes: the node's own rules for Amber. |
Full_Red |
Full | The proof failed somewhere on the ladder, or (shares) the header hash missed the share target (target_override_met: false). |
Reject. |
pending |
any | Not finished. state says where it is: accepted (taken), queued (waiting for a worker), running, or needs_reverify (the last attempt produced no verdict; the service retries). |
Poll again after Retry-After / retry_after_seconds. |
refused |
any | Scoped format: the request could not be queued (error says why, for instance context_required). HTTP 400. |
Fix the request and resubmit. |
rejected |
any | Scoped format: the request names a different network (outcome.code CONTEXT_MISMATCH). HTTP 409. |
Not retryable. |
unknown |
any | Scoped lookup: no result and no job for that scope_key. HTTP 404. |
Submit again. |
A Quick status read can be answered by a stored Full_Green for the same block (reported as Quick_OK or Quick_OK_Smell_OK), since a Full pass implies the CPU checks. A Full_Red or Full_Amber is never mapped to a Quick status.
Other fields you may see
assurance ("trusted" or "unsampled") appears on Full results. trusted means the verdict was double-checked; unsampled means it was not.
corrections: GET /v1/corrections lists verdicts that were later changed, with the original and corrected status. A client that stores Full verdicts can poll it and update its records.
| Field | Meaning |
|---|---|
cached |
Served from an existing result rather than a new run; always true on a poll. In the scoped format it is execution.cached. |
elapsed_ms |
Run time of the verification that produced the result. |
details |
Failure or Amber details, when available. |
target_override_applied |
The result was computed under the share target you sent. Shares only. |
computed_header_hash |
The candidate's chain header hash (hex). Shares only. |
corrected, original_status |
The verdict was changed after publication; status is the current one. |
Updated 2026-10-07