MIZAN / Developers / The verdict / Conformance

Run the vectors. Here, in your browser, now.

This page fetches the published vectors and verifies every token in this tab, with no call to MIZAN. Each must return exactly its expected result: a valid token passes; a tampered, expired, wrong-payee, wrong-rule, unknown-key or revoked one fails with its code.

01 Self-test · two engines

Every vector, verified in this tab.

Once with your browser's WebCrypto Ed25519, once with a pure-JavaScript verifier (tweetnacl 1.0.3, inlined). The vectors in vectors.json are signed with a published test key that is never in MIZAN's key set, so a vector token can never pass against production keys.

…vectors + canonical bytes
…WebCrypto Ed25519
…pure JS (tweetnacl)
…per token, WebCrypto / JS

Running…

VectorExpectedWebCryptoPure JS

02 A live verdict

A real verdict, verified here.

Ask MIZAN for a verdict on the sandbox subject and verify its token in this tab against the production key set. Two calls: the check and the key set. The verification itself is offline.

03 Your verifier

One command. Exit 0 only when every vector passes.

Point it at your own verifier. It is called as fn(token, keys, payee?, rule?, now?, status?) and returns {ok, code}.

# Python, no SDK needed: the standalone file (stdlib only)
curl -sO https://mizan.market/verdict/conformance.py
python3 conformance.py --verifier yourpkg.verdict:verify_token

# Node 20+, no package needed
curl -sO https://mizan.market/verdict/conformance.mjs
node conformance.mjs --verifier ./your-verifier.mjs

# inside the SDKs
python -m mizan.conformance --verifier yourpkg.verdict:verify_token
npm run conformance -- --verifier ./your-verifier.mjs
mizan.verdict-conformance/1conformance.py · conformance.mjs · vectors.json

Payment-side verifiers (x402, AP2, the Agentic Commerce Protocol, the HTTP header) have their own cases in carriage.json. Every code is defined in the code registry.

Pure-JS engine: tweetnacl 1.0.3 (public domain; audited by Cure53, 2017), nacl.min.js from npm, sha256 973cc5733cc7432e…, inlined unchanged. This page loads no third-party script.