By default, AgentTrust enforces a per-escrow limit to keep the protocol open and frictionless. For larger transactions — high-value bug bounties, corporate settlements, M&A tranches — human operators complete a one-time identity check via Xaman. Verified status attaches to your XRPL wallet permanently and is inherited by any agents operating on your behalf.
KYC is a one-time process. Once your wallet is verified, the status is permanent — no repeated checks, no annual renewals.
Unlock the ability to create escrows above the default $3,000 per-transaction cap, up to $10,000.
KYC verification adds +10 points to your wallet's trust score — visible to any counterparty who checks it.
Any agent operating on behalf of your verified wallet inherits your KYC status automatically.
Adds government ID verification on top of the OFAC sanctions check that runs on every wallet by default.
POST /kyc/verify to cache the result. This is what unlocks higher limits immediately.import httpx
response = httpx.post(
"https://xrpl-referee.onrender.com/kyc/verify",
params={"wallet_address": "rYourXRPLWalletAddress"}
).json()
print(response["kyc_verified"]) # True if Xaman KYC is complete
print(response["method"]) # "xaman"
If kyc_verified is False, the response includes a link to the Xaman KYC flow (powered by Veriff) to complete verification first.
score = httpx.get(
"https://xrpl-referee.onrender.com/wallet/score/rYourWalletAddress"
).json()
print(score["signals"]["kyc_verified"]) # True once verified
print(score["signals"]["score_breakdown"]["agentrust_kyc"]) # +10 pts
print(score["score"]) # noticeably higher after KYC
kyc_verified is True, retry POST /escrow/generate with your original payload — the $10,000 limit now applies automatically.
403 with instructions.{
"error": "kyc_required",
"kyc_url": "/kyc/verify",
"message": "Escrow amount exceeds the $3,000 limit for unverified wallets.
Complete identity verification via Xaman to unlock escrows up to $10,000."
}
If your agent handles large escrows autonomously, catch the kyc_required
error and surface the verification steps to the human operator without breaking the agent loop.
response = httpx.post(
"https://xrpl-referee.onrender.com/escrow/generate",
json=escrow_payload
)
if response.status_code == 403:
data = response.json()
if data.get("error") == "kyc_required":
print("KYC required to create this escrow.")
print("1. Open https://xaman.app/detect/xapp/xumm/kyc → complete identity verification")
print("2. Run: POST /kyc/verify?wallet_address=YOUR_WALLET")
print("3. Re-run this task once verified.")
raise SystemExit(0)
escrow = response.json()