Order lifecycle, live
Every transition below is a real contract method. Pick a scenario and play it, or click a state to see what can leave it, who may call it and what it guards against.
Escrow, claim, deliver, paid in full.
Step 0 / 3
Press Play or Step to walk through “Happy path”.
All transitions
| Method | From → To | Caller | Guard |
|---|---|---|---|
create_order | none → open | Client | Non-empty, length-capped title/spec/criteria; 1–365 day deadline. |
claim_order | open → claimed | Provider | Before the deadline; the client cannot claim their own order. |
abandon_claim | claimed → open | Provider | Only the claimed provider, before the deadline. |
extend_deadline | claimed → claimed | Client | Before the deadline; 1–30 days per call; total lifetime ≤ 365 days. |
cancel_order | open → cancelled | Client | Only while nobody has claimed it. |
submit_deliverable | claimed → completed | Provider | Before the deadline; public http(s) evidence URL; evidence must return 2xx and a non-empty body. Verdict ≥ 50% → completed, otherwise rejected. |
submit_deliverable | claimed → rejected | Validators | Consensus payout below 50%. |
expire_order | claimed → expired | Anyone | Deadline passed without a delivery (also applies to unclaimed open orders). |
appeal_delivery | rejected → completed | Client | Within 7 days of the first verdict; once per order; context ≤ 2000 chars. |