Skip to main content
Glama

Transfer token

transfer_asset
Destructive

Send a token (ERC-20 / SPL / jetton) from one of the user wallets to another address. This moves real funds and cannot be undone. Call it only when the user explicitly asked to send this exact amount of this asset from this wallet to this recipient on this network; never infer, round or top up any of these values. If anything is missing or ambiguous, ask the user instead of guessing. Returns the transaction hash and an explorer link (also as structuredContent).

Input Schema

NameRequiredDescriptionDefault
toYesRecipient address on the same network, exactly as the user gave it. If the user names a saved contact instead of an address, resolve it with address_book_list and confirm the address with the user first
fromYesSender: one of the user wallet addresses from wallet_list, of the type matching the network (evm / solana / ton)
assetYesToken contract / mint address on that network (not the symbol)
chainYesNetwork name: ethereum, optimism, bsc, gnosis, polygon, sonic, zksync, base, avalanche, arbitrum, scroll, solana, ton, hyperevm, plasma, monad, robinhood
amountYesAmount as an integer string in the smallest unit of the asset (wei, lamports, nanoton, token base units), e.g. "1000000000000000000" = 1 ETH (18 decimals); 1 USDC = "1000000" (6 decimals)
allBalanceNotrue = send the entire balance of the asset instead of amount. Only when the user explicitly asked to send everything.

Output Schema

NameRequiredDescriptionDefault
hashYesTransaction hash
linkYesBlock explorer link to the transaction

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, readOnlyHint=false, idempotentHint=false and openWorldHint=true, so the safety profile is covered structurally. The description reinforces this concretely ('moves real funds and cannot be undone') and adds an operational constraint (do not guess or round values) that annotations cannot express. It stops short of noting the non-idempotency implication of retrying a send, so it is not a full 5.

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, front-loaded with the action and its irreversibility, then the invocation conditions, then the return shape. No filler and no repetition of the schema.

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 6-parameter destructive transfer with full schema coverage and an output schema, the description supplies everything the schema and annotations cannot: irreversibility, the no-guessing policy, and the confirm-with-user fallback. Return values need not be explained since an output schema exists.

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 description coverage is 100%, so the baseline is 3 and the schema already documents each field including units and address resolution. The description adds genuine parameter-level value by forbidding inference, rounding, or topping up of amount/recipient/asset/chain, which is a semantic constraint the schema does not encode.

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 and resource (send a token, ERC-20/SPL/jetton, from a user wallet to another address), and the token scope implicitly distinguishes it from the sibling transfer_native. An agent can select between the two transfer tools 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 Guidelines5/5

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

Gives explicit when-to-use conditions ('only when the user explicitly asked to send this exact amount of this asset from this wallet to this recipient on this network') plus a when-not-to-act rule ('never infer, round or top up any of these values') and a fallback ('if anything is missing or ambiguous, ask the user'). This is exactly the routing and guardrail guidance an agent needs for a fund-moving tool.

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.