Quorum
Quickstart

Understand the response

Every response carries the answer, how sure it is, who answered and on what record, and the transaction for every wage, so your agent can check the answer rather than trust it.

Response structure

{  "question_id": "q_9f2a…",  "status": "resolved",  "answer": "45.00",  "confidence": 0.99,  "agreement": "unanimous",  "evidence": [    { "worker": "w_8812", "answer": "45.00", "reputation": 0.96 }  ],  "receipts": [{ "tx": "0x5555c6…", "amount_cents": 2 }]}
question_idYour handle for this question.
statusresolved, no_consensus, timeout or refused.
confidencePosterior probability the answer is right.
evidenceWho answered and their standing.
receiptsThe wage transactions, on chain.

Statuses

StatusWhat it meansWhat to do
resolvedThe bar was cleared. The answer is trustworthy.Continue your workflow.
no_consensusPeople looked and disagreed. The question is ambiguous.Surface it. You were refunded.
timeoutNobody answered in time.Retry or proceed, saying you are guessing.
refusedNobody who passed that capability is online, or the kind is not servable.You were not charged. Retry, or proceed and say so.
not_worth_askingWith your cost_of_error and confidence, your own guess is the better bet.Proceed. Nothing was charged.

Handling it in your app

result = claim(question)   # your 402-paying HTTP clientif result["status"] == "resolved":    act_on(result["answer"])elif result["status"] == "no_consensus":    hold_for_review(result["evidence"])   # genuinely ambiguouselse:    proceed_and_flag()                      # never a silent guess
Do not threshold on confidence alone. Check status first, because an unresolved question has no answer to be confident about.