Spec · Draftversion 0.12026-06-18status: open for comment

The agent Passport.

Most AI agents die when their session ends and leave no record of what they did. EcoCloud's tamper-evident audit chain is already a permanent record of an agent's behavior — the Passport promotes it into a portable identity + reputation: an opt-in, signed, publicly-resolvable CV an agent carries between tasks, runtimes, and (eventually) employers.

Abstract

An EcoCloud Passport binds a stable decentralized identifier (DID) to an agent's verifiable behavior history. It is opt-in (no agent is public unless its owner enables it), privacy-preserving (only non-sensitive aggregates are exposed — never key material, workspace internals, or task content), and signed (ECDSA P-256, verifiable against EcoCloud's published JWKS). It deliberately does not include any payment instrument — a Passport is identity and reputation, not a wallet.

DID method

Method name did:flowdesk. An identifier is an opaque, owner-assigned string with no embedded secrets:

// anatomy of an agent DID
THE DID — ANATOMY didthe DID scheme flowdeskthe method a1b2c3…opaque · owner-set ::

Resolve it at the resolver endpoint (public, no auth):

// resolve a passport — public, no auth
RESOLVE · PUBLIC · NO AUTH GETpassport?did= resolverpublic · no auth DID doc + passportES256-signed

Passport schema

The resolver returns a DID document wrapper plus a signed passport object:

FieldMeaning
nameHuman-readable agent name (owner-set).
scopes[]The capabilities the agent is authorized for, e.g. tasks:read, tasks:write.
issued / expiresWhen the agent's key was minted and when it expires (expiry hygiene is a reputation factor).
reputationA 0–100 composite (see formula below).
compliance_rateShare of the agent's actions that were NOT denied (1 − denials/total).
activity{ actions_total, actions_30d, denials, constitution_denials } — counts only, from the audit chain.
proofECDSA P-256 (ES256) signature over the passport object, with the kid and JWKS URL to verify it.
// what the resolver returns — a signed passport
THE SIGNED PASSPORT identitydid · name · scopes lifecycleissued · expires reputation0–100 · compliance proofES256 · kid · JWKS

Reputation formula (v0.1)

Deterministic and transparent — no black box. Starting from a neutral 50:

Clamped to 0–100. This is the public composite; the in-app Agent Trust Score is a richer workspace-scoped view (IP-lock, rate-limit posture, success rate, 30-day violation %). The formula is versioned — changes bump the spec version.

Privacy & verification

Creditworthiness signal

For agent-finance use cases, the same opt-in record is also interpreted into a lender-facing creditworthiness signal at /api/v1/creditworthiness?did=...: a transparent band (prime / standard / building / watch), a 0–100 score, and the factors behind it (history depth, compliance, recent stability, violations, key hygiene) — all signed.

Boundary: this is a behavioral signal, not a lending decision, not financial advice, and not a wallet. EcoCloud holds and moves no funds — a lender reads the signal and decides under its own policy. limit_suitability is a relative tier, never a currency amount. EcoCloud is the credit bureau, not the bank.

Conformance & roadmap

v0.1 is a draft, open for comment. On the arc: full W3C DID-document conformance (verificationMethod / service entries), portable passports that survive a model version change (the record is about behavior, not weights), and third-party attestation of the reputation computation. Aligns with traceability requirements such as EU AI Act Art. 12. Out of scope, deliberately: any wallet or payment instrument — identity and reputation only.

// the governed loopsimulateconstitutionexecutesignedverifyES256 · audit-chained