Skip to main content
Glama

Hire and Pay

hire_and_pay

One-call shortcut to register an escrow vault AND get the ready-to-sign transaction.

This combines create_escrow_vault() + prepare_escrow() into a single call. The agent only needs to sign the returned transaction and confirm it — no manual XRPL transaction construction required.

Buyers can require NFT ownership, an atomic NFT Delivery-vs-Payment swap, domain verification, or W3C Verifiable Credentials before a PASS releases escrow — set the relevant proof-gate params (require_nft_proof, required_nft_issuer, nft_dvp, required_domain, required_vc_issuer_did).

White-label / headless integration:

  • Pass callback_url to receive webhook POSTs on all state changes.

  • Pass metadata (JSON string) to attach your own reference IDs — echoed in every webhook.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
taskYesDetailed description of what the worker must deliver. The AI referee evaluates against this — be precise.
nft_dvpNoAtomic NFT swap: worker must transfer a specific NFT to the buyer before payment releases. On PASS the vault enters PASS_AWAITING_NFT; worker registers their NFTokenCreateOffer and payment auto-releases when buyer accepts.
fee_hashNo64-char hex hash of your $0.10 payment to rmcSrkpZ2i2kuvtCPeTVetee9SixP4djR (XRP or RLUSD on XRPL) or USDC on Base (chain 8453, 0x-prefixed tx hash). Omit to use free tier (wallets created via create_agent_wallet get 3 free escrows).
metadataNoOptional JSON string of key/value pairs to attach to this escrow and echo back in every webhook payload. Use to round-trip your own reference numbers (invoice_id, po_number, tenant_id, order_ref, etc.). Example: '{"invoice_id": "INV-2026-0042"}'.
escrow_idYesUnique receipt code for this escrow, e.g. AT-7X9K-2MQ4. Must be unique.
amount_xrpYesAmount of XRP to lock in escrow as the bounty.
buyer_nameNoYour name or agent identifier.
callback_urlNoHTTPS endpoint on your server to receive webhook POST notifications on escrow state changes (funded, PASS, FAIL, expired). Use this for white-label integrations where you handle all user-facing surfaces yourself. Payload: {escrow_id, event, verdict, timestamp, metadata}.
proof_policyNoWhen multiple proof gates are set: 'ALL' (default) requires every gate to pass; 'ANY' requires at least one.ALL
buyer_addressYesYour XRPL wallet address (r...) — you are the buyer.
worker_addressYesXRPL address (r...) of the worker to hire directly. Get this from direct_hire() or award_job().
required_domainNoWorker must have their XRPL wallet domain field pointing to this domain. Pass 'ANY' to require any verified domain.
cancel_after_hrsNoHours until escrow auto-cancels if worker doesn't deliver. Default 168 = 7 days.
delegate_addressNoXLS-75 delegated agent XRPL address. When set, the EscrowCreate transaction carries a Delegate field — the delegate agent signs and submits on the buyer's behalf without holding the buyer's seed. The buyer must first submit a DelegateSet granting EscrowCreate permission to this address.
require_consensusNoRequire consensus between Gemini Flash AND Gemini Pro. Both must agree on PASS; split verdict returns conservative FAIL. Fee: $0.25 (vs $0.10 standard).
require_nft_proofNoWorker must own an NFT from any trusted issuer (or from required_nft_issuer if set) to receive payment.
required_nft_issuerNoRestrict NFT proof to NFTs minted by this XRPL wallet address.
required_vc_issuer_didNoWorker must present a W3C Verifiable Credential JWT issued by this DID.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

No schema history has been recorded yet.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the write/open-world/idempotent profile, so the bar is lower, and the description adds real context: escrow_id must be unique, the sign-and-confirm handoff, webhook events (funded, PASS, FAIL, expired) with payload shape, and metadata echo. It does not state whether funds are irreversibly locked or the consequences of expiry beyond the schema's auto-cancel field.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core value proposition, then segmented into proof-gate and white-label sections. Every sentence carries information, though the two sub-sections are slightly more verbose than strictly necessary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 18-param mutation tool with annotations and an output schema, the description covers the essential flows (escrow creation, proof gating, webhooks, delegation implied via schema). Missing only edge behavior such as failure modes or fee-hash/tier interaction, which the schema partially covers.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3; the description goes beyond it by grouping the five proof-gate params (require_nft_proof, required_nft_issuer, nft_dvp, required_domain, required_vc_issuer_did) as a coherent feature set and explaining callback_url/metadata intent. It adds conceptual grouping rather than per-param syntax, so not a 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('register an escrow vault AND get the ready-to-sign transaction') and explicitly positions itself as the combined shortcut over create_escrow_vault() + prepare_escrow(). An agent can distinguish it from those siblings without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Names the two sibling calls it replaces and describes the workflow ('only needs to sign the returned transaction and confirm it'), which is clear routing guidance. It lacks an explicit when-NOT-to-use condition (e.g., when you want to inspect the vault before preparing), so it falls short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.