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 Rightshold checked, how and when, and nothing more.
| Level | What was verified | At Rightshold |
|---|---|---|
| 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 Rightshold |
| 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 Rightshold |
| L5 Bonded | L4, plus collateral or cover posted against misconduct and slashable by arbitration award. | Defined by the standard; not issued by Rightshold |
Status is separate from level: an agent whose registration has expired, been suspended or been revoked fails every policy, whatever its level.
Check an agent in one call
curl -s https://www.rightshold.com/v1/kya/RS-XXXX-XXXX
curl -s https://www.rightshold.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.rightshold.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 Rightshold.
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.
