MIZAN / Developers / The verdict / Changelog

What changed: additive, dated, versioned.

Versions of the verdict protocol and the bindings that carry it. Within a version every change is additive: old shapes, ids, routes and codes keep working.

mizan.verdict/1verdict schema
mzv1token format
1reason codes version
1.24.0API release
/api/verdict/changelogas JSON
protocol

mizan.verdict/1 (draft)

  • Verdict object: decision first (ALLOW | REFUSE), rule, grade, measured, bound_to, issued/expires, as_of ledger state, record.
  • Compact token mzv1.<claims>.<sig>: canonical JSON claims, Ed25519 signature, kid from the published key set.
  • Reason codes version 1: nine codes plus rule-specific codes; exactly one on every REFUSE.
  • Routes: GET /api/verdict/status/{jti}, GET /api/verdict/revocations, GET /api/verdict/keys, POST /api/verdict/verify.
  • Conformance vectors (mizan.verdict-conformance/1) signed with a published test key that is never in MIZAN's key set.
surfaces

mizan.verdict/1 surfaces

  • GET /api/check/{subject} answers with the verdict by default; the previous reply stays at ?format=legacy, and MIZAN SDK releases from before the verdict keep it until they upgrade.
  • MCP check(subject, rule) returns the verdict as structuredContent with an outputSchema; A2A check returns it as the data part.
  • SDKs: check() returns the verdict with the token verified offline; verify_token / verifyToken; x402 helper.
bindings

carriage/1

  • x402: accepts[i].extra.mizan = {token, kid}; payTo must equal bound_to.payee.
  • AP2 v0.2: Payment Mandate constraint {type: market.mizan.verdict, rule}.
  • Agentic Commerce Protocol: extension market.mizan.verdict on the complete request, or delegate-payment metadata.
  • HTTP header Mizan-Verdict (X-Mizan-Verdict read too).
  • carriage.json (mizan.verdict-carriage/1) with Python and TypeScript references for every rail.
additive

mizan.verdict/1 additions

  • Release holds: HELD, RELEASED, SETTLED, VOIDED, CANCELLED, EXPIRED; settle and void routes.
  • Optional mandate and risk blocks inside the signed token, present only when asked for.
infrastructure

infrastructure/1

  • /.well-known/mizan.json (mizan.discovery/1): one map of the call, schema, keys, endpoints, bindings, conformance, status.
  • GET /api/status (mizan.status/1) from real probes; status page upgraded.
  • Code registry (mizan.codes/1) at /api/verdict/codes and /verdict/codes/.
  • Conformance self-test: browser page /verdict/conformance/, python -m mizan.conformance, npm run conformance.
  • This changelog at /api/verdict/changelog and /verdict/changelog/.