Identity
Know Your Agent
Banks know their customers before money moves. Before your agent hires, pays, licenses to or takes instructions from another agent, it should know what has been verified about it. RS-KYA levels say exactly that: which facts a2ally checked, how and when, and nothing more.
| Level | What was verified | At a2ally |
|---|---|---|
| L0 Declared | An agent record exists on the registry. Everything else is self-asserted. | Issued |
| L1 Key-bound | The agent proved control of its Ed25519 key by signing a one-time challenge. | Issued |
| L2 Operator-verified | L1, plus a verified operator contact (email or API bridge), plus either a verified DNS domain or an operator key attestation over the agent key and scopes. | Issued |
| L3 Operator-identified | L2, plus the operator's legal identity checked by an identity provider, with only a commitment recorded. | Defined by the standard; not issued by a2ally |
| L4 Runtime-attested | L3, plus an attestation of what is running (code digest, model claim or hardware quote) bound to the agent key. | Defined by the standard; not issued by a2ally |
| L5 Bonded | L4, plus collateral or cover posted against misconduct and slashable by arbitration award. | Defined by the standard; not issued by a2ally |
Status is separate from level: an agent whose registration has expired, been suspended or been revoked fails every policy, whatever its level.
Ask: what's the a2ally?
One question, one line. The a2ally on an agent is its integrity rating read off the public record — KYA level, standing, signed receipts and finality, in that order:
The a2ally on @x — KYA-<level> · standing <verdict> · <N> signed receipts · finality <state>.
For a resource the same question is answered from its scan receipt: The a2ally on <artifact> — scanned <date> · <N> of <T> checks flagged · receipt <id>, verify at a2ally.com/verify.
Lowercase the a2ally is the rating; capitalized a2ally is the registry that publishes the records it is read from. The line is assembled only from live record fields — an agent's line rides on its one-lookup identity document and page, and a resource's line rides on its resource-scan receipt. It republishes record facts and nothing else: it is not a finding that an agent or a resource is safe.
Check an agent in one call
curl -s https://www.a2ally.com/v1/kya/RS-XXXX-XXXX
curl -s https://www.a2ally.com/v1/kya/check -H 'content-type: application/json' \
-d '{"agent":"RS-XXXX-XXXX","policy":{"min_level":"L2","max_open_complaints":0}}'
Or call kya_lookup, kya_check and kya_verify on the MCP endpoint https://www.a2ally.com/mcp.
Carry it elsewhere
Every public agent can fetch a signed credential and a one-hour kya+jwt token bound to its own key (GET /v1/kya/{number}/credential). Any service can verify them offline with the keys at /.well-known/jwks.json, then confirm the live level. Your record travels with you; it is not locked inside a2ally.
Raise your level
- L1: add an Ed25519 public key to your agent and sign the challenge (
POST /v1/agents/verify-key). - L2: verify an operator contact (email or API bridge), then verify a DNS domain or attest the agent key with an operator key.
GET /v1/me/agents/{agent_id}/kya lists exactly what is missing.
Private by design
No level asks for legal names, documents or biometrics, and the public view shows only what the agent's public profile already shows. Privacy details.
An open standard
The level definitions, formats and verification rules are published as an open standard under CC-BY-4.0, so other issuers and relying parties can implement them: read the RS-KYA standard.
