Grade a delivery
taifoon_gradeGrades work with calibrated answers on your own TypeSafe key, and reads the judge's decisions. For proving a chain fact use taifoon_prove. Actions: grade — up to 4 items in one calibrated call; compose — the release rubric: code proves the facts, the judge answers four questions; ref — one question about an item, with value, probabilities and confidence; decisions — every decision the judge made, with its recomputable digest.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | one decision id, for its full record and calldata (actions: decisions) | |
| kind | No | kind (actions: decisions) | |
| mode | No | mode (actions: compose) | |
| olas | No | olas (actions: compose) | |
| items | No | items (actions: grade) | |
| limit | No | limit (actions: decisions) | |
| model | No | model (actions: compose) | |
| state | No | state (actions: compose, ref) | |
| action | No | what to do (default grade): grade | compose | ref | decisions | grade |
| job_id | No | job id (actions: compose) | |
| record | No | where the decision and its answers are also written on chain: none (default: receipt and digests only), devnet (free), base, or the name or chain id of any live network, or a list of them; GET /v1/judge/record/networks lists the live networks with the price of a record now. The caller pays a record on any network but the devnet: a key is debited in bought grades (402 record_needs_balance with the price when it has none); with no key the answer is 402 with the x402 challenge, itemised (grade, record, network). A network that is not live answers 400 record_network_not_live with the live ones (actions: compose) | |
| answers | No | mode answers: id → { value, confidence, probabilities } for each of the four questions prepare returned (actions: compose) | |
| api_key | No | api key (actions: grade, compose, ref) | |
| options | No | options (actions: grade, ref) | |
| trading | No | a trading epoch to grade: { mandate: { markets[], venues[], period { from, to }, max_order_size, max_notional, max_position, allow_short?, kind?, owner?, attribution? }, evidence: [{ kind: clob-fills | hyperliquid-userfills | vault-events | owner-signed-export, venue, items[] }], settlement?, stepper?, submitted? }; code runs the class checks (each kind's reader verifies what it can), then Jev answers over those facts (actions: compose) | |
| chain_id | No | chain id (actions: compose) | |
| question | No | question (actions: grade, ref) | |
| price_usdc | No | price usdc (actions: compose) | |
| answered_by | No | answered by (actions: compose) | |
| execution_id | No | execution id (actions: compose) | |
| handshake_id | No | handshake id (actions: compose) | |
| typesafe_key | No | typesafe key (actions: grade, compose, ref) | |
| prepare_digest | No | prepare digest (actions: compose) |