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/.