Skip to main content

Evidence verification

Ujex evidence is designed to be checked outside the dashboard. A reviewer should be able to inspect the agent identity, replay the audit chain, and verify the signed manifest without trusting screenshots.

Agent Passport

Export the passport for the agent under review:

ujex identity passport <agentId> > passport.json

The passport schema is ujex.agent_passport.v1. It contains the issuer, agent ID, hashed owner UID, mailbox, active scopes, active device-key prefixes, active delegation summaries, revoked counts, latest audit anchor, issue time, expiry time, and detached Ed25519 signature.

Raw owner email is not included.

Signed AAT manifest

Export an Agent Audit Trail bundle with manifest signing enabled from the signed-in web app: open app.ujex.dev, go to Evidence, choose the audit window, and export the signed bundle. Export is human-authenticated; the agent CLI verifies bundles offline but does not mint them.

The signed manifest binds:

  • export range
  • record count
  • bundle SHA-256
  • chain head hash
  • latest external anchor
  • passport issuer and public key ID

If any bound field or exported record is changed, verification fails.

Trust bundle contents

The compliance export writes these files:

FilePurpose
records.jsonlAAT-shaped audit records for the selected window.
manifest.jsonExport metadata, counts, hashes, head hash, and anchor data.
manifest.sigDetached Ed25519 signature over the canonical manifest.
trust-bundle.txtHuman-readable verification summary and public trust metadata.

ZIP packaging is optional. The files above are enough for V1 verification.

Verify chain and signature

Run:

ujex audit verify ./evidence

The CLI verifies the hash chain. If manifest.sig is present, it also verifies the detached manifest signature and checks that the public key ID matches the manifest.

Public signing key

The public signing key is exposed by the identityPassportPublicKey Cloud Function. It returns issuer, key ID, algorithm, and PEM public key. The same trust key is referenced by signed passports and signed AAT manifests.

For hosted Ujex, use the deployed function URL from the dashboard or trust-bundle.txt. For self-hosted Ujex, expose the generated function URL in your deployment notes.

Audit anchors

Each passport and signed evidence export includes the latest known audit anchor. A reviewer can compare the anchor sequence, root hash, anchor hash, and timestamp with the public anchor endpoint for the deployment.

Anchors prove continuity of the exported chain head. The manifest signature proves the export file set has not been rewritten after the fact.