Interoperable contract · public-safe
Quiet Result Contract
The deterministic, public-safe fields the verifier emits. Results describe observed public-proof posture and routing. They are not truth, do not change Backend state, and do not certify safety.
Public-safe fields
- result_state — deterministic posture for the target
- reason_codes — public-safe machine codes explaining the posture
- what_this_means / what_this_does_not_mean — plain-English framing
- resolver_url — human Resolver page; machine_json_url — machine projection (null for child IDs)
- local_policy_decides / recheck_before_reliance — boundary flags
- setup_handoff / request_to_resolve / trustops_action_url — routing only
Example (no public proof yet)
verifier output
{
"result_state": "NO_PUBLIC_RESOLVER_PROOF_FOUND",
"reason_codes": ["NO_PUBLIC_RESOLVER_PROOF_FOUND", "RESOLVER_READ_ONLY", "LOCAL_POLICY_DECIDES"],
"resolver_url": "https://resolver.ecocitizenz.org/p/ECZ-GB-A93K7Q",
"machine_json_url": null,
"setup_handoff": { "trustops_action_url": "https://trustops.ecocitizenz.com/start" },
"request_to_resolve": { "signed_request": false },
"local_policy_decides": true,
"recheck_before_reliance": true,
"no_source_uploaded": true,
"no_secrets_uploaded": true,
"no_telemetry": true
}What the contract means
- Outputs describe observed public-proof posture, not truth
- A result never creates or changes Backend state
- Setup handoff is routing only; Resolver is the public proof surface
- Backend/Core is the final authority; HTTP 200 alone is never proof
- Re-check before reliance
What it does not expose
No weights, ranking, propensity, basket construction, or product-selection logic. The contract is a public posture report and routing guide only.
Identifiers and routes
- Parent: ECZ-CC-XXXXXX; child: ECZ-CC-XXXXXX::PUBLIC_CODE-YYYYYY (33 public codes)
- Child Resolver URL is decomposed: /p/{parent}/{passport_code}/{instance_suffix}
- Child machine_json_url is null (no proven child machine endpoint)
ECZ-ID separates setup, verification state, and public proof. Developer Gateway documents setup paths and verifier guidance. TrustOps handles setup. Resolver remains the public proof surface. Re-check before reliance. Local policy decides.
