Guide · KYC Verification

Unlock higher escrow limits with Xaman KYC

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.

One check, permanent status

KYC is a one-time process. Once your wallet is verified, the status is permanent — no repeated checks, no annual renewals.

Higher escrow limits

Unlock the ability to create escrows above the default $3,000 per-transaction cap, up to $10,000.

Trust score boost

KYC verification adds +10 points to your wallet's trust score — visible to any counterparty who checks it.

Agents inherit status

Any agent operating on behalf of your verified wallet inherits your KYC status automatically.

OFAC + identity combined

Adds government ID verification on top of the OFAC sanctions check that runs on every wallet by default.

Agents don't KYC — their operators do. KYC is a human identity process. The developer or organisation operating the agent completes verification once via Xaman, and all agents running from that wallet automatically operate at the higher limit.
How it works
1
Complete identity verification via Xaman KYC (powered by Veriff)
Xaman (the official XRPL wallet app) includes a built-in KYC flow powered by Veriff — tap the link below or open it directly inside the Xaman app.
Open Xaman and tap xaman.app/detect/xapp/xumm/kyc, or visit this link on your mobile device to launch the verification flow directly. Accepts passports, driving licences, and national ID cards. Once complete, your XRPL wallet address is marked as KYC-verified.
AgentTrust never sees or stores identity documents. All document handling is done by Xaman and Veriff. We query only your verification status via the authenticated Xaman platform API.
2
Register your verified status with AgentTrust
Once Xaman reports your wallet as KYC-approved, call POST /kyc/verify to cache the result. This is what unlocks higher limits immediately.
POST /kyc/verify — register Xaman KYC
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.

3
Check status at any time
Query the trust score endpoint to confirm your KYC status and see the impact on your score.
python — check KYC status
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
Once kyc_verified is True, retry POST /escrow/generate with your original payload — the $10,000 limit now applies automatically.
4
Hit the limit — get a clear error with next steps
If an escrow is attempted above the limit for an unverified wallet, the API returns a 403 with instructions.
API response — 403 KYC required
{
  "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."
}

Build KYC prompts into your agent flow

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.

python — agent-friendly KYC handling
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()
Resources
API Docs & Playground Compliance Roadmap All Guides