Open standard, MIT, v0.1

Agent Passport.

A verifiable, business-issued identity and authority document for AI agents that talk to other AI agents across organisational boundaries. One signed JSON file at /.well-known/agent-passport.json. Ed25519 over DNS. Authored by Cubitrek on April 28, 2026, published MIT for industry use.

What it is

A signed JSON file with seven required fields.

An organisation publishes one document at the well-known URL on its own domain. The document declares who issued the agent, what the agent is allowed to do, what it can spend, who picks up when it crashes, and where the audit log lives. Counterparty agents verify it with one schema check plus one Ed25519 verify.

  • version

    Spec version. v0.1 today.

  • issuer

    Legal name, display name, logo, signing-key DNS hostname, contact.

  • agent

    Stable id, display name, purpose, model, machine-callable endpoints (MCP, A2A, REST).

  • authority

    Scope list, hard spend ceiling, human-in-loop threshold, escalation SLA, decisionAudit URL.

  • issuedAt + expiresAt

    Validity window. 90-day expiry recommended.

  • signature

    Ed25519 over canonical JSON. keyId binds to a DNS TXT record at _agent-passport.{domain}.

Resources

Spec, schema, verifier, and worked examples.

Everything you need to issue your own passport this week.

Issue your own

Five steps. One engineer afternoon.

  1. Generate an Ed25519 keypair.

    Use Node crypto.generateKeyPairSync, OpenSSL, or any standard library. Store the private key offline. Export the raw 32-byte public key as base64url.

  2. Publish a DNS TXT record.

    At _agent-passport.{your-domain}, add: v=ap1; kid=<id>; alg=ed25519; pk=<base64url public key>. Same operational pattern as DKIM.

  3. Author your passport JSON.

    Copy one of the example files in the repo, fill in your issuer, agent, authority, and compliance fields, set issuedAt + a 90-day expiresAt.

  4. Sign and serve.

    Canonicalize with signature.value set to the empty string, Ed25519-sign the bytes, write the base64url signature back into signature.value, serve the file at /.well-known/agent-passport.json.

  5. Verify and list.

    Run the reference verifier against your own URL to confirm. Send a PR to adopters.md and we will add a row.