Skip to content
↑↓ to move · Enter to openEsc to close
Comparison · A2A Protocol project (Linux Foundation)

AgenID and A2A Agent Cards: identity records and discovery documents

Updated

An A2A Agent Card tells a client how to work with an agent: what it can do, where to reach it and how to authenticate. An AgenID record tells a counterparty which agent this is and which operator signed its declaration, in a form anyone can re-verify without trusting the registry. The card is a discovery and interaction document; the AgenID record is an identity record. They fit together more than they overlap.

This page describes A2A Agent Cards as described in their public documentation as of September 2026, citing the A2A specification and project repository. It describes AgenID as the reference deployment at agenid.com runs today, including what it does not do.

A2A Agent Cards, in its owner’s terms

The A2A specification describes the Agent Card as a document that every A2A server must make available, describing the server's identity, capabilities, skills and interaction requirements so clients can discover suitable agents and configure interactions, as described in its public documentation as of September 2026.

Side by side, as each is described in its public documentation. Sources are listed below.
DimensionAgenIDA2A Agent Cards
What is describedAn agent's identity, operator, purpose and disclosureAn A2A server's identity, capabilities, skills and interaction requirements
Identifier or locationagenid:<ULID>, resolved at https://www.agenid.com/a/<agenid>Typically https://{server_domain}/.well-known/agent-card.json
Who publishes and controlsThe operator signs with its own key; the registry stores public materialThe agent's provider publishes the card
SigningRequired: operator ManifestProof, pure Ed25519Optional: JWS signatures, for example ES256 or RS256
CanonicalizationRFC 8785 (JCS)RFC 8785 (JCS)
Verification without trusting the issuerOffline re-verification plus comparison of registry and operator-hosted keysClient retrieves keys by kid and jku or from a trusted key store
Authorization modelNone in v1.1.1; a v1.2 authorization layer is a draftCards declare required authentication schemes; authorization semantics left to implementations
Openness and licenseSpecification MIT-licensed; independent conformance suite MITOpen source under the Linux Foundation, Apache 2.0
Deployment statusLive at www.agenid.com; ceiling L1_REGISTEREDSpecification version 1.0.0 released
Where they fit together

An A2A Agent Card tells a client how to interact with an agent, and an AgenID record tells a counterparty which agent it is and which operator signed its declaration; one agent can publish both.

What an A2A Agent Card is

The A2A specification, at version 1.0.0, describes A2A as an open standard for communication and interoperability between independent, potentially opaque AI agent systems. The project repository states that A2A is an open source project under the Linux Foundation, contributed by Google, licensed under Apache 2.0.

Under the specification, A2A servers must make an Agent Card available. Clients can find one at https://{server_domain}/.well-known/agent-card.json, through registries or catalogs, or by direct configuration. The card carries the agent's name, description and interfaces, its skills and capability flags, a provider object naming the provider's organization and URL, and the security schemes a client must use, which include API keys, HTTP authentication, OAuth 2.0, OpenID Connect and mutual TLS.

Agent Cards may be signed with JSON Web Signature (RFC 7515). Before signing, the card must be canonicalized with the JSON Canonicalization Scheme, RFC 8785. The protected header names the algorithm, for example ES256 or RS256, and a key ID, and may include a jku URL for a JSON Web Key Set. The specification says clients should verify at least one signature before trusting a card, retrieve keys over HTTPS, and may keep a trusted key store for known providers.

What AgenID is

AgenID is an open protocol, specified in the MIT-licensed AgenID specification, that gives an AI agent a permanent identifier, agenid:<ULID>. The operator generates an Ed25519 key pair locally or in the browser at /issue, writes a manifest covering identity, ownership, purpose and disclosure, and signs a proof binding the manifest by SHA-256 digest. The registry at www.agenid.com serves the result at https://www.agenid.com/a/<agenid> as a Verification Card or a JSON resolution envelope that anyone can re-verify offline.

Key differences

Purpose differs. An Agent Card is written so a client can connect: interfaces, skills, capabilities and required authentication. An AgenID manifest is written so a counterparty can hold someone accountable: the agent's name and purpose, the operator and its domain and contact, and whether the agent is disclosed as an AI.

Where the record lives differs. An Agent Card is typically served by the agent's own server at a well-known path. An AgenID record is served by a registry under a permanent identifier that does not change when the agent's endpoint, platform or version changes.

Key trust differs. A2A leaves the question of which signing keys to accept to the client, whether through a jku URL or a trusted key store. AgenID specifies a procedure: confirm the key's role is operator, confirm its controller is the agent, and compare the key the registry serves at GET https://www.agenid.com/v1/keys/<key-ulid> with the operator's own copy at /.well-known/agenid/keys.json (two-path key discovery).

They share a building block: both canonicalize JSON with RFC 8785 before signing. A2A signs with JWS and algorithms such as ES256; AgenID signs with pure Ed25519 over the canonical bytes.

Identity is not permission

An Agent Card declares how clients must authenticate, and the specification states that A2A does not define the scope, representation, validity or revocation semantics of the authorization decision obtained when a task requires additional authorization. AgenID v1.1.1 defines no authorization object either. In both, which agent is acting is a different question from what it is allowed to do, and that decision stays with the implementation or the relying party.

Where they are complementary

A client that discovers an agent through its Agent Card can also resolve that agent's AgenID identifier to check which operator declared it, and compare the card's provider organization with the operator named in the signed manifest. A2A v1.0 defines no field for an AgenID identifier and AgenID v1.1.1 defines no Agent Card binding, so publishing the identifier alongside a card is an implementation choice, not a feature of either specification.

When to use which

These are fit questions, not quality judgments.

  • Use an A2A Agent Card when your agent speaks A2A and clients need to discover its skills, interfaces and authentication requirements.
  • Use AgenID when counterparties, including people and businesses outside A2A, need a permanent, operator-signed identity for the agent that they can re-verify offline.
  • Use both when an A2A agent also interacts with parties who need to know which operator stands behind it.

AgenID's current limits

AgenID's boundaries, stated as plainly as its design:

  • Issuance ceiling: the reference deployment at agenid.com issues nothing above L1_REGISTERED today. The specification defines L2_DOMAIN_VERIFIED, L3_ORGANIZATION_VERIFIED and L4_DEPLOYMENT_VERIFIED, but each requires a VerificationAssertion signed by a root authority key, and that key has not been created yet. L1_REGISTERED is a self-declaration: it means an operator-signed manifest is in the registry, not that anyone checked the operator. L5 is reserved and not issuable.
  • No revocation flow is deployed. Agent status values such as SUSPENDED and REVOKED exist in the schema so the envelope shape is stable, but nothing in production writes them, so every registered agent reads ACTIVE. The specification keeps retired and revoked keys resolvable permanently so that historical signatures remain checkable.
  • No authorization object exists in v1.1.1. The DECLARED, VERIFIED and AUTHORIZED claim states are never inferred from one another, AUTHORIZED has no signed object, and permissions and authorizations are reserved manifest keys that a v1.1.1 validator rejects. A v1.2 authorization layer is a draft in development, not something available.
  • Two-path key discovery depends on the operator. The registry serves the operator key at GET https://www.agenid.com/v1/keys/<key-ulid>, and the operator is expected to publish its own copy at https://<operator_domain>/.well-known/agenid/keys.json. If the operator publishes no copy, a verifier has one source, not two.

Frequently asked questions

Is an AgenID record the same as an A2A Agent Card?

No. An Agent Card describes how to interact with an A2A server. An AgenID record is an operator-signed identity for an agent, resolvable under a permanent identifier. An agent can have both.

Do Agent Cards and AgenID use the same canonicalization?

Yes. The A2A specification requires RFC 8785 canonicalization before signing an Agent Card, and AgenID signs RFC 8785 canonical JSON. The signature formats differ: JWS for A2A, pure Ed25519 over the canonical bytes for AgenID.

Can I put an AgenID identifier in an Agent Card?

A2A v1.0 defines no field for it, and AgenID v1.1.1 defines no Agent Card binding, so doing so would be your own implementation choice rather than part of either specification.

Does a signed Agent Card or AgenID record say what an agent may do?

No. Both help establish which agent is acting. What it is allowed to do is decided by the implementation or the relying party; AgenID v1.1.1 has no authorization object.

Can an A2A agent get a verified AgenID level today?

The reference deployment issues nothing above L1_REGISTERED today. Higher levels require an assertion signed by a root authority key, which has not been created yet.

Product names belong to their owners. This page is an independent, factual description based on public documentation as of 2026-09-23; it implies no partnership, endorsement or affiliation. Corrections are welcome via the spec repository.

What agenid.com issues today

The reference deployment at agenid.com issues DECLARED and L1_REGISTERED only. L2_DOMAIN_VERIFIED and higher require a VerificationAssertion signed by a root authority key, and that key has not been created yet. L5 is reserved by the specification and is not issuable at all.

Identity is not permission

Which agent is acting and who declared it is one question. What that agent is allowed to do is another, and it stays with the party on the other side and with the operator. Protocol v1.1.1 defines no signed authorization object.

Sources

  1. A2A Protocol specification
  2. GitHub: a2aproject/A2A
  3. AgenID protocol specification (MIT)

Give your agent an identity

Register an agent in the browser — the signing key is generated on your device and never sent to AgenID — or resolve an existing AgenID and re-check its signature yourself.