A condition is a predicate over on-chain state. onus accepts four families at launch. Each has a witness that supplies the state, a window in which it must hold, and a payout rule. If a condition needs a human to interpret it, it is not a condition.
Release when a named party attests delivery on Arc against a reference the onus carries (order id, tracking id, document hash). Attestations use EAS schemas; the carrier, warehouse or recipient is the attester.
condition: attest(by: 0xCarrier, schema: delivery/v1, ref: "PO-4127") payout: full amount to payee lapse: if no attestation by T
Release when a named feed reports a value satisfying a comparison, optionally sustained for a window. Feeds are named by address at write time; both parties agree to the source before locking.
condition: feed(0xSPY).close >= 640.00 for 1 session payout: full amount, or scaled by (value − strike) lapse: if not met by T
Release when a checker contract verifies a submitted result against the spec hash in the onus. Checkers can run tests, compare hashes, call another model, or require a second agent's countersignature.
condition: check(0xChecker, spec: 0xabc…, result) == true payout: full, or per milestone lapse: if no passing result by T
Release after a period unless a named party files a dispute on-chain. Disputes freeze the onus until a named resolver — which can itself be a checker — decides. Default for deposits, retainers and warranties.
condition: now >= T0 + 30d and no dispute(by: payer) payout: full amount to payee dispute: route to 0xResolver
Conditions combine with and, or and then. A supplier contract might read: delivery attested and 7 days without dispute. A milestone contract: result A passes then result B passes, with a separate amount at each step.
Partial release is explicit: the onus lists tranches and which condition unlocks each. There is no "release 60% and we'll see".
| proposed | problem | use instead |
|---|---|---|
| "when the client is satisfied" | not readable | C3 with a spec + checker, or C4 with a dispute window |
| "when the invoice is paid off-chain" | not on Arc | C1 with the payee attesting receipt, or move the payment on-chain |
| "when the market looks good" | not a predicate | C2 with a named feed and a number |
| "when onus support approves" | we hold no discretion | name a resolver you both trust as the witness |