EcoCitizenZ
HomeBinding RegistryResolver projection
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

StateMeaningTreat as proof?
BOUNDBackend observed matching control evidence at the stated time.Yes — public proof.
CLAIMEDOperator claimed the binding in TrustOps.No — setup only.
CHALLENGE_ISSUEDBackend issued a challenge.No — setup only.
OBSERVEDBackend observed a signal but verification incomplete.No — setup only.
EXPIREDPrevious proof has lapsed.No — not valid proof.
DEGRADEDSome signals present, others missing.No — not valid proof.
MISMATCHObserved value does not match the canonical record.No — not valid proof.
REVOKEDOperator or registry revoked the binding.No — not valid proof.
SUSPENDEDLifecycle 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.