Where the specs become real
The four specs above are paper. AIM is the working steel, the reference platform for AIP, ATX and ATP behind a developer experience that fits on one line: secure("my-agent"). It mints identities, issues credentials, enforces authorization, and records everything, so a developer gets the stack without assembling it by hand. Two layers live elsewhere by design: did:opena2a resolution runs in the OpenA2A Registry, and the AAP credential broker runs in Secretless.
One platform, every layer
A note on names
AIM is the reference implementation and is converging on the spec vocabulary as the standards finalize (for example, the credential naming is aligning to ATX). AIM's own DID method isdid:aip:; did:opena2a is the Registry-anchored method defined by its W3C-filed spec. Treat the specs as the normative source; AIM as the place they run.The developer workflow
From a developer's seat, the whole stack collapses into install, one call, and one decorator. Everything else happens underneath.
- 11Install the SDK
Python (pip install aim-sdk), TypeScript (npm install @opena2a/aim-core), or Java (sdk/java in the AIM repo; Maven Central publication pending).
- 22Register the agent
secure("my-agent") generates an Ed25519 keypair, registers the public key, and returns an identity + DID. The private key stays local.
- 33Declare a capability
Wrap a function with @agent.perform_action(capability="db:read"). That declaration is what authorization checks against.
- 44Call, and get verified
On each call the SDK signs the request; the backend runs 5-step authorization before the function executes.
- 55Everything is logged
Outcome, trust-score update and audit entry are written automatically. Nothing extra to wire up.
from aim_sdk import secure
agent = secure("weather-agent") # identity + DID, one line
@agent.perform_action(capability="weather:fetch", risk_level="low")
def get_weather(city: str):
return requests.get(API, params={"q": city}).json()
get_weather("San Francisco")
# → request signed, 5-step authorization runs, action logged,
# trust score updated, all automatically5-step fine-grained authorization
This is AIM's implementation of AAP's enforcement, run on every action. Each step is fast and cheap; only the riskiest calls pay for the deepest check.
- 11 · CapabilityIs this capability declared?< 10ms
The agent must have declared the capability it is now invoking.
- 22 · AttributeAre the request attributes allowed?< 10ms
Fields, data classes and parameters checked against policy.
- 33 · ContextDo the contextual rules pass?< 10ms
Time, location, data sensitivity and similar conditions.
- 44 · ChainIs the delegation chain valid?< 10ms
For agent-to-agent calls: trust attenuates with each hop; depth is bounded.
- 55 · IntentWhat is the agent trying to do?high-risk
An intent classifier screens high-risk actions (exfiltration, privilege escalation) before they run.
Trust gates access
Each capability carries a minimum trust threshold, low-risk actions need little, critical ones (payments, PII) need a high score. Trust from AIP, carried by ATX, is what these gates read.What's in the box
- Backend, the registration, authorization, trust-scoring and audit services.
- SDKs, Python, Java and TypeScript, with auto-detection for popular agent frameworks.
- Dashboard, agents, trust-score breakdowns, alerts, audit log, policies and webhooks.
- Observability, OpenTelemetry traces over every authorization decision, plus SIEM adapters.
Two ways in
Start here is the five-minute tour; the layered stack explains why the order matters. For readers fluent in PKI, the web analogy maps every piece to something the web already uses.