Skip to main content
Glama

write_wallet_upgrade_velo

Idempotent

Upgrade VELO held in a wallet on Optimism to the new AERO on Base: ordered unsigned wallet transactions from owner_address, an approve when the allowance is short, then depositLiquid on the Velodrome migration with the Hyperlane fee as value. 0.044 new AERO per VELO arrives at the same address on Base once the message lands. VELO inside an Arcadia account must be withdrawn to the wallet first (write_account_withdraw). VELO stays usable, so this is optional. Optimism (chain_id 10) only. 'upgrade unavailable' names the contract's reason: not_open (with the opening time), paused, budget_exhausted, recipient_not_deployed (a contract wallet with no code on Base).

Input Schema

NameRequiredDescriptionDefault
amountNoRaw units (18 decimals). Omit for the wallet's full VELO balance.
chain_idNoChain ID: 10 (Optimism)
owner_addressYesWallet holding the VELO on Optimism; receives the AERO on Base

Output Schema

NameRequiredDescriptionDefault
fee_weiYes
amount_inYes
new_tokenYes
old_tokenYes
recipientYes
descriptionYes
transactionsYes
expected_amount_outYes
destination_chain_idYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.8/5.0
Behavior5/5

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

Goes well beyond the annotations by disclosing that this returns ordered unsigned transactions (an approve only when the allowance is short, then depositLiquid with the Hyperlane fee as value), the 0.044 AERO-per-VELO rate, and that the AERO lands at the same address on Base. This is exactly the execution-model context annotations (readOnlyHint/idempotentHint) cannot convey.

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 action and follows with the transaction sequence, preconditions, and error taxonomy in a tight block. Density is high but every clause carries operational value; the error-reason enumeration is the only part that borders on long.

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?

An output schema exists, so return values need no explanation, and the description still covers the transaction shape, value/fee handling, chain restriction, account-vs-wallet precondition, and failure modes. Nothing an agent needs to invoke it correctly is missing.

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 3 is the baseline; the description adds real meaning on top by naming the conversion rate and confirming the AERO recipient address is the owner_address. It does not restate format details (raw 18-decimal units) but the schema already covers those.

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?

Names a specific verb+resource+chain pair: upgrade VELO on Optimism to AERO on Base via the Velodrome migration. It also distinguishes itself from the sibling write_account_aero_upgrade by stating that VELO inside an Arcadia account is not handled here.

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 preconditions and alternatives: use write_account_withdraw first if the VELO sits in an Arcadia account, the upgrade is optional because VELO stays usable, and it is Optimism (chain_id 10) only. It even decodes the 'upgrade unavailable' failure reasons so the agent knows when not to retry.

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.