Skip to content
Get started: all pages

Get started

Five-minute introduction

Read a real ECZ-ID record, check it with the published verifier, and see where each link of the Accountability Chain lives. Two commands, no account.

Live · public

Live in production and publicly readable, with no account and no key. Measured read-only on 2026-10-10.

Accountability Chain:IdentityCurrent stateRe-verify

Minute 1: read a real record

This is the production record of the organisation that operates this site.

bashRun it. No key, no account.
curl -s https://api.ecocitizenz.com/api/p/ECZ-GB-RBS1NW.json
jsonExpected output (measured 2026-10-10, abridged)
{
  "ecz_id": "ECZ-GB-RBS1NW",
  "resolver_v2": {
    "record_type": "ECZ_ID_PARENT",
    "state": {
      "lifecycle_state": "ACTIVE",
      "parent_tier": "VERIFIED",
      "reliance_level": "PARENT_IDENTITY_ONLY"
    },
    "reliance": {
      "can_rely_on": ["record_existence", "active_parent_state",
                      "current_parent_tier", "public_resolver_visibility"],
      "reverify_before_reliance": true
    }
  }
}

Look at resolver_v2.state.lifecycle_state (ACTIVE), resolver_v2.state.parent_tier (VERIFIED), and resolver_v2.reliance.do_not_infer, the list of things this record refuses to let you conclude.

Minute 2: check it with the verifier

bashRun it. Node 22.14 or later; nothing is installed globally.
npx -y @ecocitizenz/ecz-id-mcp-verifier check --target ECZ-GB-RBS1NW
jsonExpected output (measured 2026-10-10, abridged)
{
  "target": "ECZ-GB-RBS1NW",
  "target_type": "ecz_id",
  "policy_mode": "OPEN",
  "result_state": "RESOLVER_VERIFIABLE",
  "reason_codes": [],
  "primary_action": "VIEW_RESOLVER_PROOF",
  "verifier_writes_truth": false,
  "exit_code": 0
}

Now ask for proof that does not exist. Under --policy REQUIRE, absence fails: that is the line you would put in CI.

bashRun it
npx -y @ecocitizenz/ecz-id-mcp-verifier check --target ECZ-ZZ-NOPE00 --policy REQUIRE
jsonExpected output (measured 2026-10-10, abridged)
{
  "target": "ECZ-ZZ-NOPE00",
  "target_type": "ecz_id",
  "policy_mode": "REQUIRE",
  "result_state": "NO_PUBLIC_RESOLVER_PROOF_FOUND",
  "reason_codes": ["NO_PUBLIC_RESOLVER_PROOF_FOUND", "RESOLVER_READ_ONLY",
                   "LOCAL_POLICY_DECIDES"],
  "machine_json_url": null,
  "primary_action": "CHOOSE_OPERATOR_PATH"
}
# exit code 1

Minute 3: see the chain

What you just read covers identity, current state and re-check. Authority, delegation and Intent are recorded in ECZ-ID Core when an owner authorises an ECZ-ID Intent. The decision belongs to IntentControl, which is documented ahead of release. The action always runs in your system, and the Receipt records what happened.

Minutes 4 and 5: choose a path

This page is explanation, not authority. Current state is only ever the live Resolver record. Live facts on this page were measured read-only on 2026-10-10.