Skip to main content
Glama

xRoot token operations

build_request

Build the unsigned Solana transaction for an operation. Returns a base64-encoded transaction whose fee payer is the given wallet address, plus the requestId to pass to submit_transaction after signing locally. The prepared transaction expires with its blockhash.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
addressYesThe agent's own Solana wallet address (base58) — becomes the fee payer and token owner. Must sign the returned transaction.
requestYesThe operation intent — same shape the browser flow sends (chain, then service, then the service's fields).
requestIdNoOptional idempotency key (req_…). Generated when omitted; reuse it to re-prepare without creating duplicates.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / request / properties / options / description
      Previous value: -"Service options, keyed by service. spl-token and token-2022 (optional, may be omitted): transferTaxBps, transferTaxMaxFee, permanentDelegate, freezeAuthority. authority-tools (REQUIRED): revokeMint, revokeFreeze, revokeUpdate as booleans — all three must be present, at least one true; optional revokePermanentDelegate, revokeTransferFee, revokeWithheldWithdraw, revokeTransferHook, revokePause. airdrop (REQUIRED): recipients, a list of {address, amount} with amount as a decimal string in whole tokens, the same unit as supply — the mint's decimals are applied at prepare time. update-metadata (REQUIRED, at least one): name, symbol, metadataUri."New value: +"Service options, keyed by service. spl-token and token-2022 (optional, may be omitted): transferTaxBps, transferTaxMaxFee, permanentDelegate, freezeAuthority. authority-tools (REQUIRED): revokeMint, revokeFreeze, revokeUpdate as booleans — all three must be present, at least one true; optional revokePermanentDelegate, revokeTransferFee, revokeWithheldWithdraw, revokeTransferHook, revokePause. airdrop (REQUIRED): recipients, a list of {address, amount} — at most 20 recipients per transaction — with amount as a decimal string in whole tokens, the same unit as supply; the mint's decimals are applied at prepare time. update-metadata (REQUIRED, at least one): name, symbol, metadataUri."
    • changedInput schema / properties / request / properties / token / properties / supply / description
      Previous value: -"Total supply as a decimal string in base units, e.g. \"1000000000\" for 1B tokens."New value: +"Total supply in whole tokens as a decimal string, e.g. \"1000000000\" for 1B tokens — the mint's decimals are applied at prepare time."
  2. First observed

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries full behavioral burden. It discloses that the transaction is unsigned, who the fee payer is, the output format, and the expiry consequence of blockhash reuse. It does not explicitly say 'this tool does not submit the transaction', but 'unsigned' and 'after signing locally' make that clear. It also omits server-side persistence/idempotency details, which are only in the schema.

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

Conciseness5/5

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

Three sentences, each purposeful and front-loaded: first states the action, second states the outputs and workflow, third states expiry. No filler, no duplication of schema content. It is optimally sized for an agent to absorb quickly.

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?

The request object is complex with multiple services and options, but the schema thoroughly documents every field. The description supplies the missing workflow glue: output shape, local signing requirement, requestId handoff, and time sensitivity. Minor gap: it doesn't note that this tool itself has no on-chain side effects, but 'unsigned' and 'build' imply that. Overall adequate for a tool of this complexity.

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 coverage is 100%, so the baseline is 3. The tool description adds little beyond the schema: it merely reinforces that the address becomes fee payer and requestId feeds into submit_transaction. All required field meanings are already in the schema; description doesn't need to compensate.

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 ('build'), a clear resource ('unsigned Solana transaction'), and the primary output (base64-encoded transaction). It explicitly names submit_transaction as the next step, distinguishing this preparation tool from its sibling without ambiguity. No tautology and no confusion about what the tool does.

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?

The description explains the intended workflow: call this tool to prepare, sign locally, then pass requestId to submit_transaction. It also warns the transaction expires with its blockhash, implying it should be used promptly. It does not explicitly contrast against get_fee_estimate or list when not to use, but the flow is clear enough.

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