Documentation
ECZ-ID Agent Trust checks committed agent identity manifests and the API Passport references they declare, explains deterministic agent, operator and API-reference findings, and generates practical remediation directly in pull requests — without executing repository code. Missing public ECZ-ID evidence is neutral; your local policy decides.
Supported files
| Path | Parsed as |
|---|---|
/ecz-agent.json, /.well-known/ecz-agent.json, **/ecz-agent.json | JSON — canonical ECZ-ID agent manifest |
Only the committed agent manifest is fetched (allowlisted, read-only) — no other repository file is read. API Passport references declared in the agent manifest are checked for supported grammar and operator consistency. The App does not fetch or inspect OpenAPI documents in V1.
What the check does
Deterministic checks only: the canonical agent manifest is validated, and an
agent / operator / API-passport consistency map is evaluated — operator ECZ-ID
reference format, agent credential reference grammar, API Passport reference grammar
(<operator>::API_PASSPORT-XXXXXX), manifest hash and signature-set
shape, authority scope, and optional public Resolver evidence posture. Legacy
manifest shapes are recognised and produce neutral migration guidance only — they
never establish proof. The absence of ECZ-ID evidence never causes a failing
result, and no payment can change a result.
Check conclusions
| Conclusion | Used when |
|---|---|
success | Deterministic checks completed; no objective agent, operator or API-reference mismatch |
neutral | Nothing in scope, legacy/unsupported schema, limits reached, Resolver outage, unverified committed reference, or internal error |
action_required | Malformed canonical manifest or an objective agent, operator, credential or API-passport reference mismatch |
failure is never used.
Limits
Max file size 256 KiB · max tree entries 20,000 · max analyzed assets 50 ·
max path depth 20. Exceeding a limit yields a truthful partial result,
never a failing one.
Canonical ecz-agent.json
{
"schema_version": "1.0.0",
"agent_name": "your-agent",
"agent_type": "mcp_agent",
"operator_ecz_id": "ECZ-GB-A1B2C3",
"agent_credential_id": "ECZ-GB-A1B2C3::AGENT_CREDENTIAL-9F8E7D",
"resolver_url": "https://resolver.ecocitizenz.org/agent/ECZ-GB-A1B2C3::AGENT_CREDENTIAL-9F8E7D",
"authority_scope": {
"actions": ["read:repository"],
"targets": ["github.com/your-org/your-repo"],
"policy_refs": ["https://your-org.example/agent-policy"]
},
"api_passport_refs": ["ECZ-GB-A1B2C3::API_PASSPORT-1A2B3C"],
"manifest_hash": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"issued_at": "2026-01-01T00:00:00Z",
"last_updated_at": "2026-01-01T00:00:00Z",
"signature_set": [
{ "alg": "Ed25519", "key_id": "your-key-id", "signature": "<real-signature>" }
]
}
Replace every placeholder with the values your operator issued. The
manifest_hash shown is a placeholder of the correct form — compute the
real hash of your canonicalised manifest, and use your real signature.
authority_scope requires all three arrays: actions,
targets and policy_refs.
Reviewers can inspect public proof for a referenced operator or credential through the ECZ-ID Resolver. Operators can open supported setup from the check output.
What the App never does
It never executes repository code, commands, scripts or binaries; never retains raw source; never requests write access to your code; never fabricates a manifest hash or signature; and never requires payment to reveal findings.