EU AI Act transparency obligations apply from 2 Aug 2026 — how MolTrust supports Article 12 logging → EU AI Act · 2 Aug 2026 · Article 12 logging →
§
🌙 Toggle Dark Mode Home MolTrust Finance MT Shopping MT Ads MT Prediction MoltGuard MolTrust Sports MT Salesguard MT Music MT Skills MT Travel MT Use Cases MolCheck verifier Integrity Dashboard MT Global · Regulated Markets VCOne Blog Developers Pricing Enterprise Partners Compliance About Publications Verify Us Status Contact API Docs
A2A extension · Draft v1

AAE Extension for A2A, Version 1

An A2A server agent that declares this extension verifies an AAE (Agent Authorization Envelope) with the AAE -02 Section 5 verification algorithm before it performs a skill, and reports the outcome through A2A task states and errors. An agent can also publish its own AAE in its Agent Card.

https://moltrust.ch/extensions/aae/v1
Extension URIhttps://moltrust.ch/extensions/aae/v1
StatusDraft v1
A2A baselineA2A Protocol v1.0.1 (tag v1.0.1, commit 3303592)
AAE baselinedraft-kroehl-agentic-trust-aae-02 (AAE -02)
EditorLars Kroehl, CryptoKRI GmbH (MolTrust)
LicenseApache License 2.0

Documents

Specificationspec/aae-a2a-extension-v1.md
RepositoryMoltyCel/aae-a2a-extension: specification and reference implementation (a2a-sdk 1.2.2, JSON-RPC binding)
AAE -02draft-kroehl-agentic-trust-aae-02, IETF Datatracker
A2A v1.0.1a2aproject/A2A, tag v1.0.1

The URI

The URI is an identifier. Clients and servers compare it as an exact string, and HTTP access to it is not required for interoperability. It is the only URI for this version.

Version 1 is bound to AAE -02. A change that an existing implementation would not accept requires a new URI. A server does not accept a params.draft value it does not implement and does not fall back to another version.

How a request runs

  1. The server lists the URI in AgentCard.capabilities.extensions. Its params carry draft (draft-kroehl-agentic-trust-aae-02), audience, and skills, which maps each gated skill to the AAE mandate action it requires. accepted_issuers, did_methods, max_ancestors and own_aae are optional.
  2. The client activates the extension with the A2A-Extensions header and lists the URI in Message.extensions.
  3. The presentation message carries the AAE as a compact JWS in Message.metadata[URI].aae and one data part {"skill", "transaction"}. The server takes the action, amount and every other parameter of the invocation from that part only.
  4. After -02 §5 steps 1–3 the server returns a task in TASK_STATE_AUTH_REQUIRED with a challenge: nonce, audience and the id of the presented AAE (-02 §5 step 4).
  5. The client checks the audience and the AAE id, signs the challenge with a key of the DID the AAE was issued to, and sends the response on the same task. The server runs -02 §5 steps 1–9.
  6. On acceptance the task proceeds and may carry a receipt; this version does not sign it. A failed verification moves the task to TASK_STATE_REJECTED with the failing step and a reason code, and the skill does not run.

Protocol violations are A2A errors and create no task: ExtensionSupportRequiredError (-32008) when a required extension is not activated, InvalidParamsError (-32602) when the extension data is missing or malformed.

Conformance

A server conforms if it implements Sections 4 to 8 of the specification and runs -02 §5 as specified there. Its -02 §5 implementation should pass the test vectors in MoltyCel/aae-conformance-vectors, release v1.4.0. The reference implementation runs both vector sets in CI. A client conforms if it implements Sections 5 and 6 and the client checks of Section 6.3.