Every AgentTrust escrow has a release condition: the check that must pass before payment moves on-chain. You can use AI audit, proof gates, or both — and which combination is right depends entirely on what the deliverable is.
| Deliverable type | Mode | Config | Fee |
|---|---|---|---|
| Writing, code, analysis, translation — any qualitative work | AI only | require_ai_audit: true (default) |
$0.10 |
| Qualitative work where counterparty credentials also matter | AI + proof gates | require_ai_audit: true + one or more proof gate params |
$0.10 |
| High-stakes qualitative work needing an independent second opinion | AI consensus | require_consensus: true |
$0.25 |
| NFT trade, domain proof, or verifiable credential — fully machine-checkable | Proof gate only | require_ai_audit: false + at least one proof gate param |
$0.10 |
When the deliverable is qualitative — a piece of writing, a code review, a translation, a data analysis — payment should release when the work itself meets the spec, not when a binary on-chain condition is met. This is AI audit mode.
The worker submits their work against task_description. The AI referee scores it against 11 signals including task adherence, completeness, and accuracy. A PASS releases escrow automatically; a FAIL returns specific, actionable feedback in criteria_failed so the worker knows exactly what to fix before resubmitting.
Workers get 3 attempts by default. Buyers can raise this at creation via max_submissions (1–10) — each slot above 3 costs $0.05 extra at vault creation time. If the ceiling is reached mid-job, the worker can purchase one more attempt at a time for $0.05 via purchase_extra_attempt().
# MCP — hire_and_pay defaults to AI audit
hire_and_pay(
task="Write a 500-word product overview for our new escrow SDK...",
buyer_address="rBuyerXXX",
amount_xrp=8.0,
worker_address="rWorkerXXX",
escrow_id="AT-7X9K-2MQ4",
# require_ai_audit defaults to True — no need to set it explicitly
)
require_consensus: true. Gemini Flash evaluates first, then Gemini Pro independently reviews the same submission. Both must agree on PASS — a split verdict returns FAIL with feedback from both models. Fee: $0.25. Use for high-stakes jobs where a single model's error would be costly.Sometimes the work itself is qualitative, but you also need assurance about who did it. Proof gates and AI audit are not mutually exclusive — when both are set, all configured gates must pass and the AI verdict must be PASS before escrow releases.
Typical combinations:
required_domain to confirm the worker's XRPL wallet is linked to a registered domain, plus AI scoring of the deliverable.required_nft_issuer for membership or certification NFTs, so only holders of a specific badge are eligible to receive payment.# AI audit + VC credential requirement
create_escrow_vault(
task_description="Legal review of our smart contract terms...",
buyer_address="rBuyerXXX",
worker_address="rWorkerXXX",
amount_xrp=50.0,
escrow_id="AT-LEGAL-001",
require_ai_audit=True, # AI scores the deliverable
required_vc_issuer_did="did:web:lawsociety.org.uk", # worker must hold a VC from this issuer
required_vc_type="SolicitorsQualification",
)
"ALL" — every gate must pass. Set proof_policy: "ANY" to accept any single passing gate (useful when you want flexibility on which credential proves eligibility).For fully machine-verifiable deliverables, there is nothing for an AI to evaluate — the on-chain condition is the deliverable. Set require_ai_audit: false to skip the AI call entirely and release on cryptographic verification alone. This requires at least one proof gate to be configured.
require_nft_proof) — payment releases when the worker proves they hold an NFT from a trusted issuer. Use for access tokens, membership NFTs, or certification badges.nft_dvp: true) — atomic swap: worker transfers a specific NFT to the buyer's wallet; payment releases only when the transfer is confirmed on XRPL. Use for NFT sales.required_domain) — payment releases when the worker's XRPL wallet is linked to a specific domain via xrp-ledger.toml. Use for B2B jobs where the counterparty must be a verified organisation.required_vc_issuer_did) — payment releases on a valid W3C VC JWT from the specified issuer. Use for regulated contexts where credential presentation is the entire deliverable.# Domain-only: pay when the worker proves they control a specific domain
create_escrow_vault(
task_description="Register our brand as a verified XRPL domain issuer",
buyer_address="rBuyerXXX",
worker_address="rWorkerXXX",
amount_xrp=20.0,
escrow_id="AT-DOMAIN-002",
require_ai_audit=False, # no AI call needed
required_domain="acme-corp.com", # must have xrp-ledger.toml linking their wallet
)
# NFT DvP: atomic swap — NFT goes to buyer, XRP goes to seller
create_escrow_vault(
task_description="Transfer NFT token AT-TIGER-7X to buyer on delivery",
buyer_address="rBuyerXXX",
worker_address="rSellerXXX",
amount_xrp=120.0,
escrow_id="AT-DVP-003",
require_ai_audit=False,
nft_dvp=True, # seller must transfer the NFT before payment releases
required_nft_issuer="rIssuerWalletXXX", # restrict to NFTs from this issuer
)
PASS_AWAITING_NFT status. The seller must then register their NFTokenCreateOffer (Destination=buyer, Amount=0) via POST /escrow/{id}/nft-offer or the register_nft_dvp_offer() MCP tool. Payment releases automatically once the buyer accepts the offer on XRPL. See the NFT DvP guide →All params apply to both create_escrow_vault() and hire_and_pay().
| Parameter | Default | Purpose |
|---|---|---|
| require_ai_audit | true | Set false to skip AI entirely and release on proof gates alone. Requires at least one proof gate. |
| require_consensus | false | Premium audit: Gemini Flash + Pro must both agree on PASS. Fee $0.25. Only applies when require_ai_audit is true. |
| require_nft_proof | false | Worker must own an NFT from any trusted issuer. Combine with required_nft_issuer to restrict to a specific issuer wallet. |
| required_nft_issuer | — | XRPL wallet address of the NFT issuer. Also implicitly sets require_nft_proof. |
| nft_dvp | false | Atomic NFT swap. PASS sets status to PASS_AWAITING_NFT — seller must register an NFT offer; payment releases on buyer acceptance. |
| required_domain | — | Worker's XRPL wallet must have this domain in its Domain field, verified via xrp-ledger.toml. Pass "ANY" to require any verified domain. |
| required_vc_issuer_did | — | Worker must present a W3C VC JWT from this DID (e.g. did:web:issuer.example.com). |
| required_vc_type | — | Credential type required alongside required_vc_issuer_did (e.g. "CertifiedDeveloper"). |
| proof_policy | "ALL" | When multiple gates are set: "ALL" requires every gate to pass; "ANY" requires at least one. |
| max_submissions | 3 | Attempts allowed before the vault locks. Range 1–10. Slots 1–3 are included in the $0.10 creation fee; each slot above 3 costs $0.05 extra at creation time. Workers can also buy additional attempts on demand via purchase_extra_attempt() at $0.05 each. |
tools/list schema for create_escrow_vault and hire_and_pay. Run assess_counterparty_and_job(worker_address, job_type, amount_xrp) first — it returns recommended release conditions for the job type automatically.