Skip to main content
Glama

Prepare Escrow Transaction

prepare_escrow
Idempotent

Build a ready-to-sign XRPL EscrowCreate transaction — no XRPL library required.

Instructions

Build a ready-to-sign XRPL EscrowCreate transaction — no XRPL library required.

Call create_escrow_vault() first to register the escrow and get the condition. Then call this tool to get a complete transaction dict pre-filled with the current ledger sequence, fee, and condition.

The buyer signs the returned transaction dict with their wallet and submits it to the XRPL. Then call confirm_escrow_transaction() with the tx hash.

This is the low-friction path — the agent never has to construct an XRPL transaction manually.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
currencyNoCurrency to lock. "XRP" or "RLUSD".XRP
escrow_idYesThe receipt code from create_escrow_vault().
amount_xrpNoAmount of XRP to lock. Required for XRP escrow.
buyer_addressYesXRPL address (r...) of the buyer who will sign the EscrowCreate.
worker_addressYesXRPL address (r...) of the worker who will receive payment on approval.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changedv3.1.0
    • addedInput schema / properties / amount_xrp / title
      Added value: +"XRP Amount"
    • addedInput schema / properties / buyer_address / title
      Added value: +"Buyer XRPL Address"
    • addedInput schema / properties / escrow_id / title
      Added value: +"Escrow ID"
    • addedInput schema / properties / worker_address / title
      Added value: +"Worker XRPL Address"
  2. First observedv0.1.0

TDQS

A4.1/5.0
Behavior4/5

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

Annotations cover the safety profile (readOnlyHint=false, idempotentHint=true, destructiveHint=false), and the description adds useful context beyond them: the output is a pre-filled transaction dict with ledger sequence, fee, and condition, and it clarifies that the buyer signs and submits outside this tool. It omits permission/auth requirements, so not a 5.

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-loads the core purpose, then gives the call sequence in short, purposeful sentences. Slightly long but nearly every sentence carries procedural information an agent needs.

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?

Output schema exists so return-value detail isn't required, yet the description still explains the return dict and the end-to-end sign/submit workflow, making it callable with minimal ambiguity. Missing only auth/permission notes.

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

Parameters3/5

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

Schema description coverage is 100%, so parameters like escrow_id, amount_xrp, and the addresses are already documented. The description only alludes to the condition and pre-filled fields without mapping them to specific inputs, so baseline 3 is appropriate.

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

Purpose4/5

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

States a concrete verb and resource: 'Build a ready-to-sign XRPL EscrowCreate transaction.' It places itself in a workflow relative to create_escrow_vault and confirm_escrow_transaction, which distinguishes it from siblings. It doesn't explicitly name a sibling it replaces, so it stops short of a 5.

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

Usage Guidelines5/5

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

Explicit prerequisite ('Call create_escrow_vault() first'), explicit follow-up ('Then call confirm_escrow_transaction() with the tx hash'), and a stated position ('the low-friction path'). The when-to-use sequence is fully spelled out, leaving nothing to inference.

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