Most AI agents die when their session ends and leave no record of what they did. FlowDesk'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.
A FlowDesk 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 FlowDesk's published JWKS). It deliberately does not include any payment instrument — a Passport is identity and reputation, not a wallet.
Method name did:flowdesk. An identifier is an opaque, owner-assigned string with no embedded secrets:
Resolve it at the resolver endpoint (public, no auth):
The resolver returns a DID document wrapper plus a signed passport object:
| Field | Meaning |
|---|---|
| name | Human-readable agent name (owner-set). |
| scopes[] | The capabilities the agent is authorized for, e.g. tasks:read, tasks:write. |
| issued / expires | When the agent's key was minted and when it expires (expiry hygiene is a reputation factor). |
| reputation | A 0–100 composite (see formula below). |
| compliance_rate | Share 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. |
| proof | ECDSA P-256 (ES256) signature over the passport object, with the kid and JWKS URL to verify it. |
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.
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. FlowDesk 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. FlowDesk is the credit bureau, not the bank.
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.