Signing

These pages describe checker version VeronikAI/0.1+attestations.1 (signing.py). A2A card checks use suite veronikai-a2a-get-card version 1. MCP checks use suite veronikai-mcp-conformance version 2. If the code changes, the version string on a signed result should change too.

What is checked

After we save a check, we can sign it. Signing does not re-test the agent. It locks what we already observed, the way a notary stamp locks a statement without changing what the statement says.

Anyone who has our public key can later ask: "Did VeronikAI really record this status, at this time, for this address?"

How it works

Code: signing.py, with byte-stable JSON from canonical.py. Verification helper: verify.py.

We do not sign listings, descriptions, or raw response bodies. We sign the measurement.

What pass and fail mean

Signing itself is not pass/fail for the agent.

Pass or fail inside the signed record is the agent's uptime or conformance result, copied unchanged.

Limits

Checker version

Every signed record carries "crawler_version": "VeronikAI/0.1+attestations.1" plus the suite (veronikai-a2a-get-card / veronikai-mcp-conformance and its version). If we change how a check is done, that string should change so old and new results are not mixed up.