Proof · Resolver projection
Resolver projection
Resolver is public read-only proof for an exact ECZ-ID. No search, no directory, no setup, no checkout, no mutation.
What Resolver projection is
- Public read-only proof for an exact ECZ-ID only.
- No search. No directory. No browse.
- No setup. No checkout. No mutation.
- HTML proof for humans and machine-readable JSON for systems.
Exact state table
| State | Meaning | Treat as proof? |
|---|---|---|
| BOUND | Backend observed matching control evidence at the stated time. | Yes — public proof. |
| CLAIMED | Operator claimed the binding in TrustOps. | No — setup only. |
| CHALLENGE_ISSUED | Backend issued a challenge. | No — setup only. |
| OBSERVED | Backend observed a signal but verification incomplete. | No — setup only. |
| EXPIRED | Previous proof has lapsed. | No — not valid proof. |
| DEGRADED | Some signals present, others missing. | No — not valid proof. |
| MISMATCH | Observed value does not match the canonical record. | No — not valid proof. |
| REVOKED | Operator or registry revoked the binding. | No — not valid proof. |
| SUSPENDED | Lifecycle hold applied. | No — not valid proof. |
Machine-readable BOUND example
Resolver JSON · state=BOUND
{
"ecz_id": "ECZ-GB-XXXXXX::AGENT-4F9Q2A",
"binding_type": "agent",
"state": "BOUND",
"operator_ecz_id": "ECZ-GB-XXXXXX",
"authorised_origin": "https://agent.example.com",
"manifest_hash": "sha256:<hash-of-canonical-manifest>",
"observed_at": "<timestamp>",
"valid": true,
"cache": "max-age=60"
}Machine-readable unsafe-state examples
Unsafe states are returned with no-store cache behavior so they cannot be cached as valid proof.
Resolver JSON · state=MISMATCH and state=REVOKED
{
"ecz_id": "ECZ-GB-XXXXXX::AGENT-4F9Q2A",
"binding_type": "agent",
"state": "MISMATCH",
"reason_codes": ["MANIFEST_HASH_MISMATCH", "ORIGIN_MISMATCH"],
"valid": false,
"cache": "no-store"
}
{
"ecz_id": "ECZ-GB-XXXXXX::AGENT-4F9Q2A",
"binding_type": "agent",
"state": "REVOKED",
"reason_codes": ["OPERATOR_REVOCATION"],
"valid": false,
"cache": "no-store"
}No-store posture for unsafe states
Resolver returns unsafe states with cache: no-store. Verifiers must not cache an unsafe state as if it were proof, and must re-check before any action.
Exact-ID only
Resolver answers questions about one exact ECZ-ID. There is no search, no listing, and no browse experience. Developer Gateway does not host any of those either.
Required disclaimer
This page projects ECZ-ID state from backend-controlled records. A BOUND status means ECZ-ID observed control evidence for the referenced target at the stated time. This is identity, authority, custody, or evidence-state proof only. It is not a certification, safety guarantee, regulatory approval, compliance guarantee, insurance policy, or endorsement.
Resolver URL
All Resolver links use https://resolver.ecocitizenz.org.
Live projection status
Live public binding projection for this documentation surface has not yet been independently proven. These docs describe the code-proven and test-proven model only.
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. The verifier does not create or change verification state. Re-check before reliance. Local policy decides.
