Guide · Identity Verification

Unlock higher escrow limits with identity verification

By default, AgentTrust enforces a $3,000 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 Didit ($0.50 fee). 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
Pay the $0.50 verification fee
Send $0.50 in XRP, RLUSD (XRPL), or USDC (Base chain 8453) to the fee address. Call GET /fees for current amounts and addresses.
This is a one-time fee. Once your wallet is KYC-verified, the status is permanent — no repeated checks, no renewals. The fee covers Didit's identity verification cost.
2
Start the verification session
Call POST /kyc/start with your wallet address and fee hash. Returns a verification_url — open it to complete ID verification with Didit.
python — start KYC session
import httpx

response = httpx.post(
    "https://mcp.cryptovault.co.uk/kyc/start",
    params={
        "wallet_address": "rYourXRPLWalletAddress",
        "fee_hash":       "your_tx_hash_here",
    }
).json()

print(response["verification_url"])  # open this in a browser to complete ID check
print(response["status"])            # "pending"
AgentTrust never sees or stores identity documents. All document handling is done by Didit. We receive only your verification status via a signed webhook.
3
Complete ID verification with Didit
Open the verification_url in a browser and follow Didit's flow. Accepts passports, driving licences, and national ID cards. Takes 2–5 minutes.
AgentTrust is notified automatically when Didit approves you. Your wallet is upgraded to the $10,000 escrow cap immediately — no further action needed.
4
Confirm status and retry your escrow
Check your verification status, then retry the escrow that was blocked.
python — check status and retry
status = httpx.get(
    "https://mcp.cryptovault.co.uk/kyc/status/rYourWalletAddress"
).json()

print(status["kyc_verified"])  # True once Didit approves
print(status["method"])        # "didit"

score = httpx.get(
    "https://mcp.cryptovault.co.uk/wallet/score/rYourWalletAddress"
).json()
print(score["signals"]["score_breakdown"]["identity_kyc"])  # +10 pts
Once kyc_verified is True, retry POST /escrow/generate — the $10,000 limit applies automatically.

Handle the KYC gate in your agent flow

When your agent hits the $3,000 cap, catch the kyc_required error and surface the verification URL to the human operator.

python — agent-friendly KYC handling
response = httpx.post(
    "https://mcp.cryptovault.co.uk/escrow/generate",
    json=escrow_payload
)

if response.status_code == 403:
    data = response.json()
    if data.get("error") == "kyc_required":
        # Start a KYC session — fee_hash from a $0.50 payment
        kyc = httpx.post(
            "https://mcp.cryptovault.co.uk/kyc/start",
            params={"wallet_address": WALLET, "fee_hash": fee_hash}
        ).json()
        print("Identity verification required.")
        print(f"Open this URL to verify: {kyc['verification_url']}")
        print("Re-run this task once approved (check /kyc/status).")
        raise SystemExit(0)

escrow = response.json()
Resources
API Docs & Playground Compliance Roadmap All Guides