Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Orders

These commands follow job orders already on chain. They need no model and no session: an order id is enough. Placing an order is done from Python, with create_order() or solve() (see Job Orders).

The orders and status outputs on this page were captured on 2026-10-26 against aglais at specVersion 119, reading the orders Your First Quip Job placed.

orders

xquad quip --network aglais orders [--state STATE] [--account SS58]

Lists the account’s orders not yet closed, newest first, one line each: the order id, its state and the leader, tab-separated. The account is the one in effect (see account show), or --account names another; reading another account needs no keystore.

$ xquad quip --network aglais orders --account 5DL9B7rhMw1cg7kXzqmdj5QZ1V67vBvfYPq2bTEgZfSXiBSJ
24	final	5Ho6x2cpdd34W89rgFrUTms4JsEZfiWKyUpwW9vnpbGDvsN4
23	final	5GqG8c8zWHX33ruGJX4FDokxCTFrASVi268einKJY1XnHNYn
21	final	5GqG8c8zWHX33ruGJX4FDokxCTFrASVi268einKJY1XnHNYn
20	final	5GqG8c8zWHX33ruGJX4FDokxCTFrASVi268einKJY1XnHNYn

The state column is one of:

StateMeaning
open until block NStill accepting answers.
finalFinal and answered; the reward awaits a claim.
reclaimableFinal with no answers; reclaim refunds it.
closedClaimed or reclaimed; the chain records both alike.

The leader is none until someone answers. The chain drops an order from the account’s list once a claim or a reclaim closes it, so a closed order is listed only by status. --state keeps the orders that are submitted (still open), finalized, or unanswered (final with no answers, the ones reclaim --all would take); an empty result says so:

$ xquad quip --network aglais orders --account 5DL9B7rhMw1cg7kXzqmdj5QZ1V67vBvfYPq2bTEgZfSXiBSJ --state unanswered
no orders in state unanswered

At most the newest 32 orders are listed, with a warning when there are more. With --json, the same fields come as one object per order:

{
  "orders": [
    {
      "order_id": 24,
      "state": "final",
      "open_until": null,
      "answers": 2,
      "leader": "5Ho6x2cpdd34W89rgFrUTms4JsEZfiWKyUpwW9vnpbGDvsN4"
    },
    ...
  ]
}

open_until is the block an open order closes at, null otherwise; answers counts the solvers that answered.

status

xquad quip --network aglais status ORDER_ID [--short]

Prints the order’s receipt, the same box print(receipt) renders in Python; The receipt box explains each row. Any order on the network can be read, not only the account’s own:

$ xquad quip --network aglais status 20
╭─ Job order 20 receipt ───────────────────────────────────────────────╮
│ Network     aglais                                                   │
│ Proposer    5DL9B7rhMw1cg7kXzqmdj5QZ1V67vBvfYPq2bTEgZfSXiBSJ         │
│ Submitted   block 1898, 2026-10-15 04:22:24 UTC                      │
├──────────────────────────────────────────────────────────────────────┤
│ Problem     16 spins, 96 couplings                                   │
│ Spec        0x8f46f3a31321d1d093314fc769c42cbe7a83d71a0b69e6571a0f68 │
│             e2a04067f0                                               │
├──────────────────────────────────────────────────────────────────────┤
│ Payout      single best                                              │
│ Access      open                                                     │
│ Floors      none                                                     │
│ Deadline    100 blocks                                               │
│ Block wait  10 blocks                                                │
│ Reward      1.000000000000 AGLS                                      │
├──────────────────────────────────────────────────────────────────────┤
│ Status      final                                                    │
│ Answers     2                                                        │
│ Leader      5GqG8c8zWHX33ruGJX4FDokxCTFrASVi268einKJY1XnHNYn         │
│ Energy      -1790                                                    │
╞══════════════════════════════════════════════════════════════════════╡
│ Fee         0.002011933394 AGLS                                      │
│ Winner      1.000000000000 AGLS, awaiting claim                      │
╰──────────────────────────────────────────────────────────────────────╯

--short prints the one line orders prints, for scripts:

$ xquad quip --network aglais status 20 --short
20	final	5GqG8c8zWHX33ruGJX4FDokxCTFrASVi268einKJY1XnHNYn

xquad quip --network aglais --json status 20 --short prints that line’s fields as one object; --json belongs to the group, so it goes before the command. --json alone prints summary (those fields), status (the receipt’s status() dict), solvers and settlement, as Receipts describes them. An id that names no order exits 1:

Error: order 999999 not found on-chain (QuantumComputeMempool.JobOrders)

reclaim

xquad quip --network aglais reclaim ORDER_ID
xquad quip --network aglais reclaim --all [--yes]

Returns the reserved reward of a final order nobody answered to the account that proposed it. It is the one xquad quip command that signs: each reclaim is a transaction from the account in effect and pays its own fee. Pass an order id or --all, not both.

reclaim ORDER_ID refuses before signing when the order was proposed by another account, is already closed, is still open, or was answered; the reasons are listed under Reclaiming. A refused reclaim costs nothing.

reclaim --all takes every order orders --state unanswered lists. It shows them and their total, then asks before signing anything. The output below is illustrative, assembled from the messages in xquad/cli/quip.py rather than captured, with made-up order ids:

$ xquad quip --network aglais reclaim --all
order 31  1.000000000000 AGLS
order 28  1.000000000000 AGLS
2 orders, 2.000000000000 AGLS to recover; each reclaim pays its own fee
Reclaim them? [y/N]: y
reclaimed order 31: 1.000000000000 AGLS refunded
reclaimed order 28: 1.000000000000 AGLS refunded
2.000000000000 AGLS recovered from 2 of 2 orders

The prompt defaults to no; declining reclaims nothing and exits 1. Without a terminal, or with --json, there is no prompt, so --yes is required:

Error: pass --yes to reclaim without a prompt

With nothing to reclaim it prints nothing to reclaim on <account>, or with --json {"reclaimed": [], "refused": [], "total": 0}, and exits 0. An order that is refused or fails part way is reported on stderr as order N not reclaimed: <reason>, and the rest still go ahead; the command then exits 1. With --json, reclaim ORDER_ID prints order_id and refunded, and reclaim --all --yes prints the reclaimed and refused lists and the total refunded, in planck.