Skip to content
Oris Docs

KYA — Know Your Agent

LIVE

KYA is the identity hierarchy that gates every Oris payment. Five levels. Agents enter at L0 with zero spending rights and climb only through verifiable attestations.

The five levels

LevelBound toUnlocks
L0 RegisteredAnonymous registrationNo payments. Read only.
L1 VerifiedDeveloper KYB attestationLow caps, single chain, basic payments.
L2 TrustedUser delegation signatureHigher caps, multi-chain, marketplace.
L3 Autonomous30 days clean behavior + Veris baselineFull autonomy within policy.
L4 InstitutionalCompliance officer reviewTreasury scale, regulator portal, dedicated liability.

L4 is enterprise-only. See KYA requirements for the attestation evidence each level demands.

Why five levels

The five-level ladder is the regulator answer to “who authorized this payment?”. Every level carries cryptographic evidence:

  • L1 is a signed KYB attestation from the developer.
  • L2 is an Ed25519 delegation from a verified human principal.
  • L3 is a behavioral baseline signed by the Veris MPC ring after 30 days of clean activity.
  • L4 is an offline contractual review.

Higher levels open more, but they also raise the bar on the disclosure path. An L4 agent’s transactions always pipe to the regulator portal under SAR rules.

Drift demotion

L3 promotion is automatic; demotion is automatic too. The Veris drift score (see L3 Veris) feeds back into the KYA ladder. If drift exceeds the policy threshold, the agent demotes one level on the next evaluation cycle.

The demotion blocks in-flight payments mid-stream. There is no human-in-the-loop delay. The webhook fires on the same evaluation that detected the anomaly.

SDK methods

# Create an agent (starts at L0)
agent = client.agents.create(name="procurement-bot", description="...")
# Promote to L1 with developer KYB attestation
client.agents.promote(agent.id, target_level=1, attestation="kyb_dev")
# Promote to L2 with user delegation
client.agents.promote(agent.id, target_level=2, attestation="user_delegation_signed_hex")
# Read current level
a = client.agents.get(agent.id)
print(a.kya_level) # 2
print(a.kya_status) # "trusted"
print(a.drift_score_bp) # 80

How KYA differs from KYC

KYCKYA
SubjectHuman identityAgent behavior
VerificationOne-time at onboardingContinuous, every transaction
OutputStatic approvalDynamic trust score
EvidenceGovernment ID, selfieKYB attestation, user delegation, behavioral baseline
DriftManual reviewAutomatic demotion

KYC happens once and persists. KYA is recomputed on every payment.

Where to go next