ruling_version() == 1. An RPC error or an unavailable version method is not a supported capability.
Read a case
These reads return contract errors when required state is unavailable or incompatible. Only a successful
objection_id result of None means there is no standing objection. last_objection_decision can refer to an earlier claim; read the saved decision before displaying its parties or outcome.
Pass the top-level label as bytes, such as UTF-8 yourbrand, rather than its namespace hash. Case IDs are exact 32-byte values; keep them distinct from the label hash and transaction hash.
bond_credit uses the smallest units of Config.token and is separate from the claim-fee credit. Anyone can call claim_credit(to) to deliver it to the recorded payee; failed delivery leaves the credit available for retry.
Submit a ruling
Only the Allocator’s configured governance address can authorize a ruling. Namespace ownership or an application login does not grant this authority.- Read the standing claim and
objection_id(label)from a consistent ledger snapshot, then review the claimant, objector and submitted evidence. - Choose the outcome and write a public explanation.
- Authorize
resolve_objection_for(label, expected_objection_id, uphold, reason). - Confirm the transaction and read
objection_decision(expected_objection_id).
The reason must contain non-whitespace text and be at most 2,048 UTF-8 bytes. Control characters are rejected except newline and tab. Successful execution returns
(); the ruling record and settlement commit together.
The older resolve_objection(label, uphold) remains available for compatibility. It records a decision with reason: None, but does not bind the authorization to a reviewed case ID. Use resolve_objection_for for new integrations.
Retrieve the explanation and evidence
claim is the complete Objected snapshot before the ruling, including both parties, the original claim basis, objection basis, bond and timestamps. Its format is in the Allocator storage reference. decided_at is a Unix timestamp in seconds.
Subsequent claims or rulings do not overwrite this decision. Timeout, withdrawal and stuck cancellation are different outcomes; they clear the standing case without creating a governance ruling. Decisions made before this interface was installed are not reconstructed with invented reasons.
Persistent records still need storage upkeep. Anyone can call touch_decision(case_id) to extend a known decision’s TTL; this returns DecisionNotFound for an absent record. touch_claim(label) also maintains the active ID, latest-decision pointer and latest decision. Older decisions require their own known IDs, and archived records require restoration. See decision storage and identity.
Errors
Existing errors such as
ClaimNotFound, NotObjected and authorization failures still apply. A transport error or restoration requirement is not a zero credit or an absent decision. Use Allocator events to discover case IDs, then read the contract for authoritative records.
Reopening proposals
Each governance proposal to reopen a rejected claimant’s application has an exact identity. This interface is active on the current testnet Allocator after the 8 September upgrade. Before using these methods on another deployment, verifyreopen_version() == 1. The existing ruling_version() does not establish this capability.
id to cancellation or execution. If a different proposal replaced it, the call returns ReopenChanged (44). Read and review the replacement before making another request. ReopenSequenceExhausted (45) prevents issuing a reused identity if the sequence reaches its limit.
The update retains existing reopening proposals and their original eta. legacy identifies a proposal stored through the older label-wide path. Reopening still waits one full allocation window; a zero code-upgrade delay does not remove this wait. The older cancellation/execution methods remain available, so new integrations should explicitly select the bound methods after checking the capability.
The reo_case event carries (label, claimant, id, legacy) for proposal discovery. Read the proposal from the contract before acting; an event alone does not prove it is still pending.