Repository navigation
v0.4.5
pip install xquad now installs the xquad command, with the XQVM tools under xquad vm and a new xquad quip group for Quip accounts, job orders and receipts. SolverQuip gains named accounts, a read-only client and a TLS context option, and every job order it sends now settles from finalized chain state. SolverQuip needs a Quip network on runtime 119 or later.
Highlights
- The
xquadCLI ships withpip install xquad(orpython -m xquad):xquad vm asm,dis,runandcheck, with the flags, output and exit codes ofxqcli. xquad quip account list|show|new|import|usemanages named Quip accounts at project and user level;xquad quip orders,statusandreclaimread and reclaim an account's job orders.--jsongives machine-readable output.- SolverQuip resolves its signer through named Quip accounts, and
SolverQuip(read_only=True)reads balances, orders and receipts without loading a key. Newbalance(),reserved()andorder_slots(). SolverQuip(ssl_context=...)uses your TLS context for the RPC connection and the faucet request, for example to check revocation.xqffi.vm.Vm.runwrites the VM's text or JSON trace to a file.
Behaviour changes
xqcliis decommissioned. Its last release, 0.4.4, keeps working; from 0.4.5 the CLI is thexquadcommand installed with pip. If you installed it with Cargo, runcargo uninstall xqcliso the old binary does not shadowxquadonPATH.- SolverQuip sends the energy ceiling as
max_energy_millionly, so it can propose only on runtime 119 or later. It checks the node's runtime and genesis on connect, and fails withQuipMetadataErrororGenesisMismatchbefore sending anything. - The signed-extension order is read from the runtime metadata instead of a fixed list.
submit()returns at finality, a few blocks later than before. A send it cannot settle leaves the order in the newsendingstate and raisesQuipSubmitIncompleteError; the order is safe to keep and resume.propose_jobis signed with a mortal era.- Without
seed=orkeystore=, SolverQuip picks its signer fromQUIP_SIGNER_SEED,QUIP_KEYSTORE, the project preference, the user preference, then thedefaultaccount, and logs the keystore a preference chose. - CLI errors print as one line; the source snippets
xqcliprinted are gone. - The
quipextra needs certifi 2026.10.19 or later, after eMudhra's TLS intermediates were revoked.
Deprecations
xquad asm,dism,runandverify: usexquad vm asm,dis,runandcheck. They still work and print a deprecation line. Removed in v0.6.0.xqsa.quip.signing.SIGNED_EXTENSIONS: the order comes from the runtime metadata. Removed in v0.6.0.QuipUnconfirmedErrorand theunconfirmedorder state: replaced byQuipSubmitIncompleteErrorandsending. An order pickled asunconfirmedby 0.4.3 or 0.4.4 still loads, warns, and is never sent again. Removed in v0.6.0.
Packages
| Registry | Packages |
|---|---|
| crates.io | xqvm · xqasm |
| PyPI | xquad · xqsa · xqcp · xqffi · xqvm_py |
pip install xquad==0.4.5Documentation: developers.quip.network/docs/xquad
Full changelog (33 changes)
Added
- xquad: Add xquad quip for Quip accounts and order receipts
- xqsa: Add the account and order reads the quip CLI needs
- xquad: Add the xquad CLI with vm asm, dis, run and check
- xqffi: Write a text or JSON trace from Vm.run
- xqsa: Let SolverQuip take a TLS context for RPC and faucet
- xqsa: Add a read-only SolverQuip client and balance()
- xqsa: Resolve the SolverQuip signer through Quip accounts
- xqsa: Add named Quip accounts and account preferences
- xqsa: Allow a Quip network preset with no faucet
- xqsa: Check the runtime and genesis on every Quip connect
- xqsa: Take the signed-extension order from runtime metadata
- xqsa: Leave an interrupted send in the sending state
- xqsa: Add the sending state and QuipSubmitIncompleteError
- xqsa: Settle a sent propose_job from finalized state
- xqsa: Sign propose_job with a mortal era
Changed
- xqsa: Require runtime 119 by sending max_energy_milli only
- xqcli: Remove the crate now the CLI ships with xquad
- xquad: Load submodules lazily and alias the bridges
Deprecated
- xqsa: Retire SIGNED_EXTENSIONS behind a warning
- xqsa: Retire the unconfirmed state and QuipUnconfirmedError
Documentation
- Update the install steps and the macOS DevNet setup
- Document the v0.4.5 SolverQuip and xquad quip surface
- Give the xquad CLI its own part of the book
- Use xquad quip account show in the first-job tutorial
- Install the xquad CLI with pip and document xquad vm
- Import xquad namespaces in the book and examples
- xqsa: Describe SolverQuip's ssl_context and revocation route
- xqsa: Document Quip accounts and the new signer precedence
- xqsa: Say the signed-extension order comes from the chain
Fixed
- xqsa: Cache unreadable receipt facts apart from read faults
- xqsa: Close a Quip connection on every failed connect
- xqsa: Read the order id from our own JobProposed event
Security
- xqsa: Require certifi 2026.10.19 for the eMudhra distrust
Full diff: v0.4.4...v0.4.5