Developer surface

One contract, three faces: the vawn CLI, the HTTP service and the browser workspace — plus an offline verifier for evidence you are handed.

vawn CLI

The reference client lives in the repository under apps/cli. pnpm -C apps/cli link --global puts it on PATH.

vawn commission --title "…" --category code_review --spec spec.json
vawn pack ./deliverable --contract wc_… --out submission.tar
vawn upload submission.tar --contract wc_…
vawn pipeline commission+verify --contract wc_…

vawn pack manifests every file with SHA-256, builds a deterministic archive and self-checks the bytes against the service's own validator — a pack that would be refused fails locally with the real error code.

HTTP service

The contract service at api.testudax.com exposes the WCAP verbs: commissioning, specification, authorisation, submissions, probes, transitions, bundles, audit export, scorecards, routing, rail intents and administration. Peers authenticate with operator-issued ptk_… credentials; every write is scoped to the caller's identity and rate-limited per key.

Web workspace

app.testudax.com carries the same lifecycle in the browser — commission, track, transition, verify, accept and sign — with the service enforcing every edge. The same workflow was gate-tested end to end through the deployed UI alone.

Offline verification

Signed evidence bundles are DSSE envelopes over a verdict statement. The verifier SDK (packages/verify-sdk) and vawn inspect check a bundle offline: signature, statement shape, subject digests — no service call required.

Repository

github.com/cay-pax/testudax — TypeScript monorepo: apps/cli, apps/service, apps/web, apps/site (this site), and packages for WCAP, ingest, evidence, engine, identity and rails. The quickstart and peer-integration guide are in docs/guides/.