Skip to main content
Glama

SwapEazi

Prepare a stablecoin payment within the rules

prepare_payment

Prepare an unsigned USDC or USDT transaction for the paying wallet you control, on Base, Arbitrum, Optimism, Polygon or BNB Chain, or USDT (TRC-20) on Tron (chain_id 728126428, T... addresses; TronLink signs it). SwapEazi screens the recipient's address and verifies the organisation's spend profile first: the cap per payment, the daily and monthly budget, approved recipients and chains, and the approval line. A person approves every payment an agent prepares: within the rules it returns an approval_id, the approver decides at /approvals, and once approved payment_controls with that approval_id returns the transaction (a plain transfer, or a swap or bridge with no SwapEazi fee) for your wallet to sign; outside the rules it explains why. Pass the map_id and candidate_id of the stablecoin option you took from discover_payment or map_options, so the approver sees what the guide showed for it and the records name the map; the guide never picks it. SwapEazi never signs, holds keys or moves funds. With private: true, the payment runs through NEAR Intents' confidential mode under the same rules; that is also the way between Tron and an EVM chain. With profile_id, needs the organisation's key.

Input Schema

NameRequiredDescriptionDefault
toYesThe recipient's address on the chain it receives on (0x, or T... on Tron), or your own deposit address at an off-ramp.
fromYesThe paying wallet's address: 0x on EVM chains, T... (base58check) on Tron.
rulesNoInline rules when no profile is used: max_per_payment_usd, approval_above_usd, daily_limit_usd, monthly_limit_usd, allowed_recipients, allowed_chains.
tokenYesThe stablecoin paid from the wallet: USDC or USDT.
amountYesAmount to pay, in token units (1 = one USDC or USDT), greater than zero.
map_idNoThe map_id from discover_payment or map_options. The map must not have expired.
privateNoPay privately through NEAR Intents' confidential mode: one transfer to a deposit address for your wallet to sign; settles in full or refunds to your wallet. The quote's signature and correlation id go into the signed record. Read progress with private_payment_status.
chain_idYes8453 Base, 42161 Arbitrum, 10 Optimism, 137 Polygon, 56 BNB Chain, 728126428 Tron (USDT only).
to_tokenNoOptional. The stablecoin the recipient receives, when it differs from token: USDC or USDT.
profile_idNoprof_… from payment_controls; applies the organisation's budgets and approval line.
to_chain_idNoThe chain the recipient receives on, when it differs from chain_id. To or from Tron (728126428) needs private: true.
candidate_idNoThe stablecoin candidate in that map this payment takes. Bank candidates are sent by your bank or provider, not prepared here.
destination_currencyNoThe local currency the money is for, so local stablecoin rules are assessed, e.g. ZAR.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • addedInput schema / properties / amount / description
      Added value: +"Amount to pay, in token units (1 = one USDC or USDT), greater than zero."
    • addedInput schema / properties / to_token / description
      Added value: +"Optional. The stablecoin the recipient receives, when it differs from token: USDC or USDT."
    • addedInput schema / properties / token / description
      Added value: +"The stablecoin paid from the wallet: USDC or USDT."
  2. First observed

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the annotations (readOnlyHint=false, destructiveHint=false, openWorldHint=true, idempotentHint=false) the description discloses the real behavioural contract: recipient screening and spend-profile verification happen first, a human approves at /approvals, only then does payment_controls return a signable transaction. It also rules out side effects explicitly (never signs, holds keys or moves funds), explains the private/NEAR Intents path with settle-in-full-or-refund semantics, and notes profile_id requires the organisation's key.

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

Conciseness3/5

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

Purpose is front-loaded in the first clause, but the opening sentence is overloaded with a full chain roster that the chain_id schema already enumerates, and the remaining sentences are long and clause-dense. Most content earns its place, yet the chain list and chain_id repetition could be trimmed without losing meaning.

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

Completeness5/5

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

For a 13-parameter mutation with a nested rules object and no output schema, the description covers the full lifecycle: inputs (map/candidate provenance, profile vs inline rules), gatekeeping (caps, budgets, recipients, approval line), and the return (approval_id plus how to redeem it via payment_controls). An agent has everything needed to call it and interpret the result.

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 earns one more by adding meaning the schema does not carry — that map_id/candidate_id must be the option actually taken and why (the approver sees what the guide showed, and records name the map), and that profile_id requires the organisation's key. The chain and token enumerations largely restate schema content, so it does not go further.

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?

The description opens with a specific verb and resource: prepare an unsigned USDC/USDT transaction for a wallet the caller controls, and enumerates the exact chains (Base, Arbitrum, Optimism, Polygon, BNB Chain, Tron USDT/TRC-20 with chain_id 728126428). It names the upstream siblings it depends on (discover_payment, map_options) and the downstream one (payment_controls), so an agent can place it in the workflow without opening another 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?

It states clearly when this is the right call — you have a map_id and candidate_id from discover_payment or map_options, and you need an approval_id before a transaction is released — and what happens when the payment falls outside the rules (it explains why). The notable gap is that it never differentiates itself from the near-name sibling prepare_payment_instruction (or submit_payment/run_payments), leaving the agent to infer which of those preparation paths applies.

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.

Resources