Initia MCP
OfficialThe Initia MCP server provides a comprehensive interface for interacting with the Initia blockchain ecosystem, enabling queries, asset management, and transactions across Initia L1 and L2 rollups (MiniEVM, MiniMove, MiniWasm).
Chain & Account
List supported chains and their capabilities (VM type, features, endpoints)
Get account info, balances, and aggregated portfolio across chains
Validate/convert between bech32 and hex addresses
Get staking delegations, rewards, and unbonding entries
Simulate transactions, estimate gas, and get block headers
Token & Denom
Search tokens by symbol, list registered tokens, get metadata (name, symbol, decimals)
Get balances for native, ERC20, CW20, or Move FA tokens
Format raw amounts and classify denomination types
Transactions
Fetch transactions by hash with VM-aware decoding
Search transactions using CometBFT query syntax
Get recent transactions for an address
Validators, Staking & Governance
List/inspect validators, get staking pool info and annual provisions
Delegate, undelegate, redelegate tokens, and claim staking rewards
List, view, and vote on governance proposals
Bridging & IBC
Find optimal cross-chain routes, execute transfers, and track status
Deposit/withdraw via OPInit bridge (L1↔L2); list bridges, token pairs, and bridgeable chains
List IBC channels, compute IBC denom hashes, and send IBC transfers
Move VM
List modules, get ABIs, query resources and table entries
Call view functions, execute entry functions, publish modules, run scripts
Query DEX liquidity pool pairs, convert denoms/metadata, encode/decode BCS
EVM (MiniEVM chains)
Call contract functions (read-only or state-changing), deploy contracts
Query event logs, receipts, blocks, bytecode, and storage slots
Decode revert reasons and event logs with ABI
CosmWasm (MiniWasm chains)
Query and execute smart contracts; upload, instantiate, migrate, manage admins
Get contract/code metadata, list contracts by code ID, view migration history and raw state
VIP (Lock-Staking & Gauge Voting)
Query VIP stage info, positions, voting power, vesting schedules, and claimable rewards
Lock-delegate, undelegate, redelegate tokens, extend lock durations
Vote on gauge weight distribution, claim VIP and staking rewards
Provide liquidity (pair or stableswap) and lock-delegate LP tokens in one transaction
Username (.init Names)
Resolve .init names to addresses and vice versa
Get username records, NFT metadata, and check availability
Bank
Send tokens to one or more recipients (batch sends supported)
Event Parsing
Parse Cosmos, Move, and CosmWasm events from transactions
Ledger Hardware Wallet
Check device connection status and verify addresses on the device
Provides a comprehensive set of EVM-compatible tools for interacting with Initia L2 rollups (MiniEVM), including contract deployment, function execution, event log querying, and transaction management.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Initia MCPshow me my total portfolio balance across all Initia chains"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@initia/mcp
MCP server and CLI for the Initia blockchain ecosystem. Tools for querying chain state, managing assets, and executing transactions across Initia L1 and L2 rollups (MiniEVM, MiniMove, MiniWasm).
Two interfaces, one codebase:
@initia/mcp— MCP server (stdio transport, for Claude Desktop / LLM agents)initctl— CLI (for humans and scripts)
Quick Start
npm install
npm run buildCLI (initctl)
# Global install
npm install -g .
initctl chain list
# Or run directly without global install
node dist/cli.js chain list
# Or via npx (after npm install)
npx initctl chain listClaude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"initia": {
"command": "npx",
"args": ["-y", "@initia/mcp"],
// optional — see Environment Variables below
"env": {
"INITIA_KEY": "your mnemonic words ...",
"INITIA_NETWORK": "mainnet"
}
}
}
}Claude Code
claude mcp add initia -s user -- npx -y @initia/mcp
# optional — see Environment Variables below
claude mcp add initia -s user \
-e INITIA_KEY="your mnemonic words ..." \
-e INITIA_NETWORK=mainnet \
-- npx -y @initia/mcpCodex
Add to codex.json (or pass via codex --mcp-config codex.json):
{
"mcpServers": {
"initia": {
"command": "npx",
"args": ["-y", "@initia/mcp"],
// optional — see Environment Variables below
"env": {
"INITIA_KEY": "your mnemonic words ...",
"INITIA_NETWORK": "mainnet"
}
}
}
}Gemini CLI
Add to .gemini/settings.json:
{
"mcpServers": {
"initia": {
"command": "npx",
"args": ["-y", "@initia/mcp"],
// optional — see Environment Variables below
"env": {
"INITIA_KEY": "your mnemonic words ...",
"INITIA_NETWORK": "mainnet"
}
}
}
}CLI
# Query
initctl chain list
initctl token search --symbol USDC
initctl move view --module-address 0x1 --module-name coin --function-name balance --args '["0x1"]'
# Transaction (interactive confirm)
initctl bank send --to init1abc... --amount 1000000 --denom uinit
# Transaction (skip confirm)
initctl bank send --to init1abc... --amount 1000000 --denom uinit --yes
# JSON output (for scripts)
initctl token search --symbol INIT --json
# Shell completion
eval "$(initctl completion bash)" # bash
eval "$(initctl completion zsh)" # zsh
initctl completion fish | source # fishEnvironment Variables
Variable | Required | Default | Description |
| No | — | Mnemonic (12/24 words), hex private key ( |
| No |
| HD derivation index (for mnemonic/ledger) |
| No |
| Ledger app: |
| No |
|
|
| No |
| Skip the server-side confirm gate for mutations (MCP only). See Security & Approvals. |
| No |
|
|
| No |
| Use Scan API for enhanced chain data |
Without a signer key, read-only tools still work. Mutation tools return SIGNER_REQUIRED.
Related MCP server: Somnia MCP Server
Security & Approvals
This server can sign and broadcast real transactions. Approvals happen in two independent layers:
MCP client approval (primary). Your MCP client — Claude Code, Codex, Claude Desktop, Gemini CLI — decides whether each tool call runs, normally by prompting you. This is the human gate. The server cannot force it, and a client configured to auto-approve (e.g. "always allow") will not prompt. Treat this as your main safety control.
Server confirm gate (secondary). Every mutation tool takes a
confirmflag (defaultfalse). Without it the tool only simulates and returns the estimated gas and decoded messages; it broadcasts only when called again withconfirm: true. Because the agent suppliesconfirm, this guards against accidental one-shot broadcasts — it is not a substitute for human approval on its own.
AUTO_CONFIRM=true removes layer 2 for mutations. Combined with a client set to auto-approve the tool, this enables fully unattended signing and broadcasting. Use it only on testnet or with low-value keys.
wasm_migrate,wasm_update_admin, andwasm_clear_adminare treated as destructive and always require explicitconfirm: true, even whenAUTO_CONFIRM=true. Every other mutation tool —bank_send,evm_send, bridges, contract deploy/execute (wasm_*,move_*,evm_deploy),governance_vote,staking_manage,ibc_transfer,feegrant_*, and the VIP tools — is not in this exception: withAUTO_CONFIRM=truethey broadcast automatically.All state-changing tools are annotated
destructiveHint: trueso clients that surface this hint can warn before running them. Note this MCP annotation is independent of theAUTO_CONFIRMbypass above: a tool can bedestructiveHint: trueand still auto-broadcast underAUTO_CONFIRM(only the three wasm admin tools are gated server-side).INITIA_NETWORKdefaults tomainnet— setINITIA_NETWORK=testnetfor experimentation.
Key handling. INITIA_KEY is read from the environment and the raw mnemonic/private key is discarded after key derivation at startup. For mainnet or high-value keys prefer a Ledger (INITIA_KEY="ledger"): it adds a hardware confirmation that no software setting — including AUTO_CONFIRM — can bypass. Ledger signing can still time out after 90s even if the transaction was broadcast; check your account or a block explorer before retrying to avoid duplicate spends.
Tools (107)
Chain & Account (10)
Tool | Description |
| List all supported chains (L1 + L2 rollups) |
| Get chain VM type, features, and endpoints |
| Current on-chain gas prices (L1 or L2) |
| Account info and balances |
| Aggregated balances across all chains |
| Validate bech32 or EVM address format |
| Convert between bech32 and hex |
| Staking delegations, rewards, and unbonding |
| Pending staking rewards across validators |
| Simulate a transaction and estimate gas |
Token & Denom (7)
Tool | Description |
| Search tokens by symbol across all chains |
| List registered tokens on a chain |
| Token metadata (name, symbol, decimals) for any type |
| Token balance for native, ERC20, CW20, or Move FA |
| Format raw amount with decimals |
| Classify denomination type (native, ibc, evm, etc.) |
| On-chain bank module metadata |
Transaction (3)
Tool | Description |
| Get transaction by hash with VM-aware decoding |
| Search transactions (CometBFT query syntax) |
| Recent transactions for an address |
Validator & Staking (7)
Tool | Description |
| List validators with status and voting power |
| Detailed validator information |
| Network bonded/unbonded token totals |
| Current annual token provisions (inflation) |
| Delegate, undelegate, redelegate, or claim rewards |
| Vote on a governance proposal |
| List or get governance proposals |
Bridge (14)
Tool | Description |
| Find optimal cross-chain transfer route |
| Execute a cross-chain transfer via router |
| Track cross-chain transfer progress |
| List bridgeable L2 chains |
| List assets available for routing |
| Direct L1↔L2 OPInit deposit/withdraw |
| Query withdrawal status |
| OPInit bridge configuration |
| L1↔L2 token pair mappings |
| Token pair lookup |
IBC (3)
Tool | Description |
| List IBC channels or find channel between two chains |
| Compute IBC denomination hash from path |
| Send tokens via IBC |
Username (4)
Tool | Description |
| Resolve .init names ↔ addresses |
| Full .init username record |
| NFT metadata for .init username |
| Check username availability |
Move VM (14)
Tool | Description |
| List modules deployed at an address |
| Get module ABI (functions, structs) |
| List resources held by an address |
| Query a specific resource |
| Call a view function (read-only) |
| Execute an entry function |
| Deploy module or run script |
| Query a table entry |
| List DEX liquidity pool pairs |
| Denom ↔ metadata conversion |
| BCS serialization utilities |
EVM (10)
Tool | Description |
| Call a contract function (read-only) |
| Send a state-changing transaction |
| Deploy a contract |
| Query event logs |
| Get transaction receipt |
| Get block information |
| Get contract bytecode (Minievm only) |
| Read storage slot (Minievm only) |
| Decode revert reason |
| Decode event logs with ABI |
CosmWasm (12)
Tool | Description |
| Query a smart contract |
| Execute a smart contract function |
| Upload contract bytecode |
| Instantiate a contract |
| Migrate to a new code ID |
| Admin management |
| Contract/code metadata |
| List contracts from a code ID |
| Migration history |
| Raw key-value state |
VIP (16)
Tool | Description |
| Current VIP stage and timing |
| Lock-staking positions |
| Gauge voting power |
| Vesting schedules with reward breakdowns |
| Vote allocations per bridge |
| Claimable VIP rewards |
| Lock-staking management |
| Extend lock duration |
| Gauge voting |
| Reward claiming |
| LP + lock-delegate in one tx |
| Stableswap LP + lock-delegate |
Event Parsing (3)
Tool | Description |
| Parse Cosmos events from a transaction |
| Decode Move module events |
| Decode CosmWasm contract events |
Ledger (2)
Tool | Description |
| Check Ledger device connection |
| Display address on device for verification |
Bank (1)
Tool | Description |
| Send tokens (supports batch sends) |
Architecture
src/
├── index.ts # MCP server entry point (stdio)
├── cli.ts # CLI entry point (initctl)
├── tools/
│ ├── registry.ts # ToolRegistry — shared by MCP and CLI
│ ├── groups.ts # Group definitions (24 groups)
│ ├── index.ts # Side-effect imports for all tool files
│ ├── tx-executor.ts # Mutation flow (dry-run → simulate → broadcast)
│ ├── vm-guard.ts # VM compatibility checks
│ └── *.ts # Tool modules (registry.register() calls)
├── mcp/
│ └── adapter.ts # Registry → McpServer binding
├── cli/
│ ├── adapter.ts # Registry → citty commands + zodToCittyArgs
│ ├── format.ts # TTY / JSON output formatting
│ ├── confirm.ts # Mutation y/N prompt
│ └── completion.ts # Shell completion (bash/zsh/fish)
├── initia/
│ └── chain-manager.ts # Chain context creation, caching
├── config/ # Environment config, chain aliases
├── schemas/ # Shared Zod parameter schemas
├── errors.ts # Typed error codes
├── response.ts # Response serialization
└── logger.ts # Structured JSON loggingTools are registered once in a transport-agnostic ToolRegistry. The MCP and CLI adapters consume the same registry independently — adding a tool to a *.ts file automatically exposes it in both interfaces.
Smart Defaults
Validator by name: Tools accepting a validator address also accept the moniker name (case-insensitive, auto-resolved)
"me" address: Address parameters accept
"me","self","my", or"signer"to resolve to the configured signerVM guard: Contract tools enforce VM compatibility — calling
move_viewon a MiniEVM chain returns aWRONG_VMerror with suggested alternatives
Development
npm run dev # Run MCP server with tsx (hot reload)
npm test # Unit + integration tests
npm run test:smoke # E2E tests against testnet
npm run lint # ESLint + tsc --noEmitLicense
Apache-2.0
Available Tools
113 toolsaccount_getARead-only
Get account info, token balances, and address profile for an address on a specific chain. Balances are paginated (default 10). Describe account/contract types using the terminology appropriate for the chain's VM (see chainType in response).
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain name or chain ID. Defaults to L1 ("initia"). L2 examples: "Cabal", "Echelon", "Inertia". | initia |
| address | Yes | Address in bech32, hex, or .init format. Use "me" for the signer's own address. | |
| limit | No | Max results per page (default 10). Use with offset to paginate. | |
| offset | No | Results to skip for pagination | |
| reverse | No | Reverse result order (e.g., newest first for proposals) | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, indicating safe reading. The description adds behavioral context: balances are paginated (default 10), and account/contract types are described using chain-appropriate terminology. This supplements the annotation without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: the first delivers the core purpose, the second adds key details on pagination and terminology. No redundant or unnecessary words. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 6 parameters, no output schema, and moderate complexity (pagination, chain-specific terminology), the description covers the essential aspects: purpose, address resolution, pagination hints, and terminology guideline. It could additionally mention that the response includes chain type for VM-specific language, but overall it is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters. The description adds extra value by explaining pagination defaults (limit=10) and the address format (use 'me' for signer's address), which clarifies usage beyond the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'account info, token balances, and address profile for an address on a specific chain'. It distinguishes itself from sibling tools like 'token_balance' or 'portfolio_get' by covering all these aspects together, and adds specificity about pagination and chain-specific terminology.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide guidance on when to use this tool versus alternatives (e.g., portfolio_get, token_balance). It lacks explicit when-to-use/when-not-to-use instructions or mention of prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
address_convertARead-only
Convert an address between bech32 (init1...) and hex (0x...) formats.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Address in bech32 or hex format |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as read-only (readOnlyHint: true). The description adds format-specific context but does not disclose edge cases or error handling. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no wasted words. Every part adds value, making it highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple conversion tool with one parameter and no output schema, the description is largely complete. It could mention that the output is the opposite format, but the core functionality is clear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema fully documents the single parameter (100% coverage). The description reinforces the parameter's purpose but does not add new meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Convert' and resource 'address' with explicit format details ('bech32 (init1...) and hex (0x...)'), clearly distinguishing it from sibling tools like address_validate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for format conversion but does not provide explicit when-to-use or when-not-to-use guidance, nor mentions alternatives. It's adequate but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
address_validateARead-only
Validate whether a string is a valid Initia address (bech32) or EVM address (0x hex). Optionally provide a chain to fetch the on-chain address profile (account type, contract classification, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Address to validate | |
| chain | No | Chain name or chain ID. Defaults to L1 ("initia"). L2 examples: "Cabal", "Echelon", "Inertia". | initia |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotation 'readOnlyHint' confirms read-only. Description adds that optional chain parameter fetches on-chain profile, providing behavioral context beyond annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, 27 words, no redundancy. Efficiently conveys core functionality.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a validation tool, but missing return value description (e.g., whether output is boolean or object). With 3 params and no output schema, more detail would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions cover all params, description adds value by explaining chain parameter's purpose (fetch profile) and providing examples, surpassing baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it validates Initia (bech32) and EVM addresses, and optionally fetches on-chain profile. Differentiates from 'address_convert'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implicitly clear when to use: to validate address format and optionally get chain profile. No explicit exclusions but context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
amount_formatARead-only
Format a raw token amount with decimals into human-readable form (e.g., "1000000" with 6 decimals -> "1.0").
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Raw token amount (smallest unit) | |
| decimals | Yes | Number of decimal places for the token |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only behavior. The description adds the formatting conversion detail, which is consistent and provides additional context beyond the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is a single sentence with an illustrative example, no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple formatting tool with no output schema, the description provides sufficient information for an agent to understand its purpose and usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema covers both parameters with descriptions (100% coverage). The description adds an example but does not provide additional semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool formats a raw token amount with decimals into human-readable form, with a concrete example. It uses specific verbs and resources, and is distinct from sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for formatting token amounts, but does not explicitly state when to use this tool versus alternatives. However, it is the only formatting tool among siblings, and the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
authz_grantsARead-only
Query authorization grants. Provide granter, grantee, or both to filter.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain name or chain ID. Defaults to L1 ("initia"). L2 examples: "Cabal", "Echelon", "Inertia". | initia |
| granter | No | Granter address | |
| grantee | No | Grantee address | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, which is consistent with the description's 'Query'. No additional behavioral traits (e.g., pagination, return format) are disclosed, but the description aligns with the annotation without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences, no wasted words. It could be slightly improved by adding a note about optional parameters, but it is efficiently front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the 4 parameters, 100% schema coverage, read-only annotation, and no output schema, the description is adequate but could mention tool's module (authz) or typical use cases. It is minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 4 parameters have descriptions in the input schema (100% coverage). The description adds minimal value by restating the filtering capability, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool queries authorization grants, specifying the verb 'Query' and the resource 'authorization grants'. It also mentions filtering by granter, grantee, or both, which distinguishes it from sibling tools like feegrant_allowances.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides basic guidance on filtering by granter/grantee, but does not explicitly compare to alternatives like feegrant_allowances. Usage context is implied but not comprehensive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bank_sendB
Send tokens to one or more recipients in a single transaction.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain name or chain ID. Defaults to L1 ("initia"). L2 examples: "Cabal", "Echelon", "Inertia". | initia |
| sends | Yes | Array of send operations to batch in one tx | |
| dryRun | No | Preview tx without chain communication. | |
| confirm | No | Set true to broadcast. Otherwise returns simulation only. | |
| memo | No | Optional transaction memo | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint=false, destructiveHint=false) already indicate this is a non-read-only, non-destructive write operation. Description adds minimal behavioral context beyond 'single transaction'. Missing details on authorization, fees, failure modes, or effects on balances.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence of 12 words, front-loaded with the core action. No redundant phrases; every word serves the purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Description is minimal for a transaction-sending tool with 6 parameters and no output schema. It fails to explain return values, dryRun vs confirm behavior, or error handling. Given parameter richness and lack of output docs, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all parameters, so description adds only the batching context. The tool name and description imply the 'sends' array bundles multiple transfers, but schema already captures this. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'send tokens to one or more recipients in a single transaction', defining the verb and resource precisely. It distinguishes from sibling tools like bridge_deposit, ibc_transfer, and token_transfer by explicitly mentioning batch transaction and multiple recipients.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description implies usage for sending tokens in a batch, but lacks explicit guidance on when to use this tool versus alternatives like ibc_transfer or individual token sends. No exclusions or context provided for choosing among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bridge_depositA
Deposit tokens from L1 to an L2 rollup via OPInit bridge. Requires the bridge ID for the target rollup.
| Name | Required | Description | Default |
|---|---|---|---|
| bridgeId | Yes | OPInit bridge ID for the target rollup | |
| to | Yes | Recipient address on the L2 rollup | |
| amount | Yes | Amount to deposit (e.g., "1000000") | |
| denom | Yes | Token denomination (e.g., "uinit") | |
| data | No | Optional hex-encoded data payload | |
| dryRun | No | Preview tx without chain communication. | |
| confirm | No | Set true to broadcast. Otherwise returns simulation only. | |
| memo | No | Optional transaction memo | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate the tool is not read-only and not destructive. The description adds that it deposits tokens and requires a bridge ID, but does not disclose further behavioral details such as permissions or side effects beyond the state change implied by deposit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two front-loaded sentences, no redundancy, and every word adds value. It efficiently communicates the core action and a key requirement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description lacks information about the tool's flow (e.g., simulation vs broadcast via dryRun/confirm) and does not hint at return values. Although the schema covers parameters, the absence of output schema and the brief description leave agents uncertain about expected results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all parameters thoroughly. The tool description does not add parameter-level meaning beyond the schema, earning a baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool deposits tokens from L1 to L2 via OPInit bridge, specifying the action, resource, and direction. It distinguishes from sibling tools like bridge_withdraw and bridge_execute by its specific purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions the prerequisite of bridge ID but does not provide explicit guidance on when to use this tool versus alternatives like bridge_withdraw or bridge_transfer_status. Usage is implied but not elaborated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bridge_executeB
Execute a cross-chain transfer. Automatically finds the optimal route and broadcasts the source chain transaction.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Transfer amount in minimal denomination | |
| sourceChainId | Yes | Source chain ID | |
| sourceDenom | Yes | Source token denomination | |
| destChainId | Yes | Destination chain ID | |
| destDenom | Yes | Destination token denomination | |
| receiver | Yes | Receiver address on destination chain | |
| dryRun | No | Preview tx without chain communication. | |
| confirm | No | Set true to broadcast. Otherwise returns simulation only. | |
| memo | No | Optional transaction memo | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are silent on behavioral traits, and the description only states 'broadcasts' without clarifying safety features like dryRun (previews without broadcasting) or that the tool is write-only. Users need to infer behavior from parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no redundancy, and front-loads key purpose. However, it could be more structured or include additional sentences for completeness without being verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (10 params, no output schema, many sibling tools), the description is too brief. It omits crucial details like dryRun behavior, output type, and when to use confirm flag. It underperforms for such a critical tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description adds minimal value beyond the schema. It does not elaborate on parameter relationships or usage order (e.g., amount in minimal denomination). Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the action ('Execute') and resource ('cross-chain transfer') with specific details on automated route finding and broadcasting. It effectively distinguishes from sibling tools like bridge_route which only finds routes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this is the final execution step but lacks explicit when-to-use vs alternatives (e.g., bridge_route for simulation). It does not mention the dryRun or confirm parameters that affect usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bridge_list_chainsARead-only
List all L2 chains that support OPInit bridging from/to L1.
| Name | Required | Description | Default |
|---|---|---|---|
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true. Description's 'list' confirms read-only nature but adds no extra behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with verb, no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Simple tool with one optional parameter and no output schema; description fully explains scope and behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with parameter description and enum. Tool description adds no additional meaning beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'List all L2 chains that support OPInit bridging from/to L1.' Uses specific verb and resource, distinguishes from sibling bridge tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied by purpose: use to discover supported L2 chains. No explicit when/when-not or alternatives, but simplicity reduces need.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bridge_routable_assetsARead-only
List all assets available for cross-chain routing via the Router API. Use this to discover valid chain/denom pairs before calling bridge_route or bridge_execute. Optionally filter by a specific chain ID.
| Name | Required | Description | Default |
|---|---|---|---|
| chainId | No | Filter assets by chain ID (e.g., "initiation-2", "11155111") | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so no additional safety info needed. The description adds value by explaining the tool's role in discovering valid chain/denom pairs, which is beyond the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no redundant information. Front-loaded with purpose, then usage context. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description sufficiently clarifies what the output represents (assets with chain/denom pairs) despite lacking an output schema. It completes the picture for a simple list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema descriptions cover both parameters completely (100% coverage). The tool description does not add further semantic context beyond what the schema provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists assets for cross-chain routing, distinguishing it from siblings like bridge_route and bridge_execute. It uses a specific verb ('List') and resource ('assets available for cross-chain routing').
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly recommends using this tool before calling bridge_route or bridge_execute, providing clear context. It mentions optional filtering but lacks explicit when-not-to-use guidance, though this is inferred from its discovery role.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bridge_routeBRead-only
Find the optimal cross-chain transfer route between two chains.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Transfer amount in minimal denomination | |
| sourceChainId | Yes | Source chain ID | |
| sourceDenom | Yes | Source token denomination | |
| destChainId | Yes | Destination chain ID | |
| destDenom | Yes | Destination token denomination | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Although annotations mark the tool as readOnlyHint=true, the description does not add further behavioral context. It fails to disclose that the tool returns an optimal route (without specifying optimization criteria), whether multiple routes are returned, or any rate-limiting or authentication requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It efficiently states the core purpose. However, it could be slightly expanded to include key behavioral details without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Without an output schema, the description should explain what the tool returns (e.g., route steps, fees, estimated time). It does not mention the default network (mainnet) or that the route is hypothetical and not executed. This leaves significant gaps for an agent to correctly invoke and interpret the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Given 100% schema coverage, the baseline is 3. The description adds no extra meaning to the parameters beyond what the schema already provides (e.g., 'amount in minimal denomination', 'source/dest chain ID'). It does not clarify what 'optimal' means in relation to the parameters or how the network parameter affects results.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Find' and clearly identifies the resource as 'optimal cross-chain transfer route' between two chains. This distinguishes it from other bridge-related tools such as bridge_deposit or bridge_execute, which perform actions rather than querying for routes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like bridge_routable_assets. It does not mention prerequisites, such as needing to know chain IDs or token denominations beforehand, nor does it clarify that the tool is read-only and does not execute transfers.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bridge_transfer_statusARead-only
Track the status of a cross-chain transfer initiated via bridge_execute. Call with the txHash and chainId returned from bridge_execute.
| Name | Required | Description | Default |
|---|---|---|---|
| txHash | Yes | Transaction hash | |
| chainId | Yes | Chain ID where the transfer was initiated | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true. Description adds no additional behavioral traits like rate limits or error handling. It does not contradict annotations, but provides minimal extra context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise, two-sentence description. First sentence states purpose, second provides usage guidance. No extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequately describes tool usage for a simple status check. Lacks explicit mention of return format or possible statuses, but given no output schema, the description is sufficient for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage, but description adds value by specifying that txHash and chainId come from bridge_execute and clarifying that network defaults to mainnet, enhancing meaning beyond raw schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool tracks status of a cross-chain transfer initiated via bridge_execute. Specifically names the verb 'track the status' and resource 'cross-chain transfer'. Differentiates from sibling tools like bridge_execute which initiates the transfer.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states to call with txHash and chainId returned from bridge_execute. Gives clear context on when to use the tool, though does not list alternative tools or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bridge_withdrawB
Withdraw tokens from an L2 rollup back to L1 via OPInit bridge.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | L2 chain to withdraw from (e.g., "minievm-1", "minimove-1") | initia |
| to | Yes | Recipient address on L1 | |
| amount | Yes | Amount to withdraw (e.g., "1000000") | |
| denom | Yes | Token denomination on the L2 chain | |
| dryRun | No | Preview tx without chain communication. | |
| confirm | No | Set true to broadcast. Otherwise returns simulation only. | |
| memo | No | Optional transaction memo | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false (mutation) and destructiveHint=false, but the description adds no behavioral context beyond the action itself. It does not explain side effects like transaction finality, fees, or required approvals, which are important for a withdrawal operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with 11 words, conveying the core purpose efficiently without wasted words. It is front-loaded and clear, though it could include a quick usage hint without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description lacks information about return values (no output schema), prerequisites, and post-conditions. For a complex operation like bridge withdrawal, users need to know what the tool returns and what happens after execution.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% parameter description coverage, so the description does not need to repeat those details. However, it could add context for parameters like 'chain' to specify valid L2 chains, but it does not. Still, baseline 3 is appropriate given schema completeness.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'withdraw' and identifies the resource 'tokens', the direction 'from L2 to L1', and the mechanism 'via OPInit bridge'. This clearly distinguishes it from siblings like bridge_deposit (opposite direction) and bridge_withdrawal_status (status query).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions OPInit bridge, hinting at a specific scenario, but provides no explicit guidance on when to use this tool versus alternatives like bridge_deposit or bridge_execute. With many bridge siblings, a usage note would be beneficial.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bridge_withdrawalsARead-only
List L2->L1 withdrawals for an address on a specific L2 chain.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | L2 chain to query withdrawals from (e.g., "minievm", "minimove") | initia |
| address | Yes | Address in bech32, hex, or .init format. Use "me" for the signer's own address. | |
| limit | No | Max results per page (default 10). Use with offset to paginate. | |
| offset | No | Results to skip for pagination | |
| reverse | No | Reverse result order (e.g., newest first for proposals) | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the description's 'List' is consistent. However, the description does not disclose additional behavioral traits beyond what annotations provide, such as pagination behavior, default ordering, or any limitations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with 10 words. No unnecessary information. Efficiently conveys the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, so description should ideally hint at return format or ordering. It doesn't mention default order (though reverse param exists). Among 5 sibling bridge tools, context is adequate but incomplete for a listing tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each parameter already has a description. The tool description does not add meaning beyond mentioning 'a specific L2 chain' which maps to the chain parameter. Baseline 3 due to high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'List L2->L1 withdrawals for an address on a specific L2 chain.' It specifies verb (List), resource (withdrawals), direction (L2->L1), and criteria (address, chain). This distinguishes it from siblings like bridge_withdraw (initiate) and bridge_withdrawal_status (check status).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for listing withdrawals but does not explicitly state when to use this tool versus alternatives like bridge_withdraw or bridge_withdrawal_status. No guidance on when not to use it or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bridge_withdrawal_statusARead-only
Get the status and details of a specific L2->L1 withdrawal by sequence number.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | L2 chain the withdrawal was made from (e.g., "minievm", "minimove") | initia |
| sequence | Yes | Withdrawal sequence number | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint; description adds context that it gets status and details of a withdrawal. No contradictions, but could mention what details are returned or any constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded, no unnecessary words. Efficiently conveys purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Description is adequate for a simple tool but lacks information about the response format or possible statuses. No output schema, so more detail would be helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all parameters (100%). Description does not add meaning beyond schema; merely restates 'sequence number' which is already in schema description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'get' and resource 'status and details of a specific L2->L1 withdrawal by sequence number'. Distinguishes from similar tools like 'bridge_transfer_status' and 'bridge_withdrawals'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool vs alternatives like 'bridge_transfer_status' or 'bridge_withdrawals'. Only implies usage by providing a sequence number.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chain_blockARead-only
Get block header and transaction list by height. Omit height to get the latest block.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain name or chain ID. Defaults to L1 ("initia"). L2 examples: "Cabal", "Echelon", "Inertia". | initia |
| height | No | Block height. Omit for latest block. | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds some behavioral context by stating it returns a block header and transaction list. Annotations already indicate it is read-only. No additional traits like rate limits or error handling are mentioned, but this is adequate for a simple read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that front-loads the purpose. Every word is informative, with no redundant or unnecessary content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with good schema coverage and annotations, the description is largely complete. It explains the core function and usage of the height parameter. A slight addition of what constitutes the 'transaction list' could be beneficial, but current completeness is strong.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides comprehensive descriptions for all three parameters (chain, height, network) with 100% coverage. The tool description does not add any extra semantic meaning beyond what the schema provides, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets a block header and transaction list by height, with an optional parameter to get the latest block. It uses a specific verb and resource, and distinguishes it from other block-related tools like chain_block_results by specifying the content returned.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides basic usage guidance by noting that omitting height returns the latest block. However, it does not mention when to use this tool versus alternatives like chain_block_results, nor does it specify any prerequisites or limitations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chain_block_resultsARead-only
Get block execution results (transaction results, validator updates, consensus param updates) for a given height.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain name or chain ID. Defaults to L1 ("initia"). L2 examples: "Cabal", "Echelon", "Inertia". | initia |
| height | Yes | Block height (required). | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, and description is consistent (a read operation). Description adds useful context about the specific data returned (transaction results, validator updates, consensus param updates) beyond what annotations provide. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence that perfectly front-loads the purpose and scope. No redundant or extraneous words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, but description adequately lists the categories of returned data. The tool is low-complexity (single block result), so missing pagination or limits is acceptable. Could mention optional chain/network parameters but schema already documents them.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All three parameters have descriptions in the input schema (100% coverage). The description does not add additional meaning beyond the schema; it merely mentions 'given height' which is already stated in the height parameter description. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses specific verb 'Get' and resource 'block execution results', listing exactly what's included (transaction results, validator updates, consensus param updates). Clearly distinguishes from siblings like chain_block which likely returns only raw block data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description implies usage for retrieving execution results at a block height but provides no explicit guidance on when to use this tool over siblings (e.g., tx_get for individual transactions, chain_block for block metadata). No when-not or alternative recommendations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chain_capabilitiesARead-only
Get detailed capabilities for a specific chain: VM type, supported features, and endpoints.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain name or chain ID. Defaults to L1 ("initia"). L2 examples: "Cabal", "Echelon", "Inertia". | initia |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint: true, so the description does not need to repeat that. However, the description adds no additional behavioral traits beyond what is already in annotations. It could mention that the operation is safe and returns data without side effects, but the absence is not a major flaw given the annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that immediately states the purpose and key outputs. It is concise, front-loaded, and contains no extraneous information. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has only 2 optional parameters, no output schema, and annotations provide readOnlyHint, the description covers the essential use case. It mentions the returned data types (VM type, supported features, endpoints), making it mostly complete. A small gap is the lack of explanation about the response format, but without an output schema, the description suffices.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (both parameters are documented with descriptions and enums). The description does not add extra meaning beyond the schema. The phrase 'specific chain' loosely aligns with the 'chain' parameter but adds no new detail. Baseline 3 is appropriate as the schema already fully explains parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Get detailed capabilities for a specific chain' with specific verb 'Get' and resource 'capabilities for a specific chain'. It also lists the information provided: VM type, supported features, and endpoints. This distinguishes it from sibling tools like chain_list (which likely lists all chains) and chain_block (which gets block data).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when someone needs detailed capabilities of a specific chain, but it does not explicitly state when to use it versus alternatives like chain_list or chain_block. No when-not-to-use or alternative tools are mentioned, leaving the agent to infer context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chain_gas_pricesARead-only
Get current on-chain gas prices for any chain (L1 or L2). Returns accepted denoms and their gas price amounts.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain name or chain ID. Defaults to L1 ("initia"). L2 examples: "Cabal", "Echelon", "Inertia". | initia |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true. Description adds that it returns 'accepted denoms and their gas price amounts', providing some behavioral context beyond annotations, but lacks details like output structure or error cases.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence conveying purpose, returns, and scope. No redundant words. Front-loaded with action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with two parameters and no output schema, the description provides essential info on what is returned. Lacks details on unsupported chain handling, but overall adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters. The description adds no new semantic info beyond echoing the chain parameter scope; baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'Get', resource 'current on-chain gas prices', and scope 'any chain (L1 or L2)'. It distinguishes from siblings as no other tool provides gas prices.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, nor any when-not-to-use conditions. Sibling tools are diverse but no explicit comparison is made.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chain_listARead-only
List all supported chains in the Initia ecosystem with their chain IDs and types.
| Name | Required | Description | Default |
|---|---|---|---|
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not add behavioral details beyond what the readOnlyHint annotation provides. It does not mention idempotency, side effects, or any constraints, but the annotation already indicates a safe read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that efficiently conveys the tool's purpose without unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with one optional parameter and no output schema, the description sufficiently explains what the tool returns (chain IDs and types). No additional context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already describes the only parameter (network) with an enum and default. The description adds no additional semantic value beyond what is in the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (list), the resource (supported chains in the Initia ecosystem), and the output details (chain IDs and types). This distinguishes it from sibling tools like bridge_list_chains which are specific to bridging.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies that the tool is for getting a list of all chains, but it does not provide explicit guidance on when to use this tool versus alternatives like bridge_list_chains or when to avoid it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delegation_getARead-only
Get staking state for an address: delegations, rewards, and unbonding entries. Returns paginated results (default 10). Use limit/offset to navigate.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain name or chain ID. Defaults to L1 ("initia"). L2 examples: "Cabal", "Echelon", "Inertia". | initia |
| delegatorAddr | Yes | Address in bech32, hex, or .init format. Use "me" for the signer's own address. | |
| limit | No | Max results per page (default 10). Use with offset to paginate. | |
| offset | No | Results to skip for pagination | |
| reverse | No | Reverse result order (e.g., newest first for proposals) | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds pagination details and address format flexibility beyond the readOnlyHint annotation. It is consistent with the read-only nature and provides useful behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences front-load the purpose and key usage details. Every sentence adds value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the purpose, return items, and pagination. Without an output schema, it adequately describes what to expect, though it could be more explicit about the response structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds value by explaining pagination behavior (default 10, use limit/offset) and mentioning address flexibility ('me'), which complements the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'staking state for an address' with specific items (delegations, rewards, unbonding entries). It distinguishes itself from siblings like 'account_get' or 'proposal_get'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains what the tool returns and pagination usage (limit/offset). It does not explicitly state when not to use it or provide alternatives, but given no direct sibling for staking state, this is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
denom_classifyARead-only
Classify a token denomination into its type: native, ibc, evm, move, cw20, factory, or l2.
| Name | Required | Description | Default |
|---|---|---|---|
| denom | Yes | Token denomination string to classify |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already signals safety. The description adds no extra behavioral details (e.g., API calls, side effects). It is consistent with the annotation but does not augment it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words. It effectively communicates the tool's purpose and outputs in a compact form.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, read-only, no output schema), the description adequately covers what the tool does. It implies the return value is one of the listed types, which is sufficient for an AI agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides a description for the 'denom' parameter. The tool description merely restates that it classifies a denomination string, adding no new semantic information beyond the schema's description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'classify' and the resource 'token denomination', and lists all possible output types. This distinguishes it from sibling tools like 'denom_metadata' which describe rather than classify.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for classification tasks but does not explicitly state when to use this tool versus alternatives (e.g., denom_metadata for metadata retrieval). No exclusion criteria or context cues are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
denom_metadataARead-only
Get on-chain bank module metadata for a native denomination (name, symbol, decimals). For contract tokens (ERC20/CW20/FA), use token_info instead.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain name or chain ID. Defaults to L1 ("initia"). L2 examples: "Cabal", "Echelon", "Inertia". | initia |
| denom | Yes | Token denomination (e.g., "uinit") | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, so description doesn't need to reiterate safety. It adds behavioral context by scoping to 'on-chain bank module metadata' for native denominations, which is a read operation. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, each earning its place. The first states the purpose, the second gives usage guidance. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple getter tool with comprehensive schema and annotations, the description is complete. It specifies what is returned (metadata like name, symbol, decimals) and when to use an alternative. No missing information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% description coverage for all 3 parameters. Description adds examples and default values (e.g., 'Defaults to L1 ("initia")' for chain, L2 examples), which adds meaning beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Get on-chain bank module metadata for a native denomination (name, symbol, decimals)', which is a specific verb and resource. It also explicitly distinguishes from sibling tool token_info by specifying it's for native denominations, not contract tokens.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance on when not to use this tool: 'For contract tokens (ERC20/CW20/FA), use token_info instead.' This directly contrasts with a sibling tool, giving clear alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
distribution_rewardsARead-only
Get pending staking rewards for a delegator across all validators.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain name or chain ID. Defaults to L1 ("initia"). L2 examples: "Cabal", "Echelon", "Inertia". | initia |
| delegatorAddr | Yes | Address in bech32, hex, or .init format. Use "me" for the signer's own address. | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the description's mention of 'pending' and 'across all validators' adds some behavioral context beyond annotations. However, it does not disclose other traits such as required authentication or response format, with annotations covering the safety profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that communicates the core purpose without fluff. It is front-loaded and concise, though slightly too brief to include additional context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Without an output schema, the description does not specify the return format (e.g., array of rewards per validator or total amount). For a read-only query tool, this missing information could leave an agent uncertain about how to interpret results, making completeness lacking.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with detailed parameter descriptions (e.g., delegatorAddr's accepted formats). The description adds no additional meaning beyond what the schema already provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the verb 'Get', the resource 'pending staking rewards', and the scope 'for a delegator across all validators'. It distinguishes itself from sibling tools like delegation_get (which retrieves delegation info, not rewards) and staking_manage (a mutation tool).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool versus alternatives. It implies usage for querying rewards but lacks guidance on exclusions (e.g., when to use delegation_get or vip_claimable_rewards instead). Usage context is implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
event_parse_moveBRead-only
Extract and decode Move module events from a transaction. Optionally filter by type tag for auto-parsed JSON data.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain name or chain ID. Defaults to L1 ("initia"). L2 examples: "Cabal", "Echelon", "Inertia". | initia |
| txHash | Yes | Transaction hash | |
| typeTag | No | Move type tag to filter (e.g., "0x1::coin::WithdrawEvent"). When set, data is auto-parsed from JSON. | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotation readOnlyHint:true already indicates a read operation. Description adds minimal context beyond extraction and decoding, but no contradiction. With annotations present, the bar is lower; description adds little extra.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler. All information is relevant and front-loaded. Highly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple tool with good parameter descriptions. Missing return value explanation, but no output schema. Could be more complete about what 'decoded' events look like.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline 3. Description adds meaning for typeTag (auto-parsed JSON) and chain (L1/L2 examples), providing value beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it extracts and decodes Move module events, with optional filtering. This differentiates it from sibling tools like event_parse_tx and event_parse_wasm, though not explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus siblings. Does not mention when not to use it or provide context for alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
event_parse_txBRead-only
Parse and extract Cosmos events from a transaction. Optionally filter by event type.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain name or chain ID. Defaults to L1 ("initia"). L2 examples: "Cabal", "Echelon", "Inertia". | initia |
| txHash | Yes | Transaction hash | |
| eventType | No | Filter by event type (e.g., "transfer", "coin_spent") | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, so the description adds the context of extracting events. It does not disclose additional behavioral details beyond what annotations provide, but is consistent and adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no extraneous words. Highly concise and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Description is very brief and lacks details on output format, return structure, or any constraints. Given the tool has 4 parameters and no output schema, more context is needed for complete understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all parameters. The description adds minimal value beyond the schema, just reiterating optional filtering. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it parses and extracts Cosmos events from a transaction, with optional filtering. It distinguishes from sibling tools like event_parse_move and event_parse_wasm by implying a general Cosmos scope, though not explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives like event_parse_move or event_parse_wasm. The description does not address when not to use it or provide context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
event_parse_wasmARead-only
Extract and decode CosmWasm contract events from a transaction. Filters wasm.* event types.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain name or chain ID. Defaults to L1 ("initia"). L2 examples: "Cabal", "Echelon", "Inertia". | initia |
| txHash | Yes | Transaction hash | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and description adds filtering detail (wasm.* event types). No additional behavioral traits like auth or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no wasted words, front-loaded with action. Perfectly concise for the complexity of the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Description specifies input but lacks details about output (e.g., structure of returned events). Since no output schema exists, this gap reduces completeness, though the tool is simple.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all parameters are described in the schema. Description adds no extra meaning beyond confirming that txHash identifies the transaction.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly specifies extraction and decoding of CosmWasm contract events from a transaction, filtering wasm.* event types. Distinguishes from sibling tools like event_parse_move and event_parse_tx.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description implies usage for CosmWasm events but lacks explicit when-to-use or when-not-to-use guidance, nor does it mention alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
evm_callARead-only
Call an EVM contract function (read-only). Provide ABI-encoded calldata. Available on Minievm chains.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain name or chain ID. Defaults to L1 ("initia"). L2 examples: "Cabal", "Echelon", "Inertia". | initia |
| contractAddress | Yes | Contract address (hex or bech32) | |
| input | Yes | ABI-encoded calldata (hex string starting with 0x) | |
| sender | No | Sender address for the call context | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the description's mention of read-only adds no new safety info. It adds context about chain support (Minievm) and calldata format, but does not explain return behavior or error handling. With annotations covering key traits, the description provides marginal behavioral insight.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no redundant information. Front-loaded with purpose, then details. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description omits what the tool returns (the function output), but the purpose is clear from the name and read-only nature. For a simple read call, this is mostly complete. Could mention return value but not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage with descriptions for all five parameters. The description only mentions ABI-encoded calldata and Minievm chains, which does not add significant meaning beyond the schema. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool calls an EVM contract function as read-only, distinguished from writes like evm_send and queries like evm_get_logs. The verb 'call' plus 'read-only' and 'ABI-encoded calldata' specifies the action and resource precisely.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description indicates the tool is for read-only calls and requires ABI-encoded calldata, implying it is not for state-changing transactions (use evm_send). However, it does not explicitly list when to avoid it or compare with other EVM query tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
evm_decode_logsARead-only
Decode EVM event logs using an ABI. Takes raw logs (from evm_get_logs or tx receipt) and returns decoded event names and args.
| Name | Required | Description | Default |
|---|---|---|---|
| logs | Yes | Array of raw EVM log objects | |
| abi | Yes | Contract ABI JSON array |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true. The description adds behavioral context by stating the tool uses an ABI and returns decoded event names and args, which is useful beyond the read-only hint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, front-loaded with action and resource, and contains no unnecessary words or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a decode tool without output schema, the description adequately conveys what it returns (decoded event names and args). While more detail on return format would be helpful, it remains clear and complete for typical use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters. The description adds minimal extra meaning (mentions source of logs) but does not significantly enhance understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Decode' and the resource 'EVM event logs'. It distinguishes the tool from siblings like evm_get_logs and evm_get_tx_receipt by specifying its input nature and output.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states the input source ('from evm_get_logs or tx receipt'), giving clear context on when to use this tool. However, it does not explicitly mention when not to use it or provide alternatives like evm_decode_revert.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
evm_decode_revertARead-only
Decode an EVM revert reason from hex data. Optionally provide ABI JSON to decode custom errors.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | Revert data (hex string, 0x-prefixed) | |
| abi | No | Contract ABI JSON array (for custom error decoding) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, so description adds value by disclosing optional custom error decoding with ABI JSON. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no wasted words, front-loaded with the core action. Efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple nature of the tool and well-documented schema, the description is sufficient. It might benefit from mentioning the return format, but not critical for agent invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. Description adds no extra meaning beyond the schema for parameters 'data' and 'abi'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses specific verb 'Decode' and resource 'EVM revert reason', clearly distinguishing it from sibling tools like evm_decode_logs or evm_call. It also mentions optional custom error decoding, adding precision.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description does not explicitly state when to use this tool vs alternatives, but the purpose is clear and narrow. No guidance on when not to use it, which is acceptable given its specific function.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
evm_deployA
Deploy an EVM contract by submitting creation bytecode. Available on Minievm chains.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain name or chain ID. Defaults to L1 ("initia"). L2 examples: "Cabal", "Echelon", "Inertia". | initia |
| input | Yes | Contract creation bytecode (hex, 0x-prefixed). Append ABI-encoded constructor args if needed. | |
| value | No | Native token value to send (smallest unit) | 0 |
| dryRun | No | Preview tx without chain communication. | |
| confirm | No | Set true to broadcast. Otherwise returns simulation only. | |
| memo | No | Optional transaction memo | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate the tool is not read-only and not destructive. The description adds no further behavioral context (e.g., side effects like gas consumption, contract address return, or state changes). With minimal annotation detail, the description should explain more but fails to do so.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences: first states core action, second provides scope. No unnecessary words, front-loaded with critical information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 7 parameters and no output schema, the description is too brief. It lacks details on deployment results (e.g., contract address), required gas/funds, failure modes, or network-specific constraints. It meets the minimum but leaves gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All seven parameters have schema descriptions (100% coverage). The description adds value beyond the schema by advising to append ABI-encoded constructor args. However, it does not elaborate on the 'value' parameter's implications or the 'confirm' flag's effect beyond what the schema states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool deploys an EVM contract by submitting creation bytecode, with a specific scope ('Available on Minievm chains'). This distinguishes it from sibling tools like evm_call (executes calls) and evm_send (sends transactions).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description only mentions availability on Minievm chains, but does not explain when to use this tool versus alternatives (e.g., wasm_instantiate or other deployment methods). No guidance on prerequisites, limitations, or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
evm_get_blockARead-only
Get EVM block information by number. Available on Minievm chains.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain name or chain ID. Defaults to L1 ("initia"). L2 examples: "Cabal", "Echelon", "Inertia". | initia |
| blockNumber | No | Block number or "latest" | latest |
| includeTransactions | No | Include full transaction objects | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is clear. The description adds that it is for EVM block info, but provides no additional behavioral details (e.g., return format, pagination). Minimal added value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loads the key action, and contains no redundant information. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (4 parameters, 84 siblings) and the absence of an output schema, the description could explain what block information is returned (e.g., hash, parent hash, timestamp). It is minimally adequate but incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema coverage is 100% with descriptions for all parameters. The tool description does not add any meaning beyond what the schema already provides. Baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves EVM block information by number, using a strong verb-resource pair. It distinguishes this tool from siblings like evm_get_tx_receipt and evm_get_code.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage contexts through the phrase 'by number' and 'Available on Minievm chains', but does not provide explicit guidance on when to use this tool versus alternatives or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
evm_get_codeARead-only
Get the bytecode deployed at an address. Returns empty if the address is an EOA (not a contract). Only available on Minievm rollup chains.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain name or chain ID. Defaults to L1 ("initia"). L2 examples: "Cabal", "Echelon", "Inertia". | initia |
| address | Yes | Contract or account address (0x hex) | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, and description adds behavioral traits: returns empty for EOA, chain restriction. No contradiction. Adds value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, direct and no fluff. Front-loaded with purpose, additional context in second sentence. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (read code at address), description adequately explains functionality, EOA behavior, and chain restriction. No output schema needed as return value is implied.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% coverage with descriptions for all parameters. Description does not add extra parameter semantics beyond the schema, meeting baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'Get' and resource 'bytecode deployed at an address'. It distinguishes itself from siblings like evm_get_storage_at and evm_call by specifying the operation and noting it returns empty for EOA, which is unique among EVM tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context: returns empty for EOA (implying use to check if address is a contract) and availability limited to Minievm rollup chains. Lacks explicit alternatives or when-not-to-use scenarios, but the context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
evm_get_logsARead-only
Query EVM event logs with filters. Available on Minievm chains.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain name or chain ID. Defaults to L1 ("initia"). L2 examples: "Cabal", "Echelon", "Inertia". | initia |
| address | No | Contract address to filter logs | |
| topics | No | Event topic filters (array of topic hashes, null for wildcard) | |
| fromBlock | No | Start block (number or "latest") | latest |
| toBlock | No | End block (number or "latest") | latest |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark readOnlyHint=true, so the description's 'Query... with filters' is consistent but adds no further behavioral traits beyond what annotations provide. No mention of pagination, rate limits, or other nuances.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with the core purpose. No unnecessary words; every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, but the description does not mention what the tool returns (e.g., formatted logs array). For a complex tool, this is a gap, though schema covers parameters well. Moderately complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each parameter is already documented. The description adds no additional meaning; 'with filters' is generic. Baseline 3 is appropriate as the schema carries the burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool queries EVM event logs with filters, and specifies availability on Minievm chains, distinguishing it from siblings like evm_call or evm_get_block which serve different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., evm_get_tx_receipt) or when not to use it. The description lacks context for selecting the appropriate tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
evm_get_storage_atARead-only
Read a raw storage slot of an EVM contract. Only available on Minievm rollup chains.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain name or chain ID. Defaults to L1 ("initia"). L2 examples: "Cabal", "Echelon", "Inertia". | initia |
| address | Yes | Contract address (0x hex) | |
| slot | Yes | Storage slot position (0x hex, e.g., "0x0") | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the description simply confirms a read operation. It adds no contradictory info and the platform restriction is a useful behavioral note. Still, it could mention potential limits or response format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with no unnecessary words. It front-loads the core action and adds the limitation immediately. Every sentence serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only operation with 4 well-documented parameters and no output schema, the description adequately covers the tool's purpose and constraints. A minor gap: it does not describe the return value format, but this is simple enough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptive parameter explanations. The description adds minimal extra meaning beyond the schema (e.g., the chain restriction is echoed). Baseline 3 is appropriate as the schema carries the load.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Read' and the resource 'raw storage slot of an EVM contract', distinguishing it from sibling tools like evm_call or evm_get_code. The specificity of 'raw storage slot' and the platform restriction 'Only available on Minievm rollup chains' further clarify purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description indicates when to use (to read a raw storage slot) and provides an important constraint (only on Minievm rollup chains), guiding agents on context. However, it lacks explicit alternatives or a 'when not to use' statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
evm_get_tx_receiptARead-only
Get an EVM transaction receipt by hash. Available on Minievm chains.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain name or chain ID. Defaults to L1 ("initia"). L2 examples: "Cabal", "Echelon", "Inertia". | initia |
| txHash | Yes | Transaction hash (0x-prefixed) | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true, which aligns with the 'Get' operation. The description adds no new behavioral context (e.g., permissions, data freshness, rate limits). Given the annotation coverage, this is adequate but not enhanced.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short, direct sentences with no redundant information. Every word serves a purpose, making it highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, and the description does not mention the return value structure (e.g., receipt fields like status, logs). For a transaction receipt tool, this omission leaves the agent partially uninformed about what to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the schema already provides clear descriptions for chain, txHash, and network. The description does not add any further parameter details, so it meets the baseline expectation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get an EVM transaction receipt'), the required input ('by hash'), and the context ('Available on Minievm chains'). This specifically distinguishes it from siblings like evm_get_block or evm_get_logs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., evm_call, evm_get_logs). The description only notes chain availability, without conditions, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
evm_sendA
Send a state-changing EVM transaction. Provide ABI-encoded calldata. Available on Minievm chains.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain name or chain ID. Defaults to L1 ("initia"). L2 examples: "Cabal", "Echelon", "Inertia". | initia |
| contractAddress | Yes | Contract address (hex or bech32) | |
| input | Yes | ABI-encoded calldata (hex string starting with 0x) | |
| value | No | Native token value to send (smallest unit) | 0 |
| dryRun | No | Preview tx without chain communication. | |
| confirm | No | Set true to broadcast. Otherwise returns simulation only. | |
| memo | No | Optional transaction memo | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only provide readOnlyHint=false and destructiveHint=false. The description adds that the tool is state-changing and that the 'confirm' parameter controls actual broadcast vs simulation. This is useful but does not address authentication/signing requirements, gas costs, or error handling. It partially compensates for minimal annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. The first sentence states the core purpose, the second adds essential context (calldata requirement and chain availability). Perfectly front-loaded and concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is adequate for a mutation tool with comprehensive parameter descriptions in the schema. However, it lacks information about expected return values (transaction hash or simulation result) and does not cover gas estimation or signing requirements. Could be more complete for a novice agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with detailed parameter descriptions. The tool description reinforces 'ABI-encoded calldata' but adds no new parameter-level information beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Send a state-changing EVM transaction'), the resource ('EVM transaction'), and key requirements ('Provide ABI-encoded calldata', 'Available on Minievm chains'). It effectively distinguishes from sibling tools like evm_call by emphasizing state-changing nature.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for state-changing operations via the term 'state-changing' and the 'confirm' parameter (false=simulation, true=broadcast). However, it does not explicitly state when to use this tool vs alternatives (e.g., evm_call for read-only), nor provide exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
feegrant_allowancesARead-only
Query fee grant allowances for an address. Returns all grants where the address is the grantee.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain name or chain ID. Defaults to L1 ("initia"). L2 examples: "Cabal", "Echelon", "Inertia". | initia |
| grantee | Yes | Grantee address | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the description's claim of 'query' is consistent and adds no additional behavioral context. No mention of pagination, limits, or response format, which would be beneficial but not required given the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no unnecessary words. Front-loaded with action and resource. Highly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only query with well-described parameters and no output schema, the description is sufficient. It explains the resource and scope. Could mention that it returns all grants (no pagination implied), but this is minor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%: each parameter has a description (grantee as address, chain with examples, network enum). The tool description does not add value beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Query fee grant allowances for an address. Returns all grants where the address is the grantee.' This clearly identifies the verb (Query), resource (fee grant allowances), and scope (address as grantee), distinguishing it from sibling tools like feegrant_grant and feegrant_revoke.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. The description focuses on what it does but does not mention when not to use it or suggest alternative tools for related operations (e.g., granting or revoking fee grants).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
feegrant_grantB
Grant fee allowance to another address for gas fee sponsorship. At least one of spendLimit or expiration must be provided.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain name or chain ID. Defaults to L1 ("initia"). L2 examples: "Cabal", "Echelon", "Inertia". | initia |
| grantee | Yes | Address to grant fee allowance to | |
| spendLimit | No | Maximum spend amount (e.g., "1000000uinit") | |
| expiration | No | Expiration in days from now (default: 30 when only spendLimit is provided) | |
| dryRun | No | Preview tx without chain communication. | |
| confirm | No | Set true to broadcast. Otherwise returns simulation only. | |
| memo | No | Optional transaction memo | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false and destructiveHint=false. The description adds the constraint that at least one of spendLimit or expiration must be provided, which is useful behavioral context, but lacks details on on-chain effects or required permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that directly states the tool's action and key constraint, with no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is incomplete: it does not explain return values, the difference between dryRun and confirm, or what happens after broadcasting. Given the tool's complexity (8 params, no output schema), more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are well-documented there. The description reinforces the constraint about spendLimit and expiration but adds no new per-parameter meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool grants a fee allowance for gas fee sponsorship, using a specific verb and resource that distinguishes it from sibling tools like feegrant_allowances and feegrant_revoke.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool vs alternatives, nor are there exclusions or prerequisites mentioned beyond the implicit constraint about spendLimit or expiration.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
feegrant_revokeA
Revoke a fee grant allowance previously granted to an address.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain name or chain ID. Defaults to L1 ("initia"). L2 examples: "Cabal", "Echelon", "Inertia". | initia |
| grantee | Yes | Address to revoke fee allowance from | |
| dryRun | No | Preview tx without chain communication. | |
| confirm | No | Set true to broadcast. Otherwise returns simulation only. | |
| memo | No | Optional transaction memo | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate this is not read-only and not destructive, but the description adds no behavioral details beyond that, such as whether revocation requires the granter's permission or if it is irreversible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence. It is concise and immediately conveys the tool's purpose without extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and the schema's thorough parameter descriptions, the description is adequately complete. It lacks only minor details about the effect on the grantee.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description does not add meaning beyond the schema's parameter descriptions, which are already clear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Revoke' and the resource 'fee grant allowance', and it distinguishes from sibling tools like 'feegrant_grant' and 'feegrant_allowances' which perform different operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is used to revoke a previously granted fee allowance, but it does not explicitly state when to use it versus alternatives, nor does it mention prerequisites or context for appropriate use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
governance_voteB
Vote on a governance proposal. Options: YES=1, ABSTAIN=2, NO=3, NO_WITH_VETO=4.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain name or chain ID. Defaults to L1 ("initia"). L2 examples: "Cabal", "Echelon", "Inertia". | initia |
| proposalId | Yes | Proposal ID | |
| option | Yes | Vote option: 1=YES, 2=ABSTAIN, 3=NO, 4=NO_WITH_VETO | |
| dryRun | No | Preview tx without chain communication. | |
| confirm | No | Set true to broadcast. Otherwise returns simulation only. | |
| memo | No | Optional transaction memo | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are minimal (readOnlyHint:false, destructiveHint:false). Description does not disclose that dryRun and confirm parameters control simulation vs. actual broadcast, nor any side effects or required authorizations. The mapping of option numbers is already 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Short and to the point. The option mapping is listed separately, which is acceptable. Could be slightly more integrated, but no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 7 parameters and no output schema, the description is incomplete. It fails to explain the voting workflow, the need to set confirm to true, the role of dryRun, or that chain can refer to L1 or L2. Leaves significant gaps for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline 3. Description adds the numeric mapping for option, but this repeats the schema's description. Does not add meaning for other parameters like chain, dryRun, confirm, or memo.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Vote on a governance proposal' with specific verb and resource, and lists the vote options. Distinguishes from read-only siblings like proposal_get and proposal_list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. Does not mention prerequisites (e.g., voting power, active proposal) or that confirm=true is needed to broadcast.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ibc_channelsARead-only
List IBC channels for a chain, or find the channel between two specific chains. Useful before ibc_transfer to discover the correct sourceChannel.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain to list IBC channels for | initia |
| counterparty | No | Optional counterparty chain to find the specific channel between the two chains | initia |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true. Description adds minimal behavioral info beyond stating it's a list/find operation. Does not disclose any additional traits like pagination or data freshness, but with annotations the bar is lower.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no wasted words. Purpose and usage are front-loaded. Every sentence is necessary and informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool with full schema descriptions and no output schema, the description is complete. It covers purpose, usage context, and parameter interplay.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all three parameters. The description adds meaning by explaining the dual functionality and the role of the counterparty parameter, which goes beyond the schema's individual descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it lists IBC channels or finds a channel between two chains, with a specific verb and resource. It distinguishes from sibling ibc_transfer by stating its usefulness before that tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Useful before ibc_transfer to discover the correct sourceChannel,' providing clear context for when to use. Does not explicitly list when not to use, but the use case is well-defined.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ibc_denom_hashARead-only
Compute the IBC denomination hash from a transfer path. E.g., "transfer/channel-0/uatom" -> "ibc/27394..."
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | IBC transfer path (e.g., "transfer/channel-0/uatom") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true. Description adds that it computes a deterministic hash, which is useful context beyond the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with an example. No wasted words; every element serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema, read-only), the description is complete. It explains what it does and provides an illustrative example, though the output format is only implied.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with parameter description. The example in the description adds concrete format guidance (e.g., 'transfer/channel-0/uatom'), providing value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'Compute' and resource 'IBC denomination hash', with an example distinguishing it from sibling tools that deal with IBC transfers or channels.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance. Usage is implied by the purpose, but no alternatives are mentioned, which is acceptable given no direct siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ibc_transferA
Send tokens via IBC to another chain. Use bridge_route for automatic path discovery.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain name or chain ID. Defaults to L1 ("initia"). L2 examples: "Cabal", "Echelon", "Inertia". | initia |
| sourceChannel | Yes | IBC source channel (e.g., "channel-0") | |
| receiver | Yes | Receiver address on the destination chain | |
| amount | Yes | Amount to transfer | |
| denom | Yes | Token denomination | |
| sourcePort | No | IBC source port | transfer |
| dryRun | No | Preview tx without chain communication. | |
| confirm | No | Set true to broadcast. Otherwise returns simulation only. | |
| memo | No | Optional transaction memo | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false (write operation) and destructiveHint=false. The description adds 'Send tokens' which aligns. Beyond that, it adds no behavioral details (e.g., that it returns a simulation unless confirm=true). With annotations present, the description offers minimal additional transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, with no redundant words. It efficiently states the purpose and a usage hint. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 10 parameters and no output schema, the description is too brief. It does not explain what the tool returns (e.g., a transaction hash or simulation result), nor does it discuss the confirm/dryRun flow. The schema hints at this, but the description should provide clearer expectations for a non-trivial operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description does not add meaning beyond the schema; it does not explain how to find sourceChannel or denom details. The description adds no parameter-specific context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Send tokens via IBC to another chain.' It uses a specific verb ('Send') and resource ('tokens via IBC'), and distinguishes from the sibling tool 'bridge_route' by mentioning it for automatic path discovery.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear alternative: 'Use bridge_route for automatic path discovery.' This helps decide when to use this tool versus the sibling. However, it does not explicitly state when not to use this tool or mention prerequisites like having the source channel.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ledger_statusARead-only
Check signer key type and Ledger device status
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark readOnlyHint=true. Description adds behavioral detail by specifying what is checked (key type and device status), providing useful context beyond annotations. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single, complete sentence with no clutter. Every word adds value, meeting conciseness goals perfectly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Description covers the tool's action and output (key type and device status). With no parameters and no output schema, it is sufficiently complete for a check tool. Minor improvement: could note no input required.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist; schema coverage is 100%. Description adds no param info, but baseline for 0 params is 4. No need for further explanation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses specific verb 'Check' and names two clear resources: 'signer key type' and 'Ledger device status'. This differentiates it from sibling `ledger_verify_address` which focuses on address verification, making purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this vs alternatives like `ledger_verify_address`. Context (e.g., checking signer key vs. verifying address) is implied but not stated. Agent may need to infer use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ledger_verify_addressARead-only
Display address on Ledger device for physical verification
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as read-only. The description adds context about the physical verification step on the device, which is not captured by annotations. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single concise sentence that front-loads the key action and purpose. No extraneous content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless tool with a straightforward action, the description is nearly complete. Minor omission: does not mention that a Ledger must be connected.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has zero parameters, so description naturally covers parameter semantics. No need for additional details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies a concrete action ('Display address on Ledger device') and the purpose ('physical verification'), clearly distinguishing it from siblings like 'address_validate' or 'ledger_status'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies its use case (physical verification on a Ledger device) but does not explicitly state when to prefer this over alternatives or mention any prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_bcs_decodeARead-only
Decode Move BCS bytes back to human-readable values.
| Name | Required | Description | Default |
|---|---|---|---|
| hexValues | Yes | Hex-encoded BCS bytes for each value | |
| types | Yes | Move type for each value (e.g., ["address", "u64", "vector<u8>"]) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description is consistent with the readOnlyHint annotation, confirming it is a read-only operation. It adds context that the output is human-readable, which goes beyond what annotations provide. No behavioral contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that efficiently conveys the core purpose. It is concise without being under-specified, though it could be slightly expanded without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description lacks any mention of the return format or output structure. Since there is no output schema, the agent is left without information on what the decoded values look like or how they are returned, which is a significant gap for a decoding tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already has 100% description coverage for both parameters (hexValues and types). The description does not add any additional meaning beyond what the schema provides, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Decode' and the resource 'Move BCS bytes', and specifies the output as 'human-readable values'. This distinguishes it from its sibling 'move_bcs_encode', which does the opposite.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, such as the obvious counterpart 'move_bcs_encode' or other decode tools. There is no mention of prerequisites or contexts where decoding is needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_bcs_encodeARead-only
Encode values to Move BCS (Binary Canonical Serialization) format. Useful for preparing complex arguments for move_execute.
| Name | Required | Description | Default |
|---|---|---|---|
| values | Yes | Values to encode | |
| types | Yes | Move type for each value (e.g., ["address", "u64", "vector<u8>"]) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description only restates the purpose without adding behavioral traits beyond the annotation readOnlyHint: true. No disclosure of side effects, output format, or error conditions is provided.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: one sentence defining the tool and a second sentence giving a usage hint. No unnecessary words, front-loaded with the key action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of an output schema and the tool's simplicity, the description covers the essential purpose and a primary use case. It could be improved by mentioning the output format, but it is still fairly complete for its complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides detailed descriptions for both parameters (values and types), and the tool description adds no additional semantics beyond repeating the encoding purpose. Schema coverage is 100%, so baseline score 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('encode values to Move BCS format') and the resource ('values'), directly distinguishing from the sibling tool move_bcs_decode. It also mentions the use case of preparing arguments for move_execute.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly recommends this tool for 'preparing complex arguments for move_execute,' providing a clear usage context. However, it does not mention when not to use it or alternative tools beyond implied contrast with move_bcs_decode.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_denom_metadataARead-only
Convert a token denom to its Move metadata address. Available on Initia L1 and Minimove chains.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain name or chain ID. Defaults to L1 ("initia"). L2 examples: "Cabal", "Echelon", "Inertia". | initia |
| denom | Yes | Token denomination (e.g., "uinit") | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=true, so the agent knows it's a safe read. The description adds that it 'converts' (a read-style operation) and specifies chain availability, but doesn't disclose additional behavioral traits like rate limits or output format. The description is consistent with annotations, no contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that perfectly captures the tool's action and scope. No unnecessary words. The information is front-loaded and concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (3 parameters, no output schema), the description is fairly complete. It states the conversion direction and supported chains. However, it does not explain what a 'Move metadata address' is or what the return value looks like, though the absence of an output schema lowers the expectation. Overall adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are fully documented in the schema. The description does not add any extra meaning beyond the schema for the parameters (e.g., the 'chain' default is already in schema). Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool converts a token denom to its Move metadata address, with a specific verb ('convert') and resource ('denom to metadata address'). It also distinguishes itself from the sibling tool 'move_metadata_denom' (likely reverse) by mentioning the direction, even if not explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like 'move_metadata_denom' (which likely does the reverse). The description only mentions chain availability, which is context but not usage guidelines.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_dex_pairsARead-only
List DEX liquidity pool pairs, or look up a specific pair by quote token metadata. Returns LP metadata needed for vip_provide_and_delegate. Available on Initia L1 and Minimove chains.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain name or chain ID. Defaults to L1 ("initia"). L2 examples: "Cabal", "Echelon", "Inertia". | initia |
| metadataQuote | No | Quote token metadata address to look up a specific pair | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description confirms readonly behavior consistent with the readOnlyHint annotation. It adds that the tool returns LP metadata, providing useful behavioral context beyond the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no fluff, front-loaded with key information (list vs lookup, output purpose, chain support). Every sentence is necessary and well-placed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description adequately explains the return value (LP metadata for vip_provide_and_delegate). It covers chain context and dual functionality. Minor omission: it doesn't specify whether the result is a list or single object, but the context implies both depending on parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description supplements schema parameter descriptions by noting that metadataQuote is for looking up a specific pair and that chain defaults to L1 with L2 examples. With 100% schema coverage, this adds contextual value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists DEX liquidity pool pairs or looks up a specific pair by quote token metadata, and explicitly ties the output to the vip_provide_and_delegate tool. This distinguishes it from siblings, none of which are DEX-pair-specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description indicates when to use the tool (to obtain LP metadata for vip_provide_and_delegate) and specifies chain availability (Initia L1 and Minimove). It does not explicitly exclude scenarios or list alternatives, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_executeB
Execute a Move entry function (state-changing). Available on Initia L1 and Minimove chains.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain name or chain ID. Defaults to L1 ("initia"). L2 examples: "Cabal", "Echelon", "Inertia". | initia |
| moduleAddress | Yes | Module owner address (e.g., "0x1") | |
| moduleName | Yes | Module name | |
| functionName | Yes | Entry function name | |
| typeArgs | No | Type arguments | |
| args | No | Function arguments | |
| dryRun | No | Preview tx without chain communication. | |
| confirm | No | Set true to broadcast. Otherwise returns simulation only. | |
| memo | No | Optional transaction memo | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description mentions 'state-changing' which aligns with readOnlyHint=false, but it does not disclose other important behavioral traits such as the need for signing, gas costs, or transaction submission process. With no annotations explaining destructiveHint, the description fails to provide adequate transparency for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that clearly conveys the core purpose. It is extremely concise with no redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (10 parameters, no output schema), the description is too brief. It omits critical context such as how to use dryRun/confirm, network selection, and the overall transaction flow. It does not help an agent decide between this and similar tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so the description does not need to reiterate parameters. However, it adds value by noting chain availability (Initia L1 and Minimove), which is not in the schema. This enhances understanding of the 'chain' parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it executes a state-changing Move entry function, which distinguishes it from read-only tools like move_view. However, it could be more specific about what 'Execute' entails compared to other Move tools like move_script.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies it is for state-changing operations, but it does not explicitly state when to use this tool versus alternatives like move_view or move_script. The presence of dryRun and confirm parameters suggests usage patterns, but these are not explained.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_metadata_denomARead-only
Convert a Move metadata address to its token denom. Available on Initia L1 and Minimove chains.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain name or chain ID. Defaults to L1 ("initia"). L2 examples: "Cabal", "Echelon", "Inertia". | initia |
| metadata | Yes | Move metadata address (e.g., "0x1::native_uinit::Coin") | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint, and description adds chain availability but no additional behavioral traits like error handling or output format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler, front-loaded with key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple conversion tool; schema covers parameters, but lacks details on error cases or output format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so description adds no extra meaning beyond schema descriptions; baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (convert), input (Move metadata address), and output (token denom), and distinguishes it from sibling tools like 'move_denom_metadata'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or alternatives provided; usage is implied by the tool's name and purpose but lacks guidance on context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_module_abiARead-only
Get the ABI (functions, structs, type params) of a Move module. Available on Initia L1 and Minimove chains.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain name or chain ID. Defaults to L1 ("initia"). L2 examples: "Cabal", "Echelon", "Inertia". | initia |
| moduleAddress | Yes | Module owner address (e.g., "0x1") | |
| moduleName | Yes | Module name (e.g., "coin") | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, confirming no side effects. The description adds value by specifying that the ABI includes functions, structs, and type params, which goes beyond the annotation. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two short sentences. The first sentence immediately states the purpose, and the second provides chain context. No superfluous words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read operation with well-documented parameters, the description covers the key aspects. It could mention error cases or what happens if the module doesn't exist, but given no output schema, the current level is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (all 4 parameters have descriptions). The description does not add new information about parameters beyond what is in the schema, so it meets the baseline for well-documented schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'ABI (functions, structs, type params) of a Move module', making the purpose unambiguous. It differentiates itself from siblings like 'move_execute' or 'move_view' by specifying it retrieves the ABI.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It mentions availability on Initia L1 and Minimove chains, providing some usage context. However, it does not explicitly state when to use this tool over alternatives (e.g., move_view or move_modules), nor does it provide exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_modulesARead-only
List all Move modules deployed at an address. Use this to discover available modules before calling move_module_abi. Available on Initia L1 and Minimove chains.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain name or chain ID. Defaults to L1 ("initia"). L2 examples: "Cabal", "Echelon", "Inertia". | initia |
| address | Yes | Account address to list modules for (e.g., "0x1") | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, and the description confirms a read operation. The description adds context about chain specificity (Available on Initia L1 and Minimove chains) but lacks details on behavioral traits like pagination, limits, or side effects. Annotations already cover the safety profile, so the description adds moderate value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of two sentences. The first sentence directly states the main purpose, and the second provides crucial usage guidance and scope. Every word is purposeful, with no redundant or extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description does not explain the return format. For a list tool, knowing the response structure (e.g., module names) would be helpful, but the purpose and usage are adequately covered. The missing output description slightly reduces completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter having a clear description in the schema. The tool's description adds no new details beyond the schema fields; it merely reiterates the chain info. Baseline 3 is appropriate since the schema already defines parameters well.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with a clear verb+resource: 'List all Move modules deployed at an address.' It also distinguishes itself from the sibling tool 'move_module_abi' by stating 'before calling move_module_abi', making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool: 'Use this to discover available modules before calling move_module_abi.' It also mentions chain availability, but does not provide explicit when-not-to-use or alternative tools, though the guidance is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_publishB
Publish (deploy) Move module bytecode to chain. Available on Initia L1 and Minimove chains.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain name or chain ID. Defaults to L1 ("initia"). L2 examples: "Cabal", "Echelon", "Inertia". | initia |
| codeBytes | Yes | Module bytecode as hex string | |
| upgradePolicy | No | Upgrade policy for the module | compatible |
| dryRun | No | Preview tx without chain communication. | |
| confirm | No | Set true to broadcast. Otherwise returns simulation only. | |
| memo | No | Optional transaction memo | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
While annotations already indicate it is a write operation (readOnlyHint: false) and non-destructive (destructiveHint: false), the description adds minimal behavioral context beyond confirming it deploys to chain. No details on side effects, permissions, or execution behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that directly states the tool's purpose with zero wasted words. It is front-loaded and efficiently communicates the core function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool complexity (7 parameters, one required) and no output schema, the description is sufficient but lacks context on how parameters like dryRun and confirm affect behavior, and does not explain return values or error cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the baseline is 3. The description does not add any extra meaning beyond the schema; it simply summarizes the tool's purpose without elaborating on parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Publish (deploy) Move module bytecode to chain') with a specific verb and resource, and distinguishes it from sibling tools like move_execute or move_view by focusing on module deployment.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lacks any guidance on when to use this tool versus alternatives. It only mentions chain availability but provides no when-to-use, when-not-to-use, or exclusion conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_resource_getARead-only
Query a Move resource at an address. Available on Initia L1 and Minimove chains.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain name or chain ID. Defaults to L1 ("initia"). L2 examples: "Cabal", "Echelon", "Inertia". | initia |
| address | Yes | Account address holding the resource | |
| structTag | Yes | Resource struct tag (e.g., "0x1::coin::CoinStore<0x1::native_uinit::Coin>") | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark readOnlyHint=true, so the description's 'Query' is consistent and adds no contradiction. It adds chain availability context but does not disclose other behaviors like error handling, rate limits, or authentication needs. Adequate but not enriched.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence conveying purpose and scope clearly. No redundancy, but could be slightly more structured with explicit chain info placement. Acceptably concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Schema is well-covered and no output schema exists, but the description does not explain response format, pagination (if any), error scenarios (e.g., resource not found), or usage nuances. For a straightforward query tool, it is minimally adequate but incomplete for complex use cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema covers 100% of parameters with descriptions (chain, address, structTag, network). The description itself adds no extra parameter semantics beyond what the schema provides, so baseline score is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool queries a specific Move resource at an address, with explicit scope of chains (Initia L1 and Minimove). This distinguishes it from sibling tools like move_resources (list resources) and move_view (execute view functions).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for querying a resource by address and struct tag but lacks explicit guidance on when not to use it or comparisons with alternatives like move_resources or move_view. No exclusion or alternative tool mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_resourcesARead-only
List all Move resources held by an address. Use this to discover available resources before calling move_resource_get with a specific struct tag. Available on Initia L1 and Minimove chains.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain name or chain ID. Defaults to L1 ("initia"). L2 examples: "Cabal", "Echelon", "Inertia". | initia |
| address | Yes | Account address to list resources for | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true. Description adds chain context but no additional behavioral traits like pagination, rate limits, or result format. With annotations present, bar is lower but description adds limited value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise, front-loaded sentences. Each sentence provides distinct value: purpose, usage guidance, and chain availability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no output schema but is a straightforward list operation. Description covers purpose, usage, and chain context adequately for the complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all three parameters. Description does not add extra parameter information beyond the schema, meeting baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'List all Move resources held by an address' (specific verb+resource). It distinguishes from sibling move_resource_get by noting this is for discovery before using that tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Use this to discover available resources before calling move_resource_get with a specific struct tag.' Also notes chain availability (Initia L1 and Minimove).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_scriptA
Execute a Move script (one-off bytecode, not published). Available on Initia L1 and Minimove chains.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain name or chain ID. Defaults to L1 ("initia"). L2 examples: "Cabal", "Echelon", "Inertia". | initia |
| codeBytes | Yes | Script bytecode as hex string | |
| typeArgs | No | Type arguments | |
| args | No | Function arguments as JSON-encoded strings | |
| dryRun | No | Preview tx without chain communication. | |
| confirm | No | Set true to broadcast. Otherwise returns simulation only. | |
| memo | No | Optional transaction memo | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false and destructiveHint=false, so the description doesn't need to repeat that. However, the description adds that it executes a script, implying state modification, but does not disclose potential side effects, failure modes, or required context like gas. It provides some value beyond annotations but is still minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences that directly state purpose and scope. Every word is necessary, and there is no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 8 parameters and no output schema, the description is minimal. However, the input schema provides decent descriptions for all parameters, including dryRun and confirm, which outline the workflow. The description alone may not be fully complete for an agent without reading the schema, but combined it is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description does not add any additional parameter information beyond what the schema already provides. Thus, it contributes no extra semantic value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (Execute), the resource (Move script), and specifies it's 'one-off bytecode, not published', which distinguishes it from sibling tools like move_publish and move_execute. It also mentions availability on specific chains, providing clear scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies that the tool is for temporary scripts ('not published'), but it does not explicitly state when to use it over alternatives like move_execute or move_publish. No exclusions or alternative tool names are given, so guidance is implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_table_entryBRead-only
Query a Move table entry by handle and key. Available on Initia L1 and Minimove chains.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain name or chain ID. Defaults to L1 ("initia"). L2 examples: "Cabal", "Echelon", "Inertia". | initia |
| tableHandle | Yes | Table handle (hex string) | |
| key | Yes | Table key value | |
| keyType | Yes | Move type of the key (e.g., "address", "u64") | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the description's 'query' matches. It adds no additional behavioral traits beyond chain availability, which is covered by the annotation's read-only nature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences are concise and front-loaded with the core action. Could benefit from slight restructuring but overall efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description omits return format details, which is important for a query tool with no output schema. It mentions chain availability but lacks context on how to specify L2 vs L1 (though covered in schema).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with full descriptions for each parameter. The description does not enhance understanding beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool queries a Move table entry by handle and key. It specifies availability on Initia L1 and Minimove chains, distinguishing it from other move-related tools like move_resource_get or move_view.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives such as move_resource_get or move_view. The description only mentions chain availability without usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_viewBRead-only
Call a Move view function (read-only). Available on Initia L1 and Minimove chains.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain name or chain ID. Defaults to L1 ("initia"). L2 examples: "Cabal", "Echelon", "Inertia". | initia |
| moduleAddress | Yes | Module owner address (e.g., "0x1") | |
| moduleName | Yes | Module name (e.g., "coin") | |
| functionName | Yes | View function name (e.g., "balance") | |
| typeArgs | No | Type arguments | |
| args | No | Function arguments | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, so the description adds minor context about chain availability. No contradictions, but no additional behavioral details beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no redundancy. Every phrase adds value: verb, resource, read-only indicator, and chain availability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, but given the annotations and schema completeness, the description covers the essential purpose. Lacks explanation of return value variability across view functions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for all parameters. The description adds no extra meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool calls a Move view function and is read-only. It specifies chain availability but does not distinguish from similar sibling tools like move_execute or move_script.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. The read-only nature is stated, but no exclusions or comparisons to write tools are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
opbridge_getARead-only
Get detailed information about a specific OPInit bridge by its ID.
| Name | Required | Description | Default |
|---|---|---|---|
| bridgeId | Yes | OPInit bridge ID | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=true, and the description aligns with a read operation. No additional behavioral details beyond what annotations convey. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no wasted words. Efficiently communicates the tool's function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-by-ID tool with optional network parameter, the description plus schema provide sufficient context. No output schema exists, but the description implies 'detailed information' which is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema covers 100% of parameters with descriptions. The tool description adds no extra meaning beyond the schema, so baseline score applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Get detailed information about a specific OPInit bridge by its ID.' The verb 'get' and resource 'OPInit bridge' are explicit, and it distinguishes from sibling tools like opbridge_list (which likely lists all bridges).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives such as opbridge_list or opbridge_token_pairs. The context is only implied by the tool name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
opbridge_listARead-only
List all OPInit bridges with their config. Returns paginated results (default 10).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results per page (default 10). Use with offset to paginate. | |
| offset | No | Results to skip for pagination | |
| reverse | No | Reverse result order (e.g., newest first for proposals) | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, so the description adds value by noting pagination behavior (default 10 results). This helps the agent understand data retrieval characteristics beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose. Every word is necessary and no redundancy. Highly concise and structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description explains the result (list with config, paginated). It doesn't mention default network behavior, but the schema handles that. Acceptable for a straightforward list tool with good annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description does not need to repeat parameter details. The mention of pagination is already implied by limit/offset descriptions in schema. No significant additional parameter semantics added.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action (list), resource (OPInit bridges), and scope (all). This distinguishes it from siblings like opbridge_get (single bridge) and opbridge_token_pairs (token pairs).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description implies usage for obtaining a list of all bridges, but does not explicitly differentiate when to use this vs alternatives like opbridge_get or opbridge_token_pairs. No guidance on exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
opbridge_token_pair_by_l1_denomARead-only
Find the L2 token for a given L1 denomination on a specific bridge.
| Name | Required | Description | Default |
|---|---|---|---|
| bridgeId | Yes | OPInit bridge ID | |
| l1Denom | Yes | L1 token denomination (e.g., "uinit") | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true. Description adds minimal behavioral context, no mention of side effects or constraints. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, short and front-loaded with the verb. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, description adequately explains the operation. Slight gap in not describing return format, but sufficient for a simple lookup.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with each parameter described. Description adds minimal extra meaning beyond the schema, just clarifies the purpose of the parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses specific verb 'Find' and clearly states the resource: 'L2 token for a given L1 denomination on a specific bridge.' This distinguishes it from sibling tools like opbridge_token_pair_by_l2_denom and opbridge_list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool vs alternatives. The description implies usage for reverse mapping, but doesn't mention opbridge_token_pair_by_l2_denom or other related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
opbridge_token_pair_by_l2_denomARead-only
Find the L1 token for a given L2 denomination on a specific bridge.
| Name | Required | Description | Default |
|---|---|---|---|
| bridgeId | Yes | OPInit bridge ID | |
| l2Denom | Yes | L2 token denomination | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description's 'Find' aligns with a read operation. No additional behavioral context (e.g., return format, null handling) is provided beyond what annotations offer.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is direct and to the point, containing no unnecessary words or information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no output schema, the description does not explain the return value format. While the purpose is clear, an agent might benefit from knowing that the result is an L1 token identifier. However, it is adequate for a simple lookup.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with parameter descriptions. The description adds no further semantic detail beyond the schema, resulting in a baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Find') and the resource ('L1 token') with specific context ('for a given L2 denomination on a specific bridge'). It distinguishes from sibling tools like 'opbridge_token_pair_by_l1_denom' (opposite direction) and 'opbridge_token_pairs' (list all pairs).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use (when you have an L2 denom and need the L1 token), but does not explicitly mention when not to use or suggest alternatives. No guidance on conflicting siblings or edge cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
opbridge_token_pairsARead-only
List token pair mappings (L1 <-> L2) for a specific bridge. Returns paginated results (default 10).
| Name | Required | Description | Default |
|---|---|---|---|
| bridgeId | Yes | OPInit bridge ID | |
| limit | No | Max results per page (default 10). Use with offset to paginate. | |
| offset | No | Results to skip for pagination | |
| reverse | No | Reverse result order (e.g., newest first for proposals) | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint: true, so the description adds no new behavioral context beyond pagination details. No contradictions; description aligns with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences, front-loading purpose (list token pairs) and key behavior (paginated results). No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description could better describe the return structure. It mentions pagination but not what a token pair mapping entry contains. However, the schema covers parameters well, and the tool's purpose is straightforward.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the tool description does not add additional meaning to parameters beyond what the schema already provides. The description mentions 'for a specific bridge' and pagination but does not elaborate on parameter values or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists token pair mappings for a specific bridge, specifying L1 <-> L2 and pagination. It distinguishes from siblings like opbridge_get (single bridge) and opbridge_token_pair_by_l1_denom (lookup by token).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use case by saying 'for a specific bridge', but lacks explicit guidance on when to use this over sibling tools like opbridge_token_pair_by_l1_denom or opbridge_token_pair_by_l2_denom. No when-not-to-use or prerequisites mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
portfolio_getARead-only
Get aggregated token balances across all chains (L1 + all L2s) for an address.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Address in bech32, hex, or .init format. Use "me" for the signer's own address. | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, covering safety. The description adds behavioral context about cross-chain aggregation but does not mention rate limits, pagination, or other traits. Given the existing annotation, the description adds moderate value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 12 words, front-loaded with the verb and resource. Every word contributes meaning with no redundancy or unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only aggregation tool with well-documented parameters and no output schema, the description adequately covers purpose and scope. It explains the key behavioral trait (cross-chain) and parameter semantics, making it sufficient for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both parameters having clear descriptions. The tool description does not add any additional meaning beyond what the schema already provides, so baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves aggregated token balances across all chains for a given address, using a specific verb and resource. It distinguishes itself from siblings like token_balance (single chain) by explicitly mentioning 'across all chains (L1 + all L2s)'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly indicates when to use this tool (when needing cross-chain portfolio data) but lacks explicit exclusions or comparisons to alternatives. With many siblings, more direct guidance would improve, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
proposal_getARead-only
Get detailed information about a specific governance proposal.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain name or chain ID. Defaults to L1 ("initia"). L2 examples: "Cabal", "Echelon", "Inertia". | initia |
| proposalId | Yes | Proposal ID | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as readOnlyHint=true, but the description adds no further behavioral traits (e.g., rate limits, auth needs, or what 'detailed information' contains). It does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single, concise sentence that immediately conveys the tool's purpose. No wasted words, appropriately front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read operation with good annotations and full schema coverage, the description is sufficient. No output schema exists, but the purpose is clear and the agent can infer return structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description does not add any parameter-specific meaning beyond what the schema already provides via its individual parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action ('Get') and the resource ('detailed information about a specific governance proposal'), distinguishing it from sibling tool 'proposal_list' which lists proposals.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives (e.g., proposal_list). Only states the basic purpose, leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
proposal_listARead-only
List governance proposals on a chain. Returns paginated results (default 10). Use limit/offset to navigate. Filter by status, voter, or depositor.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain name or chain ID. Defaults to L1 ("initia"). L2 examples: "Cabal", "Echelon", "Inertia". | initia |
| proposalStatus | No | Filter by proposal status. Omit to list all. | |
| voter | No | Filter by voter address | |
| depositor | No | Filter by depositor address | |
| limit | No | Max results per page (default 10). Use with offset to paginate. | |
| offset | No | Results to skip for pagination | |
| reverse | No | Reverse result order (e.g., newest first for proposals) | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true. Description adds behavioral details: pagination default 10 and filtering capabilities. No mention of rate limits or response format, but sufficient for a list tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with purpose, no filler. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers pagination and filters, but omits mention of chain and network parameters which are important for multi-chain context. Could be more complete given 8 parameters and no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. Description summarizes filtering by status, voter, depositor, but adds no new semantic beyond what schema descriptions already provide (e.g., chain, network, reverse not elaborated).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'List governance proposals on a chain', which is a specific verb and resource. Distinguishes from sibling 'proposal_get' by listing vs single retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides guidance on pagination and filtering options, but does not explicitly state when to use vs alternatives like 'proposal_get'. Usage context is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
simulate_txARead-only
Simulate a transaction to estimate gas and verify execution feasibility. Requires signer to be configured.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain name or chain ID. Defaults to L1 ("initia"). L2 examples: "Cabal", "Echelon", "Inertia". | initia |
| msgs | Yes | Array of message objects to simulate | |
| memo | No | Optional transaction memo | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds useful behavioral context beyond the readOnlyHint annotation by stating that a signer must be configured. This helps the agent understand setup requirements. However, it does not detail the simulation's behavior (e.g., no side effects, possible failure modes).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two short sentences, front-loading the purpose and essential prerequisite. Every word is necessary; no waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema, and the description fails to indicate what the simulation returns (e.g., gas estimate, success status). Given the tool's role in verifying transaction feasibility, omitting output information is a significant gap for an agent. Additionally, no limitations or failure conditions are mentioned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All parameters are described in the input schema (100% coverage), so the description adds little value. The brief mention of 'msgs' and 'chain' in the description is redundant with the schema descriptions. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool simulates a transaction to estimate gas and verify execution feasibility. It uses a specific verb ('simulate') and resource ('transaction'), distinguishing it from siblings that send actual transactions (e.g., bank_send, move_execute).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions a prerequisite ('Requires signer to be configured') but provides no guidance on when to use this tool versus alternatives, such as actual transaction tools or other simulation tools. It does not explicitly state that simulation should precede actual sends.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
staking_annual_provisionsARead-only
Get the current annual token provisions (inflation). Useful for estimating staking APR. L1 only.
| Name | Required | Description | Default |
|---|---|---|---|
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint: true, so no mutation. The description adds that it provides 'current annual token provisions (inflation)' and is L1-only, which are behavioral traits beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the main purpose, and contains no unnecessary words. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with one optional parameter. The description explains the purpose and constraint (L1 only). However, without an output schema, it could be more explicit about the return value format (e.g., denomination). Still, it is mostly complete for a basic read operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the schema already describes the 'network' parameter. The description does not add further detail about the parameter, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get the current annual token provisions (inflation)' which specifies a verb and resource. It also distinguishes itself from sibling staking tools like staking_manage and delegation_get by focusing on inflation data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions 'Useful for estimating staking APR' which implies context for use, and 'L1 only' sets a clear constraint. However, it does not explicitly mention when to avoid this tool or compare to alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
staking_manageB
Manage staking: delegate, undelegate, redelegate, or claim rewards.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain name or chain ID. Defaults to L1 ("initia"). L2 examples: "Cabal", "Echelon", "Inertia". | initia |
| action | Yes | Staking action to perform | |
| validatorAddress | Yes | Target validator address or moniker name | |
| amount | No | Amount to stake/unstake (required for delegate/undelegate/redelegate) | |
| denom | No | Token denomination | uinit |
| redelegateToValidator | No | Destination validator address or moniker name (for redelegate) | |
| dryRun | No | Preview tx without chain communication. | |
| confirm | No | Set true to broadcast. Otherwise returns simulation only. | |
| memo | No | Optional transaction memo | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description mentions 'Manage staking' implying mutation, but does not disclose behavioral traits such as the need for confirmation (confirm param) or the simulation-only default. Annotations indicate readOnlyHint=false and destructiveHint=false, which are not contradicted but add little context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, very concise and front-loads the purpose. However, it is brief, potentially missing context that could be added in a separate sentence. Structurally, it is adequate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 10 parameters, some with complex behavior (e.g., dryRun, confirm), and no output schema, the description does not explain the workflow or return value. It lacks completeness for an agent to understand the full behavior without additional inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the input schema already describes each parameter thoroughly. The description does not add any additional meaning or context to the parameters beyond the schema. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Manage' and the resource 'staking', and lists the specific actions (delegate, undelegate, redelegate, claim rewards). This distinguishes it from read-only staking tools like delegation_get and staking_pool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs. alternatives. Sibling tools like delegation_get and validator_get exist but are not mentioned. The description does not specify prerequisites or when to choose this tool over other staking-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
staking_poolARead-only
Get the network staking pool summary: total bonded tokens, unbonded tokens, and voting power weights. L1 only.
| Name | Required | Description | Default |
|---|---|---|---|
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark readOnlyHint=true, so the description's behavioral burden is lower. It adds value by specifying the exact data returned (bonded/unbonded tokens, voting power weights) and the L1-only constraint, which goes beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that conveys all essential information with no unnecessary words. Every phrase earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with good annotations and a basic parameter, the description sufficiently covers what the tool does and its scope (L1 only). It lacks details like output format or example, but the tool is straightforward and does not require extensive context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% coverage for its single parameter (network) with a description. The tool description adds no additional parameter meaning, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and identifies the resource ('network staking pool summary'), listing key data fields (bonded/unbonded tokens, voting power weights) and noting it's L1 only. This clearly distinguishes it from siblings like staking_manage or delegation_get.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states 'L1 only,' which hints at a scope restriction, but does not explicitly compare to alternative tools (e.g., staking_manage, delegation_get) or provide when-not-to-use guidance. The context is clear but lacks exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
token_balanceARead-only
Get token balance for any token type: native denoms, ERC20, CW20, or Move FA. Automatically resolves contract tokens via the chain VM.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain name or chain ID. Defaults to L1 ("initia"). L2 examples: "Cabal", "Echelon", "Inertia". | initia |
| address | Yes | Address in bech32, hex, or .init format. Use "me" for the signer's own address. | |
| denom | Yes | Token denomination, contract address, or Move asset type | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description is consistent with the readOnlyHint annotation, as it states 'Get token balance'. It adds value by mentioning automatic resolution of contract tokens, but does not disclose potential errors, rate limits, or behavior for unsupported token types. With annotations already signaling read-only, the description provides moderate additional context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loading the core purpose and adding a key feature in the second sentence. Every word is meaningful and there is no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the description covers the input and tokens, it lacks details about the output format (e.g., balance as a string or number) and error handling. Given the absence of an output schema, the description could be more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for its 4 parameters. The description does not add any parameter-specific details beyond what the schema already provides, so it meets the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'token balance', and specifies support for multiple token types (native denoms, ERC20, CW20, Move FA). It distinguishes itself from sibling tools like 'token_info' or 'token_list' by focusing on balance retrieval and automatic contract resolution.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives among the many sibling tools. It does not mention any prerequisites, exclusions, or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
token_infoARead-only
Get token metadata (name, symbol, decimals) by resolving the token contract for the chain VM. Works with contract tokens (ERC20, CW20, Move FA) and native denoms.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain name or chain ID. Defaults to L1 ("initia"). L2 examples: "Cabal", "Echelon", "Inertia". | initia |
| denom | Yes | Token denomination, contract address, or Move asset type | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description confirms the read-only nature by stating it 'gets' metadata. No additional behavioral details (e.g., error handling, caching, or side effects) are provided beyond what annotations cover.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two clear sentences with the purpose front-loaded. No redundant or placeholder content; every word adds information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool, the description is mostly complete: it details what is retrieved and the input parameters. Minor gap: it does not describe error behaviors or the exact structure of the returned metadata, though the schema covers inputs well.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% coverage with descriptions for all three parameters. The description adds value by revealing the returned fields (name, symbol, decimals), which is absent from the schema and compensates for missing output schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves token metadata (name, symbol, decimals) by resolving the token contract. It explicitly mentions support for both contract tokens (ERC20, CW20, Move FA) and native denoms, distinguishing it from sibling tools like denom_metadata or token_balance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide guidance on when to use this tool versus alternatives such as denom_metadata for more detailed metadata or token_list for enumeration. It implies basic usage but lacks explicit context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
token_listARead-only
List all registered tokens on a specific chain. Returns known assets from the registry with denom, symbol, decimals, and metadata.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain name or chain ID. Defaults to L1 ("initia"). L2 examples: "Cabal", "Echelon", "Inertia". | initia |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as read-only. The description adds that it returns assets from a registry with specific fields (denom, symbol, decimals, metadata), which is useful but does not disclose potential pagination, rate limits, or data freshness.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. The first sentence states the action and scope, the second describes the output fields. Information is front-loaded and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is adequate for a simple list tool but lacks information about pagination, result limits, or when to use token_search for filtering. It does not clarify the distinction between 'all registered tokens' and other token queries.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds value by specifying that the tool returns denom, symbol, decimals, and metadata, which is not evident from the schema alone. This helps the agent understand the output format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists all registered tokens on a specific chain, and it distinguishes from siblings like token_info, token_balance, and token_search by being a broad listing rather than a specific query.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like token_search or token_info. The description does not mention prerequisites, exclusions, or contextual triggers.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
token_searchARead-only
Search tokens by symbol (e.g., "USDC", "INIT") across all chains or on a specific chain. Returns matching assets with denom, decimals, and chain info.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Token symbol to search for (case-insensitive, e.g., "USDC", "INIT") | |
| chain | No | Optional chain to restrict search to | initia |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true. The description adds that the tool returns matching assets with denom, decimals, and chain info, but does not disclose additional behavioral traits beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with an example, front-loaded with the core action, and contains no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 3 parameters (1 required), no output schema, the description covers the main purpose and return values. It does not explain the network parameter, but the schema's enum covers it. Overall adequate for a search tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters. The description adds context (case-insensitive search, across chains) but does not significantly augment parameter meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'search', the resource 'tokens by symbol', provides examples, and specifies scope (across all chains or specific chain). It distinguishes from sibling tools like token_list and token_info by focusing on symbol search and return values.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description indicates when to use (searching tokens by symbol) but does not explicitly state when not to use or mention alternatives. The context is clear but lacks exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tx_by_addressARead-only
Get recent transactions signed by an address. Returns paginated results in reverse chronological order (default 10). Use limit/offset to navigate.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain name or chain ID. Defaults to L1 ("initia"). L2 examples: "Cabal", "Echelon", "Inertia". | initia |
| address | Yes | Address in bech32, hex, or .init format. Use "me" for the signer's own address. | |
| limit | No | Max results per page (default 10). Use with offset to paginate. | |
| offset | No | Results to skip for pagination | |
| reverse | No | Reverse result order (e.g., newest first for proposals) | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description aligns with the readOnlyHint annotation, describing a read-only operation. It adds behavioral details like default limit of 10, reverse chronological order, and pagination, which go beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—two sentences, no fluff. Front-loaded with the main purpose, then quick details. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a listing tool with 6 parameters and no output schema, the description is adequate but not exhaustive. It covers the main use case (recent transactions by address, paginated) but omits details like returned fields or error handling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds little beyond what the schema already provides (e.g., 'Navigate with limit/offset' is implicit in schema descriptions). No new semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get', the resource 'recent transactions signed by an address', and adds specifics like pagination and reverse chronological order. It distinguishes from siblings like tx_get and tx_search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions using limit/offset for navigation but does not explicitly state when to use this tool versus alternatives (e.g., tx_search, tx_get). No when-not-to-use guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tx_getARead-only
Get transaction info by hash. Default: human-readable decoded output with VM-aware decoding (Move/EVM/Wasm function names, decoded args). Use raw=true only when you need raw proto data.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain name or chain ID. Defaults to L1 ("initia"). L2 examples: "Cabal", "Echelon", "Inertia". | initia |
| txHash | Yes | Transaction hash | |
| raw | No | Return raw proto data instead of decoded output | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral context beyond the readOnlyHint annotation by explaining the default human-readable decoded output and the raw option, though it does not detail potential performance characteristics or limitations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, consisting of two efficient sentences that front-load the core purpose and follow with specific usage guidance, with no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description adequately covers the tool's core functionality and parameter defaults, though it does not describe the return format beyond 'human-readable decoded output'; given the absence of an output schema, this is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already has 100% parameter description coverage, but the description adds value by explaining the default behavior for chain (with examples) and clarifying when to use the raw parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets transaction info by hash, specifying that it returns human-readable decoded output with VM-aware decoding, distinguishing it from other transaction-related tools like tx_by_address and tx_search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear guidance on when to use the optional raw parameter ('Use raw=true only when you need raw proto data'), but does not explicitly contrast this tool with sibling tools for retrieving transactions, such as tx_by_address or tx_search.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tx_searchARead-only
Search transactions using CometBFT query syntax (e.g., "transfer.sender='init1...'", "tx.height=12345").
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain name or chain ID. Defaults to L1 ("initia"). L2 examples: "Cabal", "Echelon", "Inertia". | initia |
| query | Yes | CometBFT TMQL query string | |
| page | No | Page number (1-based) | |
| perPage | No | Results per page | |
| orderBy | No | Sort order by block height | desc |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true. The description adds minimal behavioral context beyond the query syntax example; no mention of pagination, rate limits, or result structure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with an example, front-loaded with action and resource. No wasted words; every part earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite good schema coverage, the description lacks details on pagination, ordering, or chain selection nuances. The output schema is absent, so return format is undocumented. Adequate but could be more comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all 6 parameters with descriptions (100% coverage). The description adds value by explaining the query format with examples, aiding understanding of the query parameter beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches transactions using CometBFT query syntax, with an example. It distinguishes from siblings like tx_by_address (address-based) and tx_get (by hash).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for flexible queries but does not explicitly state when to use this tool vs alternatives like tx_by_address or tx_get. No exclusions or when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
username_checkARead-only
Check if a .init username is available for registration.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | .init username to check (e.g., "alice") | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=true, confirming safe read operation. The description adds that it checks availability for registration, which aligns with read-only behavior but doesn't disclose return format or any other traits beyond what annotations already cover.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence that is front-loaded with the action and resource. No extraneous information, every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only check with well-documented parameters, the description is mostly complete. It lacks a hint about the return format (e.g., boolean), but given the simplicity and the presence of annotations, this is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% coverage with clear descriptions for both parameters (name with example, network with default). The tool description adds no additional semantic meaning beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action ('Check'), the resource ('.init username'), and the context ('available for registration'). This distinguishes it from sibling tools like username_resolve or username_record, which serve different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage before registration but provides no explicit guidance on when to use this tool versus alternatives like username_resolve or username_record. No when-not-to-use or contextual hints are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
username_metadataARead-only
Get NFT metadata for a .init username (avatar, description, attributes).
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | .init username (e.g., "alice" or "alice.init") | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as readOnlyHint=true. The description adds specific metadata fields returned, providing useful context beyond the annotation. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence that is front-loaded and directly states the tool's purpose. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool, complete parameter descriptions in the schema, and no output schema needed, the description adequately covers what the tool does and returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes both parameters (name and network) with 100% coverage. The description does not add additional meaning beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves NFT metadata for a .init username, listing specific fields (avatar, description, attributes). This distinguishes it from sibling tools like username_resolve or username_check.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide when-to-use guidance or contrast with alternatives. However, the name and description imply it's for metadata, and sibling tools have distinct purposes, so context is clear but no explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
username_recordARead-only
Get the full record for a .init username, including address and expiration.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | .init username (e.g., "alice" or "alice.init") | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, which is consistent with 'Get'. The description adds that it returns address and expiration, but does not disclose any additional behavioral traits such as authentication requirements, rate limits, or whether the record may be cached. With annotations covering the safety profile, a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence that is front-loaded with verb and object, no unnecessary words. Highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with 2 parameters and no output schema, the description gives a reasonable idea of return content ('address and expiration'). However, it does not specify if there are additional fields beyond those mentioned, which would be helpful for completeness. Still adequate for most use cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters thoroughly. The description implies the name parameter by mentioning '.init username' but adds no new details beyond what the schema provides. Baseline 3 for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action ('Get'), the resource ('full record for a .init username'), and includes what the record contains ('address and expiration'). This distinguishes it from siblings like username_resolve which likely only returns an address.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like username_resolve or username_metadata. The description does not mention exclusions or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
username_resolveARead-only
Resolve .init names to addresses or addresses to .init names. For hex<->bech32 conversion, use address_convert instead.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | Address or .init name to resolve | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=true, consistent with the description. No additional behavioral traits beyond the bidirectional resolution are disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences front-loaded with purpose and usage guidelines, no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool's behavior is simple and well-explained. No output schema exists, but the description is sufficient for this straightforward lookup operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both parameters well described. The tool description adds no extra parameter meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool resolves .init names to addresses or addresses to .init names, using a specific verb and resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly tells when to use this tool (bidirectional name resolution) and when not to (use address_convert for hex<->bech32 conversion).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validator_getARead-only
Get detailed information about a specific validator.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain name or chain ID. Defaults to L1 ("initia"). L2 examples: "Cabal", "Echelon", "Inertia". | initia |
| validatorAddr | Yes | Validator address or moniker name | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the description adds minimal behavioral context beyond stating 'detailed information' without specifics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no wasted words, and clearly front-loaded with the verb and object.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple read-only tool, but lacks specifics on what 'detailed information' includes, and no output schema is provided to fill that gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description does not add any additional meaning to the parameters beyond what is already in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('get') and resource ('detailed information about a specific validator'), distinguishing it from sibling 'validator_list' which likely returns a list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like 'validator_list'; usage is implied by the action but not clarified.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validator_listARead-only
List validators on a chain with their status, voting power, and commission. Returns paginated results (default 10). Use limit/offset to navigate. Filter by status to narrow results.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain name or chain ID. Defaults to L1 ("initia"). L2 examples: "Cabal", "Echelon", "Inertia". | initia |
| status | No | Filter by validator status. Omit to list all. | |
| limit | No | Max results per page (default 10). Use with offset to paginate. | |
| offset | No | Results to skip for pagination | |
| reverse | No | Reverse result order (e.g., newest first for proposals) | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=true, and description reinforces read-only nature. Adds context on pagination behavior and default page size, but does not disclose rate limits or authentication requirements beyond what is implied.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, immediately followed by practical usage details. No unnecessary words or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers main purpose and pagination. Lacks explicit mention of chain and network parameters, though schema provides defaults. For a simple read-only list tool, this is sufficient but not exhaustive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds meaning for limit, offset, and status, but omits chain, reverse, and network which are present in schema. Overall, adds moderate value beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the verb 'List' and the resource 'validators', specifying key attributes (status, voting power, commission). Distinguishes from sibling tools like validator_get by implying a list vs single item.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance on pagination (limit/offset) and filtering by status. However, does not explicitly contrast with alternative tools like validator_get for single validators.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vip_claimable_rewardsARead-only
Get claimable VIP rewards for an address from the VIP indexer API.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Address in bech32, hex, or .init format. Use "me" for the signer's own address. | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already indicates this is a read-only operation. The description adds the source (VIP indexer API) but does not disclose additional behavioral traits such as rate limits or data freshness constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no unnecessary words. It efficiently conveys the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has low complexity (2 params, no output schema), so a short description is reasonable. However, missing information about the return format (e.g., list of rewards or amounts) limits completeness for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with detailed descriptions for both parameters (address format, default network). The tool description does not add further semantic value beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get claimable VIP rewards for an address from the VIP indexer API,' which specifies the verb (Get), resource (claimable VIP rewards), and source (VIP indexer API). This distinguishes it from sibling tools like vip_claim_rewards or vip_claim_staking_rewards.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies it is for querying claimable rewards, but it does not explicitly state when to use this tool versus alternatives (e.g., vip_claim_rewards for actual claiming). The readOnlyHint annotation provides some context, but explicit guidance is missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vip_claim_rewardsA
Claim all pending VIP rewards. Fetches proofs from the VIP indexer and submits claim transactions.
| Name | Required | Description | Default |
|---|---|---|---|
| dryRun | No | Preview tx without chain communication. | |
| confirm | No | Set true to broadcast. Otherwise returns simulation only. | |
| memo | No | Optional transaction memo | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate non-read-only and non-destructive. The description adds that it fetches proofs and submits claim transactions, which provides some behavioral context but omits details about irreversibility, fees, failure modes, or whether it claims all rewards at once. Adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. Front-loaded with the verb 'Claim'. Efficient and to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the basic action but lacks nuance: no mention of return values (no output schema), no handling of empty rewards, no potential errors. Sibling context hints at a broader VIP ecosystem, but the description provides enough for a straightforward claim.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all 4 parameters (dryRun, confirm, memo, network). The description does not add meaning beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it claims all pending VIP rewards and outlines the process: fetching proofs from the VIP indexer and submitting claim transactions. This distinguishes it from sibling tools like vip_claimable_rewards (lists rewards) and vip_claim_staking_rewards (likely claims staking rewards only).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs. alternatives such as vip_claim_staking_rewards. Prerequisites (e.g., checking vip_claimable_rewards first) are not mentioned. The description only says what it does, not when to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vip_claim_staking_rewardsC
Claim staking rewards from VIP lock-staking delegations.
| Name | Required | Description | Default |
|---|---|---|---|
| dryRun | No | Preview tx without chain communication. | |
| confirm | No | Set true to broadcast. Otherwise returns simulation only. | |
| memo | No | Optional transaction memo | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false and destructiveHint=false, but the description adds no behavioral details beyond stating the action. It does not disclose that this tool broadcast a transaction, requires wallet state, or any potential side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no filler, front-loaded with the key verb and resource. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool that mutates blockchain state (write operation) with simulation vs broadcast parameters (dryRun, confirm), the description omits workflow context. No output schema, so agents lack expectations for returns. Minimal completeness for a non-trivial action.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters are documented in the schema. The description does not add any additional meaning to parameters; it merely restates the action. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Claim') and the resource ('staking rewards') with a specific qualifier ('from VIP lock-staking delegations'), distinguishing it from siblings like 'vip_claim_rewards' which may refer to a different type. However, the verb is directly inferred from the name, slightly reducing novelty.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus siblings such as 'vip_claimable_rewards' or 'vip_claim_rewards'. There is no mention of prerequisites, context, or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vip_delegateA
Lock-delegate tokens to a validator via VIP. Tokens are locked until the specified release time.
| Name | Required | Description | Default |
|---|---|---|---|
| metadata | Yes | Coin metadata identifier (e.g., "0x1::native_uinit::Coin") | |
| amount | Yes | Amount to delegate | |
| releaseTime | Yes | Unix timestamp when tokens can be unlocked | |
| validator | Yes | Validator address or moniker name | |
| dryRun | No | Preview tx without chain communication. | |
| confirm | No | Set true to broadcast. Otherwise returns simulation only. | |
| memo | No | Optional transaction memo | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate mutation (readOnlyHint=false) and non-destructive (destructiveHint=false). The description adds the locking behavior and release time constraint, but does not disclose other behavioral traits such as whether the delegation creates a position, requires prior VIP setup, or might fail due to insufficient balance. Adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence conveys purpose and key constraint efficiently. No unnecessary words. Could be slightly improved with structured bullets but remains concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 8 parameters (including dryRun, confirm, memo) and no output schema, the description does not explain simulation/broadcast workflow, return behavior, or potential errors. Agent lacks information on how to safely invoke the tool, especially for a mutation without output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents each parameter's purpose. The description adds no further semantics beyond the schema. Baseline score of 3 is appropriate given high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action (lock-delegate), the target (validator), the context (via VIP), and the constraint (locked until release time). Distinguished from sibling tools like 'vip_undelegate' or 'vip_provide_and_delegate'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description implies when to use (lock-delegation scenario) but does not explicitly state when not to use or compare with alternatives like 'vip_provide_and_delegate' (which also delegates) or 'vip_undelegate' (reverse operation). Missing explicit context for agent decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vip_extend_lockB
Extend the lock duration of a VIP lock-staking position.
| Name | Required | Description | Default |
|---|---|---|---|
| metadata | Yes | Coin metadata identifier | |
| amount | No | Amount (omit for full position) | |
| releaseTime | Yes | Current lock release time | |
| validator | Yes | Validator address or moniker name | |
| newReleaseTime | Yes | New lock release time (must be later than current) | |
| dryRun | No | Preview tx without chain communication. | |
| confirm | No | Set true to broadcast. Otherwise returns simulation only. | |
| memo | No | Optional transaction memo | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate mutation (readOnlyHint=false) but description adds no behavioral context. Does not disclose what happens on extension, such as effect on rewards or unstaking.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no fluff. Efficiently communicates the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and 9 parameters, description is too brief. Lacks explanation of return values, side effects, or best practices for setting newReleaseTime.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline 3. Description adds no extra meaning beyond the schema fields; e.g., does not explain 'lock duration' or relationship between releaseTime and newReleaseTime.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly identifies the action (extend), resource (lock duration of VIP lock-staking position). It is specific and distinguishes from sibling tools like vip_undelegate or vip_claim_rewards.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives. Does not mention prerequisites, scenarios, or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vip_gauge_voteB
Vote on VIP gauge weight distribution by specifying weights for each bridge.
| Name | Required | Description | Default |
|---|---|---|---|
| cycle | Yes | Voting cycle number | |
| votes | Yes | Array of bridge votes with weights | |
| dryRun | No | Preview tx without chain communication. | |
| confirm | No | Set true to broadcast. Otherwise returns simulation only. | |
| memo | No | Optional transaction memo | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations show non-read-only and non-destructive, but description adds no additional behavioral context such as side effects, prerequisites, or what happens after voting.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no wasted words. Front-loaded with action and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Lacks context about voting process, network effects, or expected outcomes. With 6 params and no output schema, more explanation needed for completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so description adds minimal value. Only mentions 'weights for bridges', which corresponds to 'votes' parameter but no detail on other params like cycle, confirm, dryRun.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it votes on VIP gauge weight distribution specifying weights for bridges. Verb+resource distinct from siblings like vip_gauge_vote_by_amount.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use vs. alternatives (e.g., vip_gauge_vote_by_amount). No prerequisites or context for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vip_gauge_vote_by_amountB
Vote on VIP gauge weight distribution by specifying exact amounts for each bridge.
| Name | Required | Description | Default |
|---|---|---|---|
| cycle | Yes | Voting cycle number | |
| votes | Yes | Array of bridge votes with amounts | |
| dryRun | No | Preview tx without chain communication. | |
| confirm | No | Set true to broadcast. Otherwise returns simulation only. | |
| memo | No | Optional transaction memo | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false (not read-only) and destructiveHint=false (not destructive). The description adds 'Vote' which implies a state change, but does not disclose additional behaviors such as the need for 'confirm' to broadcast, transaction costs, or effects on gauge weights. Without annotations providing deeper context, the description falls short.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no extraneous words. It efficiently conveys the core purpose without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite the tool having 6 parameters, including boolean flags for dry-run and confirmation, the description omits important context like the need for broadcasting, format of return values, and the difference from similar vote tools. The agent lacks enough information to use the tool correctly in all scenarios.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear parameter descriptions. The description's mention of 'exact amounts for each bridge' aligns with the 'votes' array, but adds no new meaning beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Vote on VIP gauge weight distribution' and the method 'by specifying exact amounts for each bridge.' It provides specific verb and resource, and distinguishes from sibling tool 'vip_gauge_vote' which likely uses different input format.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives like 'vip_gauge_vote.' It does not specify prerequisites, network, or confirmation requirements, leaving the agent to infer from the schema. No explicit when-not-to-use or alternative naming.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vip_positionsARead-only
Get all VIP lock-staking positions for an address. Shows locked delegations with metadata, validator, amount, and release time.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Address in bech32, hex, or .init format. Use "me" for the signer's own address. | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral context beyond the readOnlyHint annotation by detailing the returned fields (metadata, validator, amount, release time). It does not contradict annotations and provides useful insight into the tool's output, though it omits potential limitations like pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exceptionally concise, using two sentences to convey the purpose and output details. Every word contributes to understanding, with no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only query with two parameters and no output schema, the description is fully complete. It explains the action, resource, and returned data, meeting all contextual needs without requiring additional information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers both parameters with descriptions, resulting in 100% coverage. The description adds no additional meaning beyond the schema, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves all VIP lock-staking positions for an address, specifying the verb 'Get', the resource 'VIP lock-staking positions', and the data shown (metadata, validator, amount, release time). This distinguishes it from similar sibling tools like 'vip_vesting_positions' and 'vip_delegate'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool versus alternatives like 'vip_vesting_positions' or 'delegation_get'. While the resource is clearly defined, there is no guidance on exclusions or contextual conditions, leaving usage somewhat implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vip_provide_and_delegateB
Provide liquidity to a pair pool and lock-delegate the LP tokens to a validator in a single transaction.
| Name | Required | Description | Default |
|---|---|---|---|
| lpMetadata | Yes | LP pool metadata identifier (e.g., "0x1::pair::INIT_USDC") | |
| coinAAmount | Yes | Amount of coin A to provide | |
| coinBAmount | Yes | Amount of coin B to provide | |
| minLiquidity | No | Minimum LP tokens to receive (slippage protection, default 0) | |
| releaseTime | Yes | Unix timestamp when tokens can be unlocked | |
| validator | Yes | Validator address or moniker name | |
| dryRun | No | Preview tx without chain communication. | |
| confirm | No | Set true to broadcast. Otherwise returns simulation only. | |
| memo | No | Optional transaction memo | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are neutral (readOnlyHint=false, destructiveHint=false), so the description must bear the burden of behavioral disclosure. It only reveals that the operation is atomic ('single transaction'), but fails to describe side effects, error conditions, or required approvals. Minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that conveys the key purpose without any fluff. It is front-loaded and every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having 10 parameters and no output schema, the description provides no context about expected results, prerequisites, or operational flow. It is too brief for a complex multi-step transaction, leaving significant gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter having a description. The tool description does not add any further semantic value beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: providing liquidity to a pair pool and lock-delegating LP tokens in one transaction. It uses a specific verb-resource combination and distinguishes from siblings like vip_delegate and vip_stableswap_provide_and_delegate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the use case of combining two actions atomically, but does not explicitly state when to prefer this over separate tools or mention any prerequisites or alternatives. Usage guidelines are implied, not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vip_redelegateB
Move a VIP lock-staking position from one validator to another, optionally changing the lock duration.
| Name | Required | Description | Default |
|---|---|---|---|
| metadata | Yes | Coin metadata identifier | |
| amount | No | Amount to redelegate (omit for full position) | |
| srcReleaseTime | Yes | Source lock release time | |
| srcValidator | Yes | Source validator address or moniker name | |
| dstReleaseTime | Yes | Destination lock release time | |
| dstValidator | Yes | Destination validator address or moniker name | |
| dryRun | No | Preview tx without chain communication. | |
| confirm | No | Set true to broadcast. Otherwise returns simulation only. | |
| memo | No | Optional transaction memo | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate non-readOnly and non-destructive nature. The description adds no further behavioral details such as side effects, required permissions, or rate limits. It merely restates the action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence with no superfluous information. It is front-loaded with the primary action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 10 parameters and no output schema, the description is somewhat minimal. It does not explain return values or the effect of dryRun/confirm flags, though these are common patterns. Could provide more detail on expected behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are already well documented. The description adds only a brief mention of optionally changing lock duration, which aligns with dstReleaseTime but does not significantly enhance understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (move), the resource (VIP lock-staking position), and the target (from one validator to another). It differentiates from siblings like vip_delegate and vip_undelegate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like vip_delegate or when not to use it. The description lacks context about prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vip_stableswap_provide_and_delegateA
Provide liquidity to a stableswap pool (3+ tokens) and lock-delegate the LP tokens to a validator in a single transaction.
| Name | Required | Description | Default |
|---|---|---|---|
| lpMetadata | Yes | Stableswap pool metadata identifier (e.g., "0x1::stableswap::USDC_USDT_DAI") | |
| amounts | Yes | Amounts for each token in the pool, in order | |
| minLiquidity | No | Minimum LP tokens to receive (slippage protection, default 0) | |
| releaseTime | Yes | Unix timestamp when tokens can be unlocked | |
| validator | Yes | Validator address or moniker name | |
| dryRun | No | Preview tx without chain communication. | |
| confirm | No | Set true to broadcast. Otherwise returns simulation only. | |
| memo | No | Optional transaction memo | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a non-read, non-destructive write operation. The description adds the key behavioral trait of combining liquidity provision and delegation in one transaction, but does not elaborate on lock mechanics, auth needs, or consequences.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence of 17 words, front-loaded with the action, no redundancy. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the main purpose but omits important context like locking semantics, how releaseTime interacts with delegation, and the significance of '3+ tokens'. Schema fills most gaps, but a more complete description would aid comprehension of this complex tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions cover 100% of parameters, so baseline 3 is appropriate. The description adds no parameter-specific details beyond the overall action summary.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Provide liquidity... lock-delegate') and resource ('stableswap pool (3+ tokens)'), clearly distinguishing this tool from siblings like vip_delegate or general vip_provide_and_delegate by highlighting the pool type and combined action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives (e.g., vip_provide_and_delegate for other pools, or executing separate steps). The description implies applicability to stableswap pools but does not set boundaries or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vip_stage_infoARead-only
Get the current VIP stage number, start time, and end time.
| Name | Required | Description | Default |
|---|---|---|---|
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true. Description aligns with read-only behavior but adds no extra behavioral details (e.g., what happens if network is omitted). No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, directly to the point. No extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description helpfully lists the returned fields (stage number, start time, end time). Enough for a simple read tool, though type/format details are missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all parameters (network) with enum and description. Description does not add any parameter-specific meaning, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (Get), the resource (VIP stage info), and the specific data returned (stage number, start time, end time). This distinguishes it from other vip_* tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., other VIP tools like vip_positions, vip_vote_info). No context on prerequisites or scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vip_undelegateB
Undelegate (unlock) tokens from a VIP lock-staking position.
| Name | Required | Description | Default |
|---|---|---|---|
| metadata | Yes | Coin metadata identifier (e.g., "0x1::native_uinit::Coin") | |
| amount | No | Amount to undelegate (omit for full position) | |
| releaseTime | Yes | Original lock release time | |
| validator | Yes | Validator address or moniker name | |
| dryRun | No | Preview tx without chain communication. | |
| confirm | No | Set true to broadcast. Otherwise returns simulation only. | |
| memo | No | Optional transaction memo | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a write operation (readOnlyHint=false). The description adds only 'undelegate (unlock)' which implies state change but does not disclose details about authorization, reversibility, waiting periods, or side effects. With no additional behavioral context, the description fails to enrich beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, very concise and front-loaded. It is efficient but some might argue it is too sparse. Still, for conciseness it is well-structured without unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 8 parameters and no output schema, the description lacks important context about the VIP lock-staking process, the role of releaseTime, the significance of undelegation, and what happens to the tokens after unlocking. The description is inadequate for a parameter-rich tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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. The tool description does not add any parameter-level insights beyond what is already in the schema. It neither clarifies nor enhances understanding of parameters like amount, releaseTime, or validator.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Undelegate (unlock) tokens from a VIP lock-staking position' clearly identifies the verb (undelegate/unlock), the resource (tokens), and the context (VIP lock-staking position). It effectively distinguishes from sibling tools like vip_delegate and vip_redelegate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, conditions (e.g., lock period expiry), or trade-offs. The description is too terse to aid in decision-making among related VIP operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vip_vesting_positionsARead-only
Get VIP vesting positions for an address from the indexer API. Shows bridge rewards with vesting schedules, including initial/claimable/claimed/locked reward breakdowns.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Address in bech32, hex, or .init format. Use "me" for the signer's own address. | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint: true, so the description adds modest value by specifying 'from the indexer API' and detailing the reward breakdown. However, it does not disclose additional behavioral traits such as pagination, rate limits, or response format expectations beyond what annotations imply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise at two sentences and 25 words. It is front-loaded with the action and resource, efficiently conveying essential information without unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description partially compensates by mentioning the breakdown of rewards (initial, claimable, claimed, locked). However, it omits details about pagination, ordering, or handling of edge cases like empty positions. Overall, it provides sufficient context for a simple read tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Both parameters have schema descriptions covering 100% of properties. The description repeats that 'address' can use 'me' for the signer's own address, which is already in the schema. It does not add new semantic information beyond the schema, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get', the resource 'VIP vesting positions', and the source 'indexer API'. It details that it shows bridge rewards with vesting schedules and a breakdown of initial, claimable, claimed, and locked rewards. This distinguishes it from siblings like 'vip_positions' and 'vip_claimable_rewards'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'vip_positions' or 'vip_claimable_rewards'. It does not specify prerequisites, exclusions, or context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vip_vote_infoARead-only
Get VIP gauge vote info for an address: max voting power, used voting power, and per-bridge weight allocations.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Address in bech32, hex, or .init format. Use "me" for the signer's own address. | |
| cycle | No | Voting cycle number (omit for current cycle) | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the description's 'Get' confirms a read operation. It adds limited behavior context beyond annotation by listing the specific return fields (max/used power, allocations).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no filler, efficiently conveying purpose and output scope. Highly concise and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only query tool with no output schema, the description fully explains what it returns (max/used power, allocations). Covers all necessary context for an agent to understand the tool's output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with all parameters described. The description repeats the address format hint but does not add new meaning beyond the schema. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves VIP gauge vote info (max/used voting power, per-bridge allocations) for an address, distinguishing it from sibling tools like vip_gauge_vote (which submits votes) or vip_voting_power (which likely returns raw power).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description specifies it's for an address and lists optional parameters, but does not explicitly state when to use this tool versus siblings like vip_voting_power. However, the purpose is clear enough for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vip_voting_powerBRead-only
Get VIP gauge voting power for an address.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Address in bech32, hex, or .init format. Use "me" for the signer's own address. | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true. The description does not add extra behavioral traits beyond stating its read nature, which is already clear from 'Get'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that is front-loaded and clear, with no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only query tool with no output schema and good annotations, the description minimally covers the purpose but lacks details about return values or response interpretation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with detailed parameter descriptions. The tool description does not add further meaning beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and resource ('VIP gauge voting power') for an address, clearly distinguishing it from sibling tools like vip_claimable_rewards or vip_gauge_vote.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives (e.g., vip_positions, vip_vote_info). No when-not-to-use or context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wasm_clear_adminADestructive
Remove the admin of a CosmWasm contract, making it immutable (no more migrations). Available on Miniwasm chains.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain name or chain ID. Defaults to L1 ("initia"). L2 examples: "Cabal", "Echelon", "Inertia". | initia |
| contractAddress | Yes | Contract address | |
| dryRun | No | Preview tx without chain communication. | |
| confirm | No | Set true to broadcast. Otherwise returns simulation only. | |
| memo | No | Optional transaction memo | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true. Description adds important behavioral context: the action is irreversible (immutable, no more migrations) and restricted to Miniwasm chains. This goes beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with action and key consequence. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers core function and chain constraint, but does not explain the process (e.g., that broadcasting with confirm=true is required) or the return value. For a destructive tool with no output schema, a bit more surrounding context would be helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% description coverage for all 6 parameters, so the schema already provides sufficient meaning. The description adds no additional parameter-level details, so it meets the baseline without extra value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states action: 'Remove the admin of a CosmWasm contract, making it immutable'. Distinguishes from siblings like wasm_update_admin by noting the irreversible consequence (no more migrations).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description mentions it is available on Miniwasm chains and that it makes the contract immutable, but does not explicitly state when to use vs alternatives or when not to use. While the irreversible nature is implied, direct guidance on prerequisites or exclusions is absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wasm_code_infoARead-only
Get CosmWasm code info by code ID: creator, checksum, instantiate permission. Available on Miniwasm chains.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain name or chain ID. Defaults to L1 ("initia"). L2 examples: "Cabal", "Echelon", "Inertia". | initia |
| codeId | Yes | Code ID | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true. Description adds context on returned fields (creator, checksum, instantiate permission) but does not disclose additional behavioral traits beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no wasted words. Front-loaded with verb and resource, effectively conveying purpose and key return fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Description adequately covers the tool's purpose, return fields, and availability. No output schema exists, but description provides sufficient context for a simple query tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with detailed descriptions for all parameters. Description does not add additional meaning beyond the schema; it merely references 'code ID' which is already explicit in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Get CosmWasm code info by code ID' and lists specific fields returned. Distinguishes from sibling tools like wasm_contract_info or wasm_query.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description indicates availability on Miniwasm chains but does not explicitly state when to use vs alternatives or provide exclusion criteria. Usage is implied by the tool name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wasm_contract_historyARead-only
Get migration history (init/migrate entries) for a CosmWasm contract. Available on Miniwasm chains.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain name or chain ID. Defaults to L1 ("initia"). L2 examples: "Cabal", "Echelon", "Inertia". | initia |
| contractAddress | Yes | Contract address (bech32) | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds the important constraint 'Available on Miniwasm chains' beyond the readOnlyHint annotation. This informs the agent that the tool may not work on non-Miniwasm chains, which is critical for proper selection.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that front-loads the key purpose ('Get migration history'). It includes a concise scoping note about chain availability without any wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description does not specify the output format or structure of the migration history. Since there is no output schema, the agent lacks information on what fields (e.g., block, tx hash, code ID) will be returned, making the description incomplete for this read-only tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers all three parameters with descriptions (100% coverage). The description adds no additional semantic or contextual details beyond what the schema provides, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves migration history (init/migrate entries) for a CosmWasm contract. It distinguishes itself from sibling tools like wasm_contract_info and wasm_query by specifying 'migration history', making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide any guidance on when to use this tool versus alternatives. While it states 'Available on Miniwasm chains,' it fails to contrast with siblings like wasm_contract_info or wasm_query, which could also be relevant for contract data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wasm_contract_infoARead-only
Get CosmWasm contract metadata: code_id, admin, label, creator. Available on Miniwasm chains.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain name or chain ID. Defaults to L1 ("initia"). L2 examples: "Cabal", "Echelon", "Inertia". | initia |
| contractAddress | Yes | Contract address (bech32) | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, and description reinforces read-only nature with 'Get'. Adds value by specifying exact metadata fields returned and chain limitation (Miniwasm chains), beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with key information, no unnecessary words. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given simple query tool with readOnlyHint and 3 well-documented parameters, description covers purpose, scope (Miniwasm chains), and returned fields. Lacks output format details but sufficient for selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (all parameters have descriptions). Description does not add new parameter meaning beyond what schema already provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states verb 'Get', resource 'CosmWasm contract metadata', and lists specific fields (code_id, admin, label, creator). Distinguishes from siblings like wasm_code_info and wasm_contract_history by focusing on metadata and Miniwasm chains.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied usage for retrieving contract metadata on Miniwasm chains, but no explicit guidance on when to prefer this over siblings like wasm_query or wasm_raw_state. Lacks when-not-to-use or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wasm_contracts_by_codeARead-only
List all contract addresses instantiated from a given code ID. Available on Miniwasm chains.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain name or chain ID. Defaults to L1 ("initia"). L2 examples: "Cabal", "Echelon", "Inertia". | initia |
| codeId | Yes | Code ID | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the description adds marginal value by noting availability on Miniwasm chains, but lacks details on pagination or response format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the purpose, no redundant information. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with good annotations and no output schema, the description is mostly complete. Missing explicit output format, but not critical given the simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description does not add extra parameter information beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool lists all contract addresses instantiated from a given code ID, distinguishing it from siblings like wasm_contract_info or wasm_contract_history.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage via the verb and resource, but does not explicitly mention when not to use or list alternative tools. Still clear enough for an agent to infer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wasm_executeA
Execute a CosmWasm smart contract function (state-changing). Available on Miniwasm chains.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain name or chain ID. Defaults to L1 ("initia"). L2 examples: "Cabal", "Echelon", "Inertia". | initia |
| contractAddress | Yes | Contract address (bech32) | |
| executeMsg | Yes | Execute message as JSON object | |
| funds | No | Coins to send with the execution | |
| dryRun | No | Preview tx without chain communication. | |
| confirm | No | Set true to broadcast. Otherwise returns simulation only. | |
| memo | No | Optional transaction memo | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint: false and destructiveHint: false. The description adds 'state-changing' which is consistent but does not elaborate on signing, gas costs, or the simulation/broadcast behavior controlled by dryRun and confirm.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence. It is efficient but might benefit from slightly more detail given the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description should explain return values (e.g., transaction result vs simulation). It omits this and does not integrate the behavior of dryRun/confirm, leaving agents to infer functionality from parameters alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with detailed parameter descriptions. The tool description adds no extra meaning beyond the schema, meeting the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action ('Execute a CosmWasm smart contract function'), specifies it is state-changing, and notes it is available on Miniwasm chains. This distinguishes it from sibling tools like wasm_query (read-only) and wasm_instantiate (contract creation).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly guide when to use this tool versus alternatives. It implies use for state-changing calls but lacks comparisons to wasm_query or prerequisites like contract instantiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wasm_instantiateB
Instantiate a CosmWasm contract from an uploaded code ID. Available on Miniwasm chains.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain name or chain ID. Defaults to L1 ("initia"). L2 examples: "Cabal", "Echelon", "Inertia". | initia |
| codeId | Yes | Code ID of the uploaded wasm | |
| label | Yes | Human-readable label for the contract | |
| msg | Yes | Instantiate message as JSON object | |
| admin | No | Admin address (allows future migrations). Omit for no admin. | |
| funds | No | Coins to send with instantiation | |
| dryRun | No | Preview tx without chain communication. | |
| confirm | No | Set true to broadcast. Otherwise returns simulation only. | |
| memo | No | Optional transaction memo | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate not read-only and not destructive. The description adds a minor contextual detail ('Miniwasm chains') but no behavioral insights like side effects, authorization needs, or that a new contract address will be created. It is adequate but not informative beyond the name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that efficiently conveys the core purpose and a key constraint. Every word is necessary and there is no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex tool with 10 parameters (including nested objects) and no output schema, the description is too brief. It omits important context such as the return value (e.g., contract address), the need to match msg schema to the code, or common pitfalls.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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. The description does not add any additional meaning to the parameters beyond what the schema already provides in their descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Instantiate') and resource ('CosmWasm contract from an uploaded code ID'). It also specifies the context ('Available on Miniwasm chains'), which helps distinguish it from sibling tools like wasm_execute or wasm_migrate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool vs alternatives. It does not mention prerequisites, scenarios, or when to use other tools like wasm_execute or wasm_store_code.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wasm_migrateADestructive
Migrate a CosmWasm contract to a new code ID. Requires admin permission. Available on Miniwasm chains.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain name or chain ID. Defaults to L1 ("initia"). L2 examples: "Cabal", "Echelon", "Inertia". | initia |
| contractAddress | Yes | Contract address to migrate | |
| codeId | Yes | New code ID to migrate to | |
| msg | Yes | Migration message as JSON object | |
| dryRun | No | Preview tx without chain communication. | |
| confirm | No | Set true to broadcast. Otherwise returns simulation only. | |
| memo | No | Optional transaction memo | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false. Description adds context: requires admin permission and chain-specific availability. This goes beyond annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no extraneous text. Every piece of information is essential and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For 8 parameters, nested objects, and no output schema, the description is brief. It covers permission and chain availability but lacks details on return values, message format, or behavior implications. Adequate but not richly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. Description does not add parameter-specific meaning; it relies entirely on the schema's built-in descriptions for each parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses specific verb 'Migrate' and resource 'CosmWasm contract to a new code ID'. Clearly distinguishes from sibling tools like wasm_execute or wasm_instantiate by focusing on the migration action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States necessary precondition 'Requires admin permission' and platform restriction 'Available on Miniwasm chains', which helps agents decide when to use. Does not explicitly contrast with alternatives or mention when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wasm_queryARead-only
Query a CosmWasm smart contract (read-only). Available on Miniwasm chains.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain name or chain ID. Defaults to L1 ("initia"). L2 examples: "Cabal", "Echelon", "Inertia". | initia |
| contractAddress | Yes | Contract address (bech32) | |
| queryMsg | Yes | Query message as JSON object | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the description's mention of 'read-only' is redundant but consistent. The description adds that the tool is 'Available on Miniwasm chains,' which provides useful context beyond annotations. No additional behavioral traits (e.g., permission requirements, rate limits, or return format) are disclosed, but the annotations carry the safety burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise at two sentences and front-loaded with the core action. While it lacks structured formatting (e.g., bullets), it is efficient and without wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (4 parameters, nested objects, no output schema), the description covers the basic purpose and chain availability. However, it does not describe return values or any typical behavior (e.g., error handling, pagination), which would be helpful for an agent invoking the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for all four parameters, including default values and enums. The description does not add any semantic information beyond what the schema already provides, so it achieves the baseline score for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Query a CosmWasm smart contract (read-only).' It specifies the verb (query) and resource (CosmWasm smart contract), and distinguishes itself from sibling tools like wasm_execute (which executes mutations) by noting it is read-only.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for read-only queries via the 'read-only' qualifier, but does not explicitly state when to use this tool versus alternatives like wasm_execute or other wasm tools. No direct guidance on exclusions or prerequisites is provided, though the context of siblings may help an agent infer the appropriate use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wasm_raw_stateBRead-only
Query raw key-value state of a CosmWasm contract. Available on Miniwasm chains.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain name or chain ID. Defaults to L1 ("initia"). L2 examples: "Cabal", "Echelon", "Inertia". | initia |
| contractAddress | Yes | Contract address (bech32) | |
| key | Yes | State key (hex-encoded or UTF-8 string) | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the description's confirmation of 'Query' is aligned. It adds some value by specifying availability on Miniwasm chains, but does not disclose other behavioral aspects like response format or key encoding details beyond 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that conveys the core purpose and availability. It is front-loaded and concise, though it could benefit from slightly more detail without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of an output schema, the description should explain the return format (e.g., raw bytes, hex) to aid the agent. It also omits details about the 'key' parameter format beyond the schema (which is present but not reinforced). The description feels incomplete for a 4-parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so the baseline is 3. The description does not add additional semantic meaning beyond what the schema provides (e.g., key format, chain defaults).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Query') and a specific resource ('raw key-value state of a CosmWasm contract'), which clearly distinguishes it from sibling tools like 'wasm_query' that may handle high-level queries. Adding 'Available on Miniwasm chains' provides further context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'wasm_query' or other state query tools. It does not mention prerequisites, limitations, or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wasm_store_codeB
Upload CosmWasm contract bytecode to chain. The code ID can be found in the transaction events. Available on Miniwasm chains.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain name or chain ID. Defaults to L1 ("initia"). L2 examples: "Cabal", "Echelon", "Inertia". | initia |
| wasmByteCode | Yes | Wasm bytecode as base64-encoded string | |
| dryRun | No | Preview tx without chain communication. | |
| confirm | No | Set true to broadcast. Otherwise returns simulation only. | |
| memo | No | Optional transaction memo | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a non-destructive write operation. The description adds that the code ID is emitted in transaction events, which is helpful but minimal. It does not disclose other behaviors like potential duplicate code rejection or gas requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with the action. No unnecessary words; every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Lacks context on the dryRun/confirm workflow, post-upload steps (e.g., using wasm_code_info), and the impact of defaults. With no output schema, the description should provide more usage context but does not.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all 6 parameters with descriptions, so the description does not need to add param-level detail. It adds no extra meaning beyond the schema, meeting the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Upload', resource 'CosmWasm contract bytecode', and specifies that the code ID is found in transaction events. It distinguishes itself from sibling tools like wasm_instantiate by focusing on bytecode upload, not contract instantiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use versus alternatives such as wasm_instantiate or wasm_execute. It does not mention prerequisites (e.g., chain fees) or when not to use. The description assumes knowledge of the workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wasm_update_adminADestructive
Change the admin of a CosmWasm contract. Only current admin can call. Available on Miniwasm chains.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain name or chain ID. Defaults to L1 ("initia"). L2 examples: "Cabal", "Echelon", "Inertia". | initia |
| contractAddress | Yes | Contract address | |
| newAdmin | Yes | New admin address | |
| dryRun | No | Preview tx without chain communication. | |
| confirm | No | Set true to broadcast. Otherwise returns simulation only. | |
| memo | No | Optional transaction memo | |
| network | No | Network to use. Defaults to mainnet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses authorization requirement and chain availability (Miniwasm) beyond annotations. No contradiction with annotations; destructiveHint aligns with 'change'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, 16 words, front-loaded with core action and constraints. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple mutation tool with complete schema coverage, but lacks mention of return values or failure behavior, which is not provided by output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so description adds minimal value beyond schema parameter descriptions. The statement about current admin is usage guidance, not param-specific.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the action ('Change the admin'), the resource ('CosmWasm contract'), and distinguishes from sibling 'wasm_clear_admin' by implying updating vs removing admin.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a key prerequisite ('Only current admin can call') but does not explicitly contrast with sibling tools like wasm_clear_admin or wasm_migrate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
113 tool updates
v0.1.6- First observed
account_get - First observed
address_convert - First observed
address_validate - First observed
amount_format - First observed
authz_grants - First observed
bank_send - First observed
bridge_deposit - First observed
bridge_execute - First observed
bridge_list_chains - First observed
bridge_routable_assets - First observed
bridge_route - First observed
bridge_transfer_status - First observed
bridge_withdraw - First observed
bridge_withdrawal_status - First observed
bridge_withdrawals - First observed
chain_block - First observed
chain_block_results - First observed
chain_capabilities - First observed
chain_gas_prices - First observed
chain_list - First observed
delegation_get - First observed
denom_classify - First observed
denom_metadata - First observed
distribution_rewards - First observed
event_parse_move - First observed
event_parse_tx - First observed
event_parse_wasm - First observed
evm_call - First observed
evm_decode_logs - First observed
evm_decode_revert - First observed
evm_deploy - First observed
evm_get_block - First observed
evm_get_code - First observed
evm_get_logs - First observed
evm_get_storage_at - First observed
evm_get_tx_receipt - First observed
evm_send - First observed
feegrant_allowances - First observed
feegrant_grant - First observed
feegrant_revoke - First observed
governance_vote - First observed
ibc_channels - First observed
ibc_denom_hash - First observed
ibc_transfer - First observed
ledger_status - First observed
ledger_verify_address - First observed
move_bcs_decode - First observed
move_bcs_encode - First observed
move_denom_metadata - First observed
move_dex_pairs - First observed
move_execute - First observed
move_metadata_denom - First observed
move_module_abi - First observed
move_modules - First observed
move_publish - First observed
move_resource_get - First observed
move_resources - First observed
move_script - First observed
move_table_entry - First observed
move_view - First observed
opbridge_get - First observed
opbridge_list - First observed
opbridge_token_pair_by_l1_denom - First observed
opbridge_token_pair_by_l2_denom - First observed
opbridge_token_pairs - First observed
portfolio_get - First observed
proposal_get - First observed
proposal_list - First observed
simulate_tx - First observed
staking_annual_provisions - First observed
staking_manage - First observed
staking_pool - First observed
token_balance - First observed
token_info - First observed
token_list - First observed
token_search - First observed
tx_by_address - First observed
tx_get - First observed
tx_search - First observed
username_check - First observed
username_metadata - First observed
username_record - First observed
username_resolve - First observed
validator_get - First observed
validator_list - First observed
vip_claim_rewards - First observed
vip_claim_staking_rewards - First observed
vip_claimable_rewards - First observed
vip_delegate - First observed
vip_extend_lock - First observed
vip_gauge_vote - First observed
vip_gauge_vote_by_amount - First observed
vip_positions - First observed
vip_provide_and_delegate - First observed
vip_redelegate - First observed
vip_stableswap_provide_and_delegate - First observed
vip_stage_info - First observed
vip_undelegate - First observed
vip_vesting_positions - First observed
vip_vote_info - First observed
vip_voting_power - First observed
wasm_clear_admin - First observed
wasm_code_info - First observed
wasm_contract_history - First observed
wasm_contract_info - First observed
wasm_contracts_by_code - First observed
wasm_execute - First observed
wasm_instantiate - First observed
wasm_migrate - First observed
wasm_query - First observed
wasm_raw_state - First observed
wasm_store_code - First observed
wasm_update_admin
TDQS
Scored across 113 tools
The domain-prefixed names (vip_, wasm_, move_, evm_, bridge_) do a lot of disambiguation, and descriptions are generally precise. However, the sheer number of tools creates many close pairs—vip_claimable_rewards vs vip_claim_rewards, wasm_contract_info vs wasm_code_info, token_balance vs account_get vs portfolio_get—that make selecting the right one harder than it should be.
Names mostly follow a snake_case domain_operation convention, with clear families like vip_delegate/vip_undelegate/vip_redelegate. Consistency breaks down, though: some resources use get (evm_get_code), some use bare nouns (vip_positions, move_modules), and the inverse pair move_denom_metadata/move_metadata_denom is easy to misread.
113 tools is an extreme count by any standard and far beyond the 25+ threshold where workflows become heavy. A tool set this large defeats quick discovery even when individual descriptions are good, and many read operations could be consolidated behind a smaller set of parameterized tools.
The server covers an unusually broad surface: accounts, tokens, staking, governance, IBC/OPInit bridges, and execution/query for Move, EVM, and CosmWasm. Minor gaps exist (no proposal submission, authz is query-only, no fee-grant update), but most core user workflows have no dead ends.
Maintenance
Related MCP Connectors
Manage your blockchain infrastructure across 80+ chains with your agents.
Provide AI agents and automation tools with contextual access to blockchain data including balance…
Read-only on-chain intelligence for AI agents on Base: balances, tokens, gas, tx status.
Read-only on-chain intelligence for AI agents on Base: balances, tokens, gas, tx status.
Related MCP Servers
- AlicenseCqualityDmaintenanceEnables AI agents to interact with cryptocurrency ecosystems through wallet management, trading operations (swaps, DCA, limit orders), staking, and multi-chain support starting with Solana.37GPL 3.0
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to interact with the Somnia blockchain network, including documentation search, blockchain queries, wallet management, cryptographic signing, and on-chain operations.-
- AlicenseCqualityBmaintenanceEnables AI agents to interact with any EVM-compatible blockchain through natural language, supporting token swaps, cross-chain bridges, staking, lending, governance, gas optimization, and portfolio tracking across networks like Ethereum, BSC, Polygon, Arbitrum, and more.10015 npm41-
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to interact with the AI Network blockchain by managing accounts, submitting transactions, and reading database values. It supports registering Hyper Agents and accessing a Layer 2 DAG-based shared agent memory system based on staking status.1,632 npm6MIT