Skip to main content
Glama

Who can change this EVM contract?

evm_contract_control

Check who controls an EVM contract before approving a token or signing on Base or Robinhood Chain by detecting proxy type, implementation, and upgrade owner.

Instructions

Use before approving a token, depositing into, or signing for a contract on Base or Robinhood Chain. Detects the proxy kind (EIP-1967 transparent, UUPS, beacon, legacy zeppelinos, EIP-1167 clone, diamond, EIP-7702), the live implementation, and follows the upgrade controller and owner to the end: one key, a Safe (threshold of owners), a timelock (delay). Sourcify verification for the address and the implementation. Costs $0.05 USDC on Base, paid over x402 from WATCHDOG_EVM_PRIVATE_KEY. An address with no code is not charged.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
chainNoChain the contract lives onbase
addressYesContract address, 0x…

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.4/5.0
Behavior5/5

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

Without relying on annotations it discloses the cost ($0.05 USDC on Base), the payment rail (x402 from WATCHDOG_EVM_PRIVATE_KEY), and the no-code exemption ('an address with no code is not charged'). It also explains the analysis depth (following owner/controller to one key, a Safe with threshold, or a timelock with delay) and Sourcify verification, which reconciles the non-readOnly annotation with what is otherwise an inspection call.

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

Conciseness4/5

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

Three dense sentences, front-loaded with the usage trigger and then the analysis behavior, with pricing last. The long parenthetical list of proxy kinds costs some readability but each entry conveys a distinct detection capability, so it largely earns its place.

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

Completeness5/5

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

With no output schema, the description carries the return-value burden and does so by describing the resolution chain (one key, Safe threshold, timelock delay) and Sourcify verification. Payment mechanics and the no-code exemption round out what an agent needs to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both parameters (chain with enum and default, address format), establishing the baseline of 3. The description adds a little scope context (Base vs Robinhood Chain, free for codeless addresses) but no new syntax or format guidance beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource — detecting proxy kind, resolving live implementation, and following the upgrade controller and owner to the end. It enumerates the proxy standards (EIP-1967, UUPS, beacon, zeppelinos, EIP-1167, diamond, EIP-7702), which makes it unmistakable against siblings like solana_program_authority or get_scan_report.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

It gives an explicit trigger condition: use before approving a token, depositing into, or signing for a contract on Base or Robinhood Chain. Chain scope also implicitly separates it from the Solana sibling. It does not, however, name an alternative tool or state 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.