Skip to main content
Glama

DERO MCP Server

Server Details

Read-only DERO blockchain MCP: 33 tools (12 composites) incl. TELA discovery + bundled docs.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
DHEBP/dero-mcp-server
GitHub Stars
2
Server Listing
dero-mcp-server

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.7/5 across 32 of 32 tools scored.

Server CoherenceA
Disambiguation5/5

Each tool has a clearly distinct purpose, with detailed descriptions that specify when to call it and how it differs from similar tools. Composite tools are well-defined, overlapping concerns are minimized.

Naming Consistency4/5

Tool names follow a general pattern: 'dero_' for core daemon RPC wrappers, 'tela_' for TELA-specific composites, and descriptive names for other composites. While mostly consistent, there are exceptions like 'audit_chain_artifact_claim' and 'dero_durl_to_scid' breaking the pattern slightly.

Tool Count4/5

With 32 tools, the server is comprehensive but slightly heavy. However, each tool serves a specific need in the DERO ecosystem, covering chain queries, docs, TELA, and composite analyses. The count is justifiable given the domain breadth.

Completeness4/5

The tool set covers core chain operations, documentation, TELA app lifecycle, and common analytical tasks. Minor gaps exist, such as lack of wallet interaction tools or transaction submission, but these are outside the apparent read-only/analysis scope.

Available Tools

33 tools
audit_chain_artifact_claimA
Read-only
Inspect

Composite: audit a chain artifact (block topoheight, block hash, TX hash, and/or proof string) end-to-end. Returns a verdict (cited_in_false_claim | clean), the actual on-chain facts (block reward, TX acceptance status), an optional proof-string decode, a relayable narrative, and curated rebuttal docs citations.

When to call: when the user asks "what's going on with DERO block X?" / "is this transaction the inflation-claim TX?" / "does this proof string come from a known false claim?" PREFER this over chaining dero_get_block_header_by_topo_height + dero_get_transaction + dero_decode_proof_string yourself: the composite already runs them in parallel, joins them against the flagged false-claim registry, and emits a single verdict field plus a narrative so the agent does not need to compose the rebuttal arc from scratch each time.

Input Requirements (CRITICAL):

  • At least ONE of topoheight, block_hash, tx_hash, or proof_string MUST be provided. The composite throws INVALID_INPUT otherwise.

  • topoheight is OPTIONAL. Non-negative integer.

  • block_hash is OPTIONAL. 64 hex characters.

  • tx_hash is OPTIONAL. 64 hex characters.

  • proof_string is OPTIONAL. Full deroproof… / DERO bech32 string with HRP.

  • include_forge_demo is OPTIONAL (default false). When true AND tx_hash is provided, also forges a fresh demo proof for the same TX (via dero_forge_demo_proof) and embeds it under forge_demo. The demo amount auto-selects: a flagged artifact's pinned amount (e.g. -2.2M for the 2022 claim) > the cited proof_string V > -1 DERO. PREFER setting this true when the agent is fielding a "Verified ✓ means the chain minted coins, right?" question — the embedded forge IS the refutation.

Output: { verdict, inputs, matched_artifacts[], context_note, chain_facts, proof_decode, forge_demo, narrative, related_docs, _diagnostics }. verdict is cited_in_false_claim when any input matches the flagged-artifact registry, else clean. chain_facts is null when no chain-querying input was provided or all daemon calls failed; proof_decode is null when no proof_string was provided. forge_demo is null unless include_forge_demo: true was passed; on success it carries { skipped: false, forged_proof_string, target_amount, ring_slot, ring_size, ring_receiver_address, math, self_check, explorer_display_amount, demo_amount_source } (the slim form — full citations stay at the top level).

PREFER citing the returned related_docs verbatim in the agent response — they are the canonical rebuttal pages and have been validated against the bundled docs index by CI. Quote the context_note when verdict is cited_in_false_claim so the user understands why the artifact matters.

ParametersJSON Schema
NameRequiredDescriptionDefault
tx_hashNo64-char hex transaction hash to audit.
block_hashNo64-char hex block hash to audit.
topoheightNoTopological height of a block to audit.
proof_stringNoOptional `deroproof…` / DERO bech32 string to also decode and check.
include_forge_demoNoWhen true AND tx_hash is provided, also forge a fresh demo proof for the same TX (via dero_forge_demo_proof) and embed it under `forge_demo`. Closes the rebuttal loop in one tool call. Default false.
Behavior5/5

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

Beyond the `readOnlyHint: true` annotation, the description discloses parallel execution, registry joining, null behavior for chain_facts and proof_decode, and error throwing for missing inputs. It fully explains internal logic and output conditions, adding significant 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.

Conciseness5/5

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

The description is front-loaded with a one-sentence summary, followed by targeted usage guidance, structured input requirements, and clear output explanation. Every section serves a distinct purpose without redundancy, earning its length.

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?

Given the tool's complexity and absence of an output schema, the description thoroughly explains the output structure, field conditions (when null), and even advises on how to use returned fields like `related_docs` and `context_note`. It leaves no important aspect undocumented.

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

Parameters5/5

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

Despite 100% schema coverage, the description adds crucial meaning: it specifies regex patterns, minimum lengths, human-readable formats (e.g., 'deroproof… bech32'), and the conditional behavior of `include_forge_demo` with auto-selection logic. This goes well 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 clearly states 'Composite: audit a chain artifact end-to-end' with a specific verb and resource. It distinguishes itself from sibling tools by explicitly mentioning it is a composite that runs multiple calls in parallel and joins against a registry, which sets it apart from individual get_block/get_transaction tools.

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

Usage Guidelines5/5

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

The description provides explicit 'When to call' guidance with example user queries and indicates preference over chaining simpler tools. It also gives detailed conditions for the `include_forge_demo` parameter, including when to set it true, offering clear alternatives and context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dero_daemon_echoA
Read-only
Inspect

Echo strings through the daemon via DERO.Echo. Useful for round-trip sanity checks.

When to call: when you need to confirm that string payloads reach the daemon intact (e.g. before debugging a malformed call to a more complex tool). PREFER dero_daemon_ping for a lighter-weight liveness probe.

Input Requirements (CRITICAL):

  • words MUST be a non-empty array of strings.

Output: the echoed string concatenated by the daemon.

ParametersJSON Schema
NameRequiredDescriptionDefault
wordsYesStrings to echo back
Behavior4/5

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

Annotations already declare readOnlyHint=true, so description's disclosure of output (concatenated string) and input requirement (non-empty array) adds useful context beyond annotations. Lacks error handling details but acceptable for this simple tool.

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

Conciseness5/5

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

Efficiently structured: purpose, usage guidance, input requirements, output. Every sentence adds value with no redundancy. Front-loaded with key info.

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?

Complete for tool complexity. Covers purpose, when-to-use, input constraints, output format, and sibling differentiation. No output schema exists but output is described.

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

Parameters5/5

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

Despite 100% schema coverage, description adds critical constraint that 'words' must be a non-empty array, which is absent from schema. This prevents common agent errors.

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?

Clearly states the tool echos strings via DERO.Echo for round-trip sanity checks. Differentiates from sibling dero_daemon_ping by specifying it's for heavier payload testing.

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

Usage Guidelines5/5

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

Explicitly states when to call (confirm string payload integrity) and when to prefer alternative (use dero_daemon_ping for lighter liveness probe). Provides clear decision guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dero_daemon_pingA
Read-only
Inspect

DERO daemon connectivity check via DERO.Ping.

When to call: as the first step in any chain investigation to confirm the daemon is reachable. Call before dero_get_info if you are unsure whether DERO_DAEMON_URL is correctly configured.

Input Requirements: none.

Output: a "Pong" string when the daemon is healthy. On failure this tool returns a structured _meta.error with code RPC_UNREACHABLE and a retry hint.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior5/5

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

Beyond annotations (readOnlyHint, destructiveHint false), the description adds that the tool returns 'Pong' on success and an error with code RPC_UNREACHABLE and retry hint on failure, covering all relevant behavioral traits.

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

Conciseness5/5

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

The description is compact, using two short paragraphs to convey purpose, usage, input, and output without redundancy. Every sentence serves a clear purpose.

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?

Given the tool's simplicity (no params, no output schema), the description thoroughly covers all aspects: purpose, when to use, input, output, and error behavior. No gaps remain.

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

Parameters4/5

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

No parameters exist (0 params, 100% schema coverage), so the description correctly states 'Input Requirements: none.' A score of 4 is appropriate as baseline given zero parameters.

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 clearly states the action ('connectivity check') and resource ('DERO daemon'), and the tool name 'ping' coupled with the description distinguishes it from siblings like 'dero_daemon_echo' which also tests connectivity but presumably with different semantics.

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

Usage Guidelines5/5

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

Explicitly instructs to call as the first step in chain investigations and before get_info if unsure about configuration, providing clear context for when to use this tool versus alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dero_decode_proof_stringA
Read-only
Inspect

Decode any DERO bech32 string (dero…, deto…, deroi…, detoi…, or deroproof…) into its constituent parts: HRP, network, compressed public key, and any embedded RPC arguments (CBOR-encoded). For deroproof… strings the "public key" is a derived blinder point used in the proof's commitment math, NOT a wallet pubkey — the tool surfaces is_proof: true so the agent does not mislabel it.

When to call: when the user pastes a deroproof… / integrated-address string and wants to know what value or fields it encodes. PREFER this over chaining bech32 decoders + CBOR libraries yourself: the tool implements the exact same wire format as DEROHE rpc.NewAddress and surfaces the RPC_VALUE_TRANSFER uint64 both as raw and as a signed/wraparound interpretation. The decoder is verified against the publicly-cited 2022 inflation-claim proof string (embedded uint64 = 18446743853709551435 = signed -2,200,000.00181 DERO).

Input Requirements (CRITICAL):

  • proof_string is REQUIRED. The full bech32 string including HRP and separator (e.g. deroproof1qyy…). Whitespace is trimmed but the case must be consistent (all lower OR all upper per BIP-0173).

Output: { decoded: { hrp, mainnet, is_proof, public_key_hex, arguments[] }, value_interpretation?: { uint64, signed_int64, is_negative_wraparound, signed_atoms, dero }, context_note?, related_docs? }. arguments is an array of { name, type, type_label, semantic_name?, value }. value_interpretation is present only when an RPC_VALUE_TRANSFER (V) + uint64 (U) argument is found. context_note + extra related_docs are silently attached when the input matches a flagged adversarially-cited artifact. Returns a structured _meta.error with code INVALID_BECH32 on parse failure.

PREFER citing integrity/payload-vs-transaction-proofs and integrity/negative-transfer-protection in any agent response that frames a deroproof… decode result — readers should understand that "this string decodes to value V" is a display-layer fact, not a consensus statement.

ParametersJSON Schema
NameRequiredDescriptionDefault
proof_stringYesFull bech32 string with HRP, e.g. "deroproof1qyy…" or "dero1abc…". Whitespace is trimmed.
Behavior5/5

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

Discloses important behavioral details beyond annotations: for deroproof strings the public key is a blinder, surfaces is_proof flag, notes when value_interpretation exists, and mentions error handling. Annotations only indicate read-only.

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?

Well-structured with front-loaded main action, then when to call, requirements, and output. Somewhat lengthy but every section is informative; could be slightly more concise.

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?

Comprehensive: explains output structure, includes edge case (value_interpretation presence), mentions error handling, and provides a concrete test case. Without output schema, the description fully compensates.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description adds the list of allowed HRPs and case consistency requirement, which provides additional value beyond the schema description.

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 clearly states the tool decodes DERO bech32 strings into components, with a specific verb and resource. It distinguishes from siblings as there is no other decode tool.

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

Usage Guidelines5/5

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

Explicitly states when to call (user pastes a deroproof or integrated-address string) and recommends this over alternatives like chaining decoders. Provides clear guidance and context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dero_docs_get_pageA
Read-only
Inspect

Get a single bundled docs page by slug, with plain-text content and headings.

When to call: AFTER dero_docs_search has returned a candidate slug, OR when you have a known slug from a prior citation. PREFER dero_docs_search first when you only have a topic in mind.

Input Requirements (CRITICAL):

  • slug MUST be a non-empty doc slug relative to pages/ (e.g. rpc-api/daemon-rpc-api, tutorials/first-app, dero-pay/quick-start).

  • product is OPTIONAL but RECOMMENDED to disambiguate identical slugs across docs sites (derod, tela, hologram, deropay).

  • offset is OPTIONAL. Long pages (the Captain archive, deep RPC references) are returned in 60000-char chunks; if content_truncated is true in the response, call again with offset: next_offset to fetch the next chunk.

Output: { product, slug, title, headings, content, content_offset, content_length, content_truncated, next_offset, canonical_url, last_updated, source_path }. content_length is the total page size; content_truncated + next_offset signal whether to paginate.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesDoc slug relative to pages/ (e.g., "rpc-api/daemon-rpc-api", "tutorials/first-app", "dero-pay/quick-start")
offsetNoByte offset into the page plaintext. Use 0 (or omit) for the first chunk; pass next_offset from a prior response to continue reading a long page.
productNoOptional product scope to disambiguate duplicate slugs
Behavior4/5

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

Annotations indicate readOnlyHint=true and destructiveHint=false, so the tool is a safe read operation. The description adds valuable behavioral context: long pages are chunked at 60k characters, and agents should paginate when content_truncated is true. This goes beyond what annotations provide but does not contradict them.

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

Conciseness5/5

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

The description is appropriately sized with three clear sections: purpose, when to call, and input requirements. Every sentence provides essential information without repetition or fluff. Front-loaded with the core purpose.

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?

Given the complexity of pagination and optional disambiguation via product, the description covers usage flow, input constraints, and output fields (listed out). No output schema exists, but the description enumerates all return fields, making it complete for agent decision-making.

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

Parameters5/5

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

Schema description coverage is 100% for all three parameters. The description adds meaningful context beyond the schema: slug must be non-empty relative to pages/, product is optional but recommended to disambiguate, and offset usage is explained with pagination details. This helps agents use parameters correctly.

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 clearly states 'Get a single bundled docs page by slug, with plain-text content and headings.' It specifies the resource (docs page), action (get), and output format (plain-text content and headings). Distinct from siblings like dero_docs_search (which returns candidate slugs) and dero_docs_list (which lists pages).

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

Usage Guidelines5/5

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

Explicitly states when to call: 'AFTER dero_docs_search has returned a candidate slug, OR when you have a known slug from a prior citation. PREFER dero_docs_search first when you only have a topic in mind.' Also provides critical input requirements and explains pagination via offset and content_truncated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dero_docs_listA
Read-only
Inspect

List indexed bundled docs pages across all four products with slugs, titles, and canonical URLs.

When to call: when surveying available docs (e.g. "what TELA tutorials exist?"), OR when you need a slug catalog before invoking dero_docs_get_page. PREFER dero_docs_search when you have a specific question.

Input Requirements:

  • product is OPTIONAL. Provide to scope to one of derod | tela | hologram | deropay.

  • limit is OPTIONAL (default 120, max 500).

Output: { docs_source, total, products, pages: [{ product, slug, title, canonical_url, last_updated }] }.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax pages returned (default 120, max 500)
productNoOptional docs product filter: derod | tela | hologram | deropay
Behavior4/5

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

Annotations already indicate read-only and non-destructive behavior. The description adds output schema details (fields returned) and notes default limit/max, providing extra context 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.

Conciseness5/5

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

The description is concise (three short paragraphs) and front-loaded with the main purpose. Every sentence adds value, with no redundant or irrelevant information.

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?

Given the simple tool with full schema coverage, the description fully covers behavior, constraints, and output structure. No gaps remain 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.

Parameters3/5

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

Schema coverage is 100%, so the schema already documents both parameters. The description repeats the product enum and limit defaults but adds no new semantic meaning beyond what's in 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 clearly states the tool lists indexed docs pages with specific fields (slugs, titles, canonical URLs) across four products, distinguishing it from related tools like dero_docs_search and dero_docs_get_page.

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

Usage Guidelines5/5

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

Explicitly provides when to call (surveying docs, needing slug catalog for get_page) and when to prefer alternative (search for specific question), naming dero_docs_search directly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dero_durl_to_scidA
Read-only
Inspect

Composite: resolve a TELA dURL (e.g. "vault.tela") to its on-chain SCID(s) by discovering TELA apps directly from chain — no external Gnomon indexer required. TELA apps advertise a human-readable dURL; this finds the contract(s) that claim it.

When to call: when a user asks "what's the SCID for .tela", "find the TELA app called X", or gives a dURL and wants the contract. IMPORTANT routing: for a registered DERO NAME like "quickbrownfox" (no dot, not a dURL), use dero_name_to_address instead — that is a name to address lookup, not a TELA app. This tool is only for TELA dURLs (they contain a dot / .tela / a dero:// prefix).

Input Requirements:

  • durl is REQUIRED. A TELA dURL such as "vault.tela", "feed.tela", or "dero://cipherchess.tela". Case- and prefix-insensitive.

Output: { query, normalized, found, match_count, scid, primary, collision, other_candidates[], narrative, related_docs } on a hit; { query, normalized, found:false, match_count:0, hint } on a miss. dURLs are NOT unique — when multiple contracts claim one, the NEWEST is returned as scid/primary and the rest are disclosed in other_candidates with collision:true. The first call triggers a ~10s one-time discovery scan of the newest chain contracts (cached afterward). Feed the returned scid to tela_inspect to view the app.

ParametersJSON Schema
NameRequiredDescriptionDefault
durlYesA TELA dURL to resolve, e.g. "vault.tela" or "dero://feed.tela". NOT a registered DERO name (use dero_name_to_address for names like "quickbrownfox").
Behavior5/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds significant behavioral context: first call triggers a ~10s one-time discovery scan (cached), dURLs are not unique and the newest is returned with collision flag, and other candidates are disclosed. 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.

Conciseness5/5

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

The description is well-structured with clear sections (purpose, when to call, input requirements, output). Every sentence adds value; no fluff. It is detailed yet efficient, front-loading the core purpose.

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?

Given the tool's complexity (composite, caching, collision handling, multiple contracts), the description covers all necessary context: behavior on first call, collision resolution, output shape, and integration with sibling tool tela_inspect. No output schema is present, but the description compensates fully.

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

Parameters4/5

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

Schema coverage is 100% and the parameter description is present, so baseline is 3. The description adds extra semantic value: case- and prefix-insensitivity, examples, and the distinction from DERO names. This goes beyond what the schema alone provides.

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 clearly states the tool resolves a TELA dURL to its on-chain SCID(s). It explicitly distinguishes from sibling 'dero_name_to_address' by noting that for DERO names (no dot), that tool should be used instead. The verb 'resolve' and resource 'TELA dURL' are specific and unambiguous.

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

Usage Guidelines5/5

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

Provides explicit when-to-call scenarios ('when a user asks...'), an important routing note distinguishing from DERO name lookup, and input requirements. It also explains output format and behavior on hit and miss, giving clear guidance on when to use this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dero_forge_demo_proofA
Read-only
Inspect

Composite: build a fresh deroproof… display object for ANY chosen transaction, ring slot, and amount — including negative amounts that uint64-wrap into the trillions. The forged string is constructed locally from public chain data (no wallet, no keys, no broadcast). On an unpatched explorer it shows Verified ✓ for the chosen amount; on the chain, nothing has changed.

When to call: when a user pastes a deroproof… string and asks "does Verified ✓ mean the chain minted these coins?" Forge an equivalent string for the same TX with a different amount and show the result side-by-side — that is the most direct refutation. Also useful for reproducing the docs/integrity/inflation-claim Part 3 demonstration on arbitrary inputs.

Math: blinder = C[ring_slot] − amount × G, then bech32("deroproof", version || blinder || CBOR({HH: zeros, VU: uint64})). The tool runs the same equation proof.Prove() checks at proof/proof.go:88-95 and self-verifies before returning a string. If the self-check fails, the tool throws rather than emit a string that would not verify.

Input Requirements (CRITICAL):

  • Exactly ONE of tx_hash or tx_hex MUST be provided. tx_hash triggers a daemon fetch (and surfaces the receiver address); tx_hex skips the daemon and uses the raw bytes the caller already has.

  • ring_slot is OPTIONAL (default 0). Must be in [0, ring_size).

  • amount_dero is OPTIONAL (default "-1"). Signed decimal with up to 5 fractional digits, e.g. "-1", "1000000", "-2200000.00181". Negative values produce uint64 wraparounds that unpatched explorers render as positive trillions.

Output: { forged_proof_string, target_amount: { dero, atoms_signed, atoms_uint64 }, ring_slot, ring_size, ring_receiver_address, math: { C_slot_hex, amount_x_G_hex, blinder_hex }, self_check: { verified, method }, explorer_display_amount, context_note, related_docs, _diagnostics }. ring_receiver_address is null when tx_hex was passed (the hex carries publickey pointers, not addresses).

READ-ONLY: this tool never broadcasts, never touches a wallet, never mutates chain state. It computes a string from public inputs and returns it. Annotation readOnlyHint: true is preserved. PREFER citing the returned related_docs (the integrity rebuttal pages) in any agent response — readers should understand the forged string is a display-layer object, not a consensus event.

ParametersJSON Schema
NameRequiredDescriptionDefault
tx_hexNoRaw TX bytes as hex (skip the daemon round-trip). Mutually exclusive with tx_hash. When provided, ring_receiver_address is omitted from the response (the hex carries publickey pointers, not full addresses).
tx_hashNoTX hash to forge against. Daemon fetches the TX hex + ring members. Mutually exclusive with tx_hex.
ring_slotNoWhich ring slot 0..ring_size-1 the forged proof should resolve to. Defaults to 0.
amount_deroNoTarget display amount in signed DERO (5 fractional digits = atomic precision). Negative values demonstrate the uint64 wraparound. Default "-1".-1
Behavior5/5

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

The description elaborates on behavior beyond annotations: it confirms read-only nature, explains local construction, self-verification, and error behavior (throws on self-check failure). It also describes output format and side effects (no chain mutation).

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?

The description is well-structured with clear sections but is moderately lengthy. It earns its length by covering both high-level purpose and detailed technical instructions without redundancy.

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?

The description fully covers input, output, behavior, and use cases. It references related documentation, explains the math, and provides diagnostic fields. No output schema exists, so the detailed output description compensates effectively.

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

Parameters5/5

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

Despite 100% schema coverage, the description adds crucial semantics: explains mutual exclusivity of tx_hash/tx_hex, default values, negative amount wraparound effect, and range constraints. This significantly aids understanding and correct invocation.

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 clearly states the tool forges a deroproof display object for any transaction, ring slot, and amount. It explicitly distinguishes itself by focusing on forging rather than decoding or other operations, and the purpose is immediately clear from the first sentence.

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

Usage Guidelines4/5

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

The description provides a specific 'When to call' section with a concrete use case (refuting 'Verified ✓' claims) and additional context for reproducing demonstrations. It lacks explicit 'when not to call' guidance but still offers strong directional advice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dero_get_blockA
Read-only
Inspect

Fetch a full block (header + miner_tx + transactions + topo position) by height OR hash via DERO.GetBlock.

When to call: when investigating a specific block or verifying a transaction's inclusion. Call dero_get_height first if you do not have a target height. PREFER citing dero_docs_search("block structure") so the user can verify field semantics.

Input Requirements (CRITICAL):

  • You MUST provide exactly ONE of hash or height. Providing both or neither returns a structured INVALID_INPUT error.

  • hash MUST be exactly 64 hex characters.

  • height MUST be a non-negative integer.

Output: full block with block_header, miner_tx, txs, and topo position fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
hashNo64-char hex block hash
heightNoBlock height
Behavior5/5

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

Annotations declare readOnlyHint=true, and the description adds behavioral details: returns full block with specific fields, requires exactly one parameter, and describes error behavior for invalid input. No contradictions 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.

Conciseness5/5

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

Well-structured with a clear first sentence stating purpose, followed by usage guidelines and bulleted input requirements. Every sentence adds value 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.

Completeness5/5

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

Given the tool's simplicity (2 parameters, no output schema), the description covers purpose, usage guidelines, parameter constraints, and output fields. It also directs users to documentation for field semantics, making it complete for effective use.

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

Parameters4/5

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

Schema coverage is 100% with pattern and minimum constraints. The description adds critical usage constraints: 'MUST provide exactly ONE of hash or height', 'hash MUST be exactly 64 hex characters', 'height MUST be non-negative integer'. This provides clearer semantics 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?

Description explicitly states 'Fetch a full block (header + miner_tx + transactions + topo position) by height OR hash'. The verb is specific ('Fetch') and the resource is clearly defined as a full block, distinguishing it from sibling tools like dero_get_block_header_by_hash which return only headers.

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

Usage Guidelines5/5

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

Contains an explicit 'When to call' section advising to investigate specific blocks or verify transaction inclusion. Recommends calling dero_get_height first if no target height is known, and suggests using dero_docs_search for field semantics. Also provides critical input requirements (exactly one of hash/height).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dero_get_block_countA
Read-only
Inspect

Get the total block count via DERO.GetBlockCount. This is a tip count, not a topoheight.

When to call: when you need just the block count (e.g. for delta math against a reference height). PREFER dero_get_height when you need tip and stable heights together.

Input Requirements: none.

Output: { count }.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

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

The description discloses that the tool returns a tip count (not topoheight) and the output format. Annotations already indicate readOnlyHint=true, so no contradiction. It adds behavioral context beyond annotations but could mention it's 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.

Conciseness5/5

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

The description is concise with 5 short sentences, each serving a purpose: definition, distinguishing info, usage guidance, input clarity, and output format. No wasted words.

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

Completeness5/5

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

For a simple tool with no parameters and no output schema, the description provides all necessary context: what it returns, how it differs from a sibling, and when to use it. It is fully complete.

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

Parameters4/5

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

With zero parameters and 100% schema coverage, the description adds value by stating 'Input Requirements: none,' confirming no inputs needed. This is clear and helpful, earning a baseline 4.

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 clearly states 'Get the total block count' with a specific verb and resource, and distinguishes itself from the related sibling dero_get_height by indicating that it returns a tip count, not a topoheight. This provides clear differentiation.

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

Usage Guidelines5/5

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

The description explicitly provides when to call ('when you need just the block count') and when not to ('PREFER dero_get_height when you need tip and stable heights together'), offering a direct alternative sibling.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dero_get_block_header_by_hashA
Read-only
Inspect

Get a block header by its 64-char hex hash via DERO.GetBlockHeaderByHash.

When to call: when you have a block hash (e.g. from a tx confirmation) and need its header without the full block body. PREFER dero_get_block when you also need the txs or miner_tx.

Input Requirements (CRITICAL):

  • hash MUST be exactly 64 hex characters (matches /^[0-9a-fA-F]{64}$/).

Output: { block_header: {...} }.

ParametersJSON Schema
NameRequiredDescriptionDefault
hashYesBlock top hash (hex)
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds critical input constraints (hash must be exactly 64 hex chars) and output shape ({ block_header: {...} }). This provides contextual behavior beyond annotations 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.

Conciseness5/5

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

The description is extremely concise with no wasted words. It front-loads the core functionality in the first sentence and then provides targeted usage guidance and input requirements. Every sentence adds value.

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

Completeness5/5

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

For a simple tool with one parameter, no output schema, and clear annotations, the description fully covers purpose, usage context, input constraints, and output shape. No gaps remain for agent decision-making.

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

Parameters3/5

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

Schema coverage is 100% with pattern and description. The description reinforces the exact length requirement ('MUST be exactly 64 hex characters') but does not add new semantic meaning beyond the schema. Baseline 3 is appropriate for high coverage.

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 clearly states 'Get a block header by its 64-char hex hash' and distinguishes from dero_get_block which includes transactions. The verb 'Get' and resource 'block header' are specific, and the differentiation from sibling tools is explicit.

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

Usage Guidelines5/5

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

Provides explicit when-to-use: 'when you have a block hash and need its header without the full block body,' and when-not: 'PREFER dero_get_block when you also need the txs or miner_tx.' This directly guides agent decision-making.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dero_get_block_header_by_topo_heightA
Read-only
Inspect

Get a block header by topological height (canonical ordering) via DERO.GetBlockHeaderByTopoHeight.

When to call: when you need a header keyed by topo position rather than chain height. Topoheight is the canonical ordering used by DERO indexers; height is the consensus block height.

Input Requirements (CRITICAL):

  • topoheight MUST be a non-negative integer no greater than the current topoheight (call dero_get_info first if unsure).

Output: { block_header: { hash, height, topoheight, timestamp, ... } }.

ParametersJSON Schema
NameRequiredDescriptionDefault
topoheightYesTopological height
Behavior4/5

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

Annotations already indicate read-only and non-destructive behavior. The description adds that the output contains a block_header object with specific fields, and that topoheight must be within current range. No contradictions, but doesn't mention error behavior 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.

Conciseness5/5

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

Very concise: three short paragraphs covering purpose, usage, and output. Every sentence adds value. No redundancy or extraneous information.

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

Completeness4/5

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

With no output schema, the description includes the output structure. It also suggests a prerequisite call (dero_get_info). Slightly incomplete in not explaining error states, but adequate for a simple read endpoint with annotations.

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

Parameters5/5

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

The description adds critical constraints to the 'topoheight' parameter that go beyond the schema: it must be non-negative and not exceed current topoheight. This provides semantic meaning that helps the agent form valid requests.

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 clearly states the tool retrieves a block header using topological height, distinguishing it from other methods like block header by hash. It explains the difference between topoheight and consensus height, making the purpose unmistakable.

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

Usage Guidelines5/5

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

Explicit guidance on when to call (need header by topo position) and critical input requirements (topoheight must be non-negative and no greater than current topoheight). Suggests calling dero_get_info first for safety, and provides output format.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dero_get_block_templateA
Read-only
Inspect

Get a mining block template for a miner payout address via DERO.GetBlockTemplate.

When to call: ONLY when you are actually mining. PREFER dero_get_last_block_header for general chain-tip inspection.

Input Requirements (CRITICAL):

  • wallet_address MUST be a valid DERO address (dero1... or deto1...) that will receive the block reward.

  • block is OPTIONAL. Set true to include the raw block blob in the response.

  • miner is an OPTIONAL label.

Output: block template payload suitable for a mining client. Does NOT submit a block; submission requires the excluded DERO.SubmitBlock method.

ParametersJSON Schema
NameRequiredDescriptionDefault
blockNoInclude block blob
minerNoOptional miner id / label
wallet_addressYesMiner payout DERO address
Behavior4/5

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

Annotations already declare readOnlyHint=true; description adds critical detail that it does NOT submit a block, citing the excluded method. 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.

Conciseness5/5

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

Concise, front-loaded purpose, then usage guidelines, then input requirements. Every sentence adds value; no redundancy.

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?

Covers all critical aspects: when to call, parameter requirements, behavior (no submission), and output description despite lacking output schema. Sufficient for correct invocation.

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

Parameters4/5

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

Schema coverage is 100% (baseline 3). Description adds concrete format requirements for wallet_address and optional semantics for block/miner, exceeding schema detail.

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?

Clearly states it gets a mining block template for a payout address, distinguishing from sibling dero_get_last_block_header for general chain-tip inspection.

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

Usage Guidelines5/5

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

Explicit guidance: 'ONLY when you are actually mining' and 'PREFER dero_get_last_block_header for general chain-tip inspection.'

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dero_get_encrypted_balanceA
Read-only
Inspect

Get the ENCRYPTED balance blob for a DERO address at a topo height via DERO.GetEncryptedBalance.

CRITICAL: this returns an opaque encrypted blob, NOT a cleartext balance. Only the wallet holding the spend key can decrypt it. Do NOT present the encrypted bytes as a balance to the user.

When to call: when verifying that an address has on-chain encrypted state (e.g. before attempting a transfer with a wallet you control), or as a sub-step in another tool. PREFER citing dero_docs_search("encrypted balance") so the user understands the opacity.

Input Requirements (CRITICAL):

  • address MUST start with dero1 (mainnet) or deto1 (testnet).

  • topoheight MUST be an integer; use -1 for the latest chain tip.

  • scid is OPTIONAL. Omit for native DERO; provide 64-hex SCID for asset balances.

Output: { status, registration, balance (encrypted blob), ... }.

ParametersJSON Schema
NameRequiredDescriptionDefault
scidNoAsset SCID hex; omit for native DERO
addressYesDERO address (dero1… or deto1…)
topoheightYesUse -1 for latest chain tip
Behavior5/5

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

Annotations already indicate readOnlyHint=true and destructiveHint=false. The description adds critical behavioral context: the output is an opaque encrypted blob that only the wallet holder can decrypt. 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.

Conciseness5/5

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

The description is well-structured with sections, critical warnings, input requirements, and output summary. Every sentence adds value; no fluff.

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?

Given no output schema, the description summarizes the output structure. It covers all aspects: purpose, when to call, parameter requirements, behavioral caveats, and output shape. For a tool with 3 parameters and clear semantics, this is fully adequate.

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

Parameters4/5

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

All three parameters have schema descriptions (100% coverage). The description reinforces critical formats: address must start with dero1/deto1, topoheight -1 for latest, scid optional. This adds meaning beyond the schema, though schema already describes patterns.

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 clearly states the tool gets the ENCRYPTED balance blob for a DERO address at a topo height via DERO.GetEncryptedBalance. It emphasizes that the output is not a cleartext balance, distinguishing it from balance-related tools. The verb 'get' and resource 'encrypted balance blob' are specific.

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

Usage Guidelines5/5

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

The description explicitly states when to call: for verifying on-chain encrypted state or as a sub-step. It also advises against presenting the encrypted bytes as a balance and prefers citing dero_docs_search. This provides clear usage boundaries and alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dero_get_gas_estimateA
Read-only
Inspect

Estimate gas (compute + storage) for transfers, SC deploys, or SC invokes via DERO.GetGasEstimate. This is a PRE-FLIGHT check; nothing is submitted.

When to call: BEFORE any wallet-side transfer/scinvoke (using external wallet tooling) to size fees, OR when explaining deploy costs to a user. PREFER citing dero_docs_search("gas estimate" or "fees") so the user understands how compute vs storage gas are charged.

Input Requirements (CRITICAL):

  • At least ONE of transfers, sc, or sc_rpc MUST be provided.

  • sc is the DVM-BASIC contract source string when estimating a deploy.

  • sc_rpc is an array of { name, datatype, value } invocation arguments (entrypoint + SC_ID + caller-provided params).

  • signer is OPTIONAL but PREFERRED; pass the dero1.../deto1... address that would sign the eventual tx.

Output: { gascompute, gasstorage, status }.

ParametersJSON Schema
NameRequiredDescriptionDefault
scNoSC source to deploy
sc_rpcNoSC invocation arguments (entrypoint, SC_ID, etc.)
signerNoSigner address used for estimation
transfersNoOptional transfer list
Behavior4/5

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

Annotations indicate readOnlyHint=true, and the description reinforces this by stating 'PRE-FLIGHT check; nothing is submitted.' It adds context about compute vs storage gas and output format, which goes beyond 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.

Conciseness4/5

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

The description is well-structured with clear sections, front-loading the purpose. It is not overly verbose, though it could be slightly more concise. No wasted sentences.

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?

Given the absence of an output schema, the description provides the output format. It covers input requirements, purpose, and usage context. The annotations and schema are well complemented.

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

Parameters5/5

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

Schema coverage is 100%, but the description adds critical constraint: 'At least ONE of transfers, sc, or sc_rpc MUST be provided.' It also explains sc, sc_rpc, and signer in more detail, adding meaning beyond the schema descriptions.

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

Purpose4/5

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

The description clearly states the tool estimates gas for transfers, SC deploys, or SC invokes, using the verb 'Estimate' and specifying the resource. However, it does not explicitly differentiate from the sibling tool 'estimate_deploy_cost', which may have overlapping functionality.

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

Usage Guidelines5/5

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

Explicit guidelines for when to call: 'BEFORE any wallet-side transfer/scinvoke' and 'when explaining deploy costs to a user.' It also advises preferring dero_docs_search for understanding fee structure, providing clear when-not-to-use guidance and an alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dero_get_heightA
Read-only
Inspect

Get the current block heights: tip height, stable height (finalized), and topoheight (canonical ordering) via DERO.GetHeight.

When to call: when you need a quick height snapshot without the full chain-info payload. PREFER dero_get_info when you also need network, version, or difficulty.

Input Requirements: none.

Output: { height, stableheight, topoheight }.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the agent knows it's safe. The description adds that it's a 'quick' snapshot and specifies the output fields, providing useful but not critical context 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.

Conciseness5/5

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

Four concise sentences with no fluff: purpose, usage guidance, input requirements, and output format. Highly efficient.

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?

Given zero parameters and a simple output, the description fully covers what the tool does, how to use it, and what to expect. It even references the sibling tool. No major gaps.

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

Parameters5/5

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

No parameters exist, and the description states 'Input Requirements: none', which is clear. Schema coverage is 100% so no additional information is needed.

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 clearly states it retrieves current block heights (tip, stable, topoheight) via DERO.GetHeight. It uses a specific verb 'get' and resource 'block heights', and distinguishes itself from the sibling 'dero_get_info' which provides more data.

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

Usage Guidelines5/5

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

Explicitly tells when to call ('when you need a quick height snapshot without the full chain-info payload') and when not to ('PREFER dero_get_info when you also need network, version, or difficulty'). This is excellent guidance with alternative naming.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dero_get_infoA
Read-only
Inspect

Get DERO daemon and chain metadata: height, topoheight, stableheight, difficulty, version, network, mempool size, and total supply (DERO.GetInfo).

When to call: first thing in any chain-state investigation or sync-health check. Call this BEFORE dero_get_sc, dero_get_transaction, or dero_get_block when you do not already know the current tip. PREFER citing dero_docs_search("DERO.GetInfo") so the user can verify field semantics.

Input Requirements: none.

Output: full chain info JSON including topoheight, stableheight, height, network, version, difficulty, tx_pool_size, and total_supply.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the description adds value by specifying the output fields and confirming no input requirements. It does not contradict annotations and provides additional context about the tool's behavior beyond the structured fields.

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

Conciseness5/5

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

The description is concise (about 6 sentences) and well-structured with clear sections: purpose, when to call, input, output. Every sentence adds useful information without redundancy.

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?

Given the tool has no parameters and no output schema, the description fully covers the output fields and usage context. It includes guidance on when to use and what data to expect, making it complete 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.

Parameters4/5

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

The tool has zero parameters, and schema coverage is 100%. The description states 'Input Requirements: none,' which is sufficient. No additional parameter documentation is needed.

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 clearly states the tool returns DERO daemon and chain metadata, listing specific fields (height, topoheight, etc.), which distinguishes it from siblings that operate on blocks, transactions, or smart contracts.

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

Usage Guidelines5/5

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

Explicitly says when to call: 'first thing in any chain-state investigation or sync-health check' and instructs to call before other chain-related tools like dero_get_sc, dero_get_transaction, or dero_get_block. Also suggests citing dero_docs_search for verification, providing clear guidance on usage context and alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dero_get_last_block_headerA
Read-only
Inspect

Get the header of the current tip block via DERO.GetLastBlockHeader (no full block body).

When to call: when you need tip block metadata (hash, miner, timestamp, difficulty) without the transactions or miner_tx payload. PREFER dero_get_block when you need transactions or the miner_tx.

Input Requirements: none.

Output: { block_header: { hash, height, topoheight, timestamp, difficulty, ... } }.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the description adds value by specifying the scope (block header only) and output fields (hash, height, etc.), which is clear and non-contradictory.

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

Conciseness5/5

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

The description is concise with clear sections (purpose, when to call, input, output). Each sentence adds value, no superfluous content.

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?

Given no required inputs and no output schema, the description provides a representative output snippet and covers all relevant context for a simple read-only tool.

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

Parameters4/5

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

No parameters exist, and the description explicitly states 'Input Requirements: none'. Since schema coverage is 100%, and the description adds no redundant info, baseline 4 applies.

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 explicitly states it retrieves the header of the current tip block via DERO.GetLastBlockHeader and clearly distinguishes it from dero_get_block by noting it returns no full block body.

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

Usage Guidelines5/5

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

Provides explicit guidance: 'When to call' describes scenarios for tip block metadata without transactions, and recommends dero_get_block when transactions are needed, differentiating from a sibling tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dero_get_random_addressA
Read-only
Inspect

Get random registered addresses from the chain (used for ring construction in private transfers) via DERO.GetRandomAddress.

When to call: when building a transfer ring in external wallet tooling, or sampling chain participants. Optional asset SCID limits sampling to holders of that asset.

Input Requirements:

  • scid is OPTIONAL. When provided it MUST be exactly 64 hex characters.

Output: { address: string[] }.

ParametersJSON Schema
NameRequiredDescriptionDefault
scidNoOptional asset smart-contract id (hex)
Behavior4/5

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

Annotations already indicate readOnlyHint=true and destructiveHint=false, so the description does not need to restate safety. However, it adds useful context about the random nature of the result and its use in ring construction, which goes 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.

Conciseness5/5

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

The description is concise with no wasted words. It is well-structured: purpose, when to call, input requirements, and output format, all in a few clear sentences.

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?

Despite no output schema, the description specifies the output format as '{ address: string[] }'. It covers purpose, usage context, input requirements, and return value, making it fully informative for a single-optional-parameter tool.

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

Parameters3/5

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

Schema coverage is 100% with the 'scid' parameter fully described via pattern and description in the input schema. The description redundantly states it is optional and must be 64 hex characters, adding no new meaning 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 clearly states the tool retrieves random registered addresses from the chain, used for ring construction in private transfers. This is specific and distinct from sibling tools like dero_get_block, dero_get_height, etc., 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.

Usage Guidelines5/5

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

The description explicitly provides when to call: when building a transfer ring in external wallet tooling or sampling chain participants. It also explains how the optional scid parameter limits sampling to holders of a specific asset, giving clear contextual guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dero_get_scA
Read-only
Inspect

Read smart contract state (code and/or stored variables) by SCID via DERO.GetSC. This is the primary entry point for any contract inspection on DERO.

When to call: as the first step in any DVM contract investigation. Pair with dero_docs_search("DVM-BASIC") to interpret the returned code blob. PREFER citing dero_docs_search("smart contract") or dero_docs_get_page on a relevant DVM page so the user can interpret the contract's state model.

Input Requirements (CRITICAL):

  • scid MUST be exactly 64 hex characters (the contract id).

  • code is OPTIONAL (defaults to true). Set false to skip the source blob when you only need stored variables.

  • variables is OPTIONAL (defaults to true). Set false to skip variables when you only need the source.

  • topoheight is OPTIONAL. Omit or use -1 for the latest committed state.

Output: { code, balances, variables: { stringkeys, uint64keys }, ... }.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeNoInclude contract source (default true)
scidYes64-char hex Smart Contract ID
variablesNoInclude stored variables (default true)
topoheightNoTopo height; omit or use -1 for latest
Behavior4/5

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

Annotations indicate readOnlyHint=true. Description adds behavioral details: critical input requirements (scid format), optional parameters and their defaults, and output shape. 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.

Conciseness5/5

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

Well-structured: high-level purpose, when to call, critical input requirements, output shape. Each sentence serves a purpose; no fluff. Front-loaded with key information.

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?

Comprehensive for a read-only contract inspection tool: covers purpose, usage guidance, parameter details, output format, and follow-up actions. No output schema, but description provides enough context.

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

Parameters5/5

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

Schema coverage is 100%, but description adds meaning: explains defaults and usage for 'code' and 'variables' (e.g., 'Set false to skip the source blob when you only need stored variables'), and clarifies topoheight usage. Adds value beyond 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?

Clearly states 'Read smart contract state (code and/or stored variables) by SCID via DERO.GetSC.' Identifies itself as 'the primary entry point for any contract inspection on DERO,' distinguishing it from siblings like 'explain_smart_contract' which likely interpret the state.

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

Usage Guidelines5/5

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

Explicitly says 'When to call: as the first step in any DVM contract investigation.' Advises pairing with dero_docs_search and prefers citing docs for interpretation, giving clear context and alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dero_get_transactionA
Read-only
Inspect

Fetch one or more transactions by hash via DERO.GetTransaction. Each tx is returned with confirmation status, block hash, and (optionally) decoded JSON fields.

When to call: when tracing a tx by hash. Pair with dero_get_sc when the tx invokes a contract. PREFER citing dero_docs_search("transaction structure") so the user can interpret confirmations, ring members, and SC fields.

Input Requirements (CRITICAL):

  • txs_hashes MUST be a non-empty array of 64-char hex strings.

  • decode_as_json is OPTIONAL. PREFER 1 (any non-zero value) when you want JSON-decoded fields instead of raw blobs.

Output: { txs: [...], txs_as_hex: [...] } with per-tx confirmation, block hash, and (when decoded) parsed payload.

ParametersJSON Schema
NameRequiredDescriptionDefault
txs_hashesYesList of transaction hashes (hex)
decode_as_jsonNoOptional: decode each tx as JSON when non-zero
Behavior5/5

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

The description discloses behavioral traits beyond annotations: it returns transaction data with confirmation status and block hash, optionally decodes JSON. It also provides critical input requirements and output format, ensuring the agent knows what to expect and how to invoke it safely.

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

Conciseness5/5

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

The description is concise and well-structured, with clear sections for purpose, when to call, input requirements, and output. Every sentence adds value without redundancy.

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?

Given the complexity of fetching transactions and the lack of an output schema, the description provides a full output structure ({ txs: [...], txs_as_hex: [...] } with per-tx fields). It also covers input validation, optional parameter, and cross-tool references, making it complete.

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

Parameters4/5

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

The schema coverage is 100%, but the description adds extra guidance: for 'txs_hashes', it explicitly states 'MUST be a non-empty array of 64-char hex strings', and for 'decode_as_json', it recommends preferring a non-zero value for JSON decoding. This adds practical usage context 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 clearly states the tool fetches transactions by hash and specifies what is returned (confirmation status, block hash, optionally decoded JSON). It differentiates itself from sibling tools like dero_get_tx_pool and dero_get_sc by explicitly mentioning when to use and what to pair with.

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

Usage Guidelines5/5

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

The description explicitly says 'When to call: when tracing a tx by hash' and recommends pairing with dero_get_sc for contract invocations. It also suggests using dero_docs_search to interpret fields, providing clear guidance on when and how to use the tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dero_get_tx_poolA
Read-only
Inspect

List pending mempool transaction hashes via DERO.GetTxPool.

When to call: when checking unconfirmed activity, watching for a specific tx to land, or estimating mempool pressure. NOTE: tx_hashes may be null or an empty array when the mempool is empty — treat both as "no pending".

Input Requirements: none.

Output: { tx_hashes: string[] | null }.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds valuable behavioral detail about possible null/empty tx_hashes, but doesn't disclose other traits like rate limits or pagination, which are not needed for this simple tool.

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

Conciseness5/5

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

Extremely concise: three short paragraphs covering purpose, when to call, input/output. Every sentence adds value. Front-loaded with the core action.

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?

Given zero parameters, existing annotations, and no output schema, the description fully covers the tool's behavior, output format, and edge cases. Nothing missing.

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

Parameters4/5

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

No parameters exist, so baseline is 4. The description correctly notes 'Input Requirements: none' and schema coverage is 100% (vacuous). No further parameter info needed.

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 clearly states 'List pending mempool transaction hashes' using a specific verb and resource, distinguishing it from sibling tools that deal with blocks, transactions, or other data.

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

Usage Guidelines5/5

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

Provides explicit when-to-use scenarios: 'when checking unconfirmed activity, watching for a specific tx to land, or estimating mempool pressure.' Also explains how to handle null/empty response.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dero_name_to_addressA
Read-only
Inspect

Resolve a DERO on-chain registered name to its address via DERO.NameToAddress.

When to call: when a user supplies a human-readable name (e.g. "myname") instead of a dero1.../deto1... address.

Input Requirements (CRITICAL):

  • name MUST be a non-empty string. Resolution is case-sensitive on the daemon side.

  • topoheight MUST be an integer; use -1 for the latest registry state.

Output: { name, address }. On NOT_FOUND the daemon's RPC error is surfaced as a structured _meta.error.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesRegistered name
topoheightYesUse -1 for latest
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds behavioral details beyond annotations, such as case-sensitivity, output format { name, address }, and error handling for NOT_FOUND. This provides valuable context 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.

Conciseness5/5

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

The description is well-structured in three paragraphs: purpose, usage guidelines, and input/output details. It is concise with no wasteful sentences, and the most critical information is front-loaded.

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?

Given the tool's simplicity (2 parameters, no output schema, and annotations present), the description covers all necessary aspects: when to use, input requirements, output shape, and error handling. It is complete and provides sufficient context for correct invocation.

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

Parameters4/5

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

Schema coverage is 100% with both parameters described. The description adds meaning beyond the schema by specifying that 'name' must be non-empty (though schema already has minLength:1), noting case-sensitivity, and clarifying that topoheight uses -1 for latest. This enhances the schema's information.

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 clearly states it resolves a DERO on-chain registered name to its address, using a specific verb and resource. It distinguishes this tool from siblings by focusing on name resolution, which is unique among the listed tools.

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

Usage Guidelines5/5

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

Explicitly says 'When to call: when a user supplies a human-readable name instead of a dero1.../deto1... address.' This provides clear context for when the tool should be used, effectively guiding the agent away from alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dero_tela_list_appsA
Read-only
Inspect

Composite: list/browse the TELA apps discovered on-chain (each with its dURL, name, SCID, and doc count) — answers "what TELA apps exist?" without any external indexer. Powered by an in-process scan of the newest chain contracts.

When to call: when a user wants to explore or search the TELA ecosystem ("what TELA apps are there", "show me TELA games", "is there a TELA app about X"), or to find a SCID when they do not know the exact dURL. For an exact dURL use dero_durl_to_scid; to inspect a specific SCID use tela_inspect.

Input Requirements:

  • query is OPTIONAL. Case-insensitive filter matched against dURL and name (e.g. "chess", "vault").

  • limit is OPTIONAL (default 50, max 200).

Output: { query, total_matched, returned, truncated, apps:[{ scid, durl, name, install_height, doc_count }], index_meta, narrative, related_docs }. The first call triggers a ~10s one-time discovery scan (cached afterward). index_meta discloses how much of the chain was scanned so the answer's coverage is transparent.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax apps to return (default 50, max 200).
queryNoOptional case-insensitive filter matched against dURL and name (e.g. "chess", "vault").
Behavior4/5

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

Annotations already indicate read-only operation. The description adds important behavioral context: first call triggers a ~10s scan that is cached, and index_meta reveals coverage transparency.

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?

Well-structured with clear sections: summary, when-to-call, input requirements, output. Every sentence adds value, though slightly verbose.

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

Completeness4/5

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

Given no output schema, description adequately explains return fields and important behavior (scan delay, caching, coverage). Could mention more about narrative structure.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. The description adds examples for query but does not add significant meaning beyond 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 clearly states the tool lists/browses TELA apps discovered on-chain, with specific fields. It distinguishes from sibling tools like dero_durl_to_scid and tela_inspect.

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

Usage Guidelines5/5

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

The 'When to call' section explicitly provides usage scenarios and directs when to use alternatives, e.g., for exact dURL use dero_durl_to_scid.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

diagnose_chain_healthA
Read-only
Inspect

Composite: run a four-step chain (DERO.Ping → DERO.GetInfo → DERO.GetHeight → DERO.GetTxPool) and return a single narrative health report with chain metadata, mempool snapshot, machine-readable signals, and curated docs citations.

When to call: as the first step in any chain-state investigation when the user asks "is the node healthy", "is it synced", or "what is the current state of the chain". PREFER this over chaining the four primitives yourself — the composite handles partial-failure modes and lag-depth classification consistently, and the response already cites the right docs page.

Input Requirements:

  • include_tx_pool is OPTIONAL (default true). Set false to skip the mempool snapshot when you only need chain-tip status.

Output: { status, narrative, signals[], chain, mempool, related_docs, _diagnostics }. status is one of healthy | lagging | partial | unreachable. chain is null when DERO.GetInfo was unreachable; mempool is null when skipped or the call failed. On total daemon unreachability the tool returns a structured _meta.error with code RPC_UNREACHABLE.

ParametersJSON Schema
NameRequiredDescriptionDefault
include_tx_poolNoInclude mempool snapshot in narrative and response. Default true.
Behavior5/5

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

Annotations already indicate readOnly and non-destructive. The description adds significant detail: handles partial-failure modes, lag-depth classification, and cites docs. Also describes output structure and error handling. 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.

Conciseness5/5

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

The description is well-structured: purpose, when to use, input requirements, output summary. Every sentence adds value without redundancy. Efficient use of words.

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?

Despite having no output schema, the description fully explains the output structure, status enum, null cases for chain and mempool, and error format. Comprehensive for a complex composite tool.

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

Parameters4/5

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

Schema coverage is 100% with a single boolean parameter. The description adds context on when to set include_tx_pool to false (for chain-tip only), which is helpful beyond the schema's description.

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 it runs a four-step chain and returns a single narrative health report. It clearly distinguishes from sibling tools by specifying it composites multiple primitives (DERO.Ping, DERO.GetInfo, etc.) and provides a coherent output.

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

Usage Guidelines5/5

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

Explicitly says 'When to call: as the first step in any chain-state investigation' and advises to prefer this composite over chaining primitives. Provides clear context and alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

estimate_deploy_costA
Read-only
Inspect

Composite: send a DVM-BASIC contract source to the daemon's gas estimator, then return the raw estimate alongside a plain-text breakdown (what each gas number means), the parsed contract surface, and curated DVM deploy docs as citations.

When to call: BEFORE asking a wallet to broadcast a deploy transaction, OR when explaining the cost of a contract to a user. PREFER this over chaining dero_get_gas_estimate yourself: this composite already explains gascompute vs gasstorage in plain language, parses the SC source to show what functions the user is about to deploy (reusing extractScSurface from explain_smart_contract), and protects against fabricating a breakdown when the daemon reports 0/0 with a non-OK status.

Input Requirements:

  • sc is REQUIRED. The full DVM-BASIC contract source — must contain at least one Function ... End Function block. A function body alone will fail with INVALID_INPUT.

  • signer is OPTIONAL. A dero1.../deto1... address that will sign the eventual deploy tx. The daemon uses it for fee context; omitting it still returns a meaningful estimate.

  • include_breakdown is OPTIONAL (default true). Set false when you only need the raw numbers (e.g. piping into a fee table).

Output: { estimate: { gascompute, gasstorage, status }, breakdown: { compute_note, storage_note, total_units } | null, signer_used, include_breakdown, sc_surface: { functions, stringkeys, uint64keys, raw_code_length, function_count }, related_docs }. breakdown is null when include_breakdown=false OR when the daemon returned 0/0 with a non-OK status (never fabricated). On DVM compile failure the composite returns a structured _meta.error with code INVALID_INPUT and the daemon's exact compile message in _meta.error.raw.

ParametersJSON Schema
NameRequiredDescriptionDefault
scYesDVM-BASIC contract source to deploy. MUST be the full contract (Function ... End Function blocks), not a function body alone.
signerNoOptional dero1.../deto1... signer for the eventual deploy tx.
include_breakdownNoDefault true. Set false to return raw estimate numbers only.
Behavior5/5

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

Beyond annotations (readOnlyHint=true), the description discloses that it is a composite tool, uses 'extractScSurface' from another tool, and protects against fabricating a breakdown when the daemon returns 0/0 with non-OK status. It also details error handling with structured errors and codes. 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.

Conciseness4/5

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

The description is well-structured with a first-sentence purpose, then usage, input, and output sections. It is thorough but slightly verbose; every sentence adds value, but it could be tightened marginally.

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?

Given the tool's complexity (composite, no output schema), the description fully compensates by detailing the output structure, breakdown conditions, error handling, and source parsing. It covers all necessary context for correct usage.

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

Parameters5/5

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

Although the schema covers all three parameters (100% coverage), the description adds crucial context: 'sc must contain at least one Function ... End Function block', 'signer is OPTIONAL with address format', and 'include_breakdown defaults true'. It also explains the output structure, which is missing from the input 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 starts with 'Composite: send a DVM-BASIC contract source to the daemon's gas estimator, then return...', clearly stating the verb (estimate, send, return) and resource (deploy cost, gas estimate). It distinguishes from sibling 'dero_get_gas_estimate' by explicitly preferring this composite tool.

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

Usage Guidelines5/5

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

The description provides explicit when-to-call scenarios: 'BEFORE asking a wallet to broadcast a deploy transaction, OR when explaining the cost of a contract to a user.' It also advises preferring this over chaining 'dero_get_gas_estimate' and explains benefits like plain-language breakdown and protection against fabricated results.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

explain_smart_contractA
Read-only
Inspect

Composite: fetch a DERO smart contract (code + variables + balances) and return its function surface, a classification of the contract pattern (tela_index | tela_doc | token | registry | minimal | generic), a plain-language narrative, and curated DVM docs citations re-ordered so the most relevant page is first. TELA contracts (apps/files) are detected first and cite the TELA spec; for a deep TELA parse use tela_inspect.

When to call: when the user wants to UNDERSTAND a smart contract — its functions, state shape, or which DVM concept to read about. PREFER this over chaining dero_get_sc with a docs lookup yourself: this composite already parses the DVM-BASIC source for function declarations, sorts stringkeys/uint64keys deterministically, and picks the right docs page from a heuristic so the agent does not have to learn DVM-BASIC syntax to summarize a contract.

Input Requirements:

  • scid is REQUIRED. Must be 64 hex chars (the smart contract id). Use 0000…0001 for the on-chain name registry as a known-good example.

  • topoheight is OPTIONAL. Provide to inspect the contract at a specific topo height; omit for latest tip.

Output: { scid, topoheight, kind, surface: { functions[], stringkeys[], uint64keys[], balances }, narrative, raw_code_length, has_code, related_docs }. kind is one of tela_index | tela_doc | token | registry | minimal | generic. surface.functions items are { name, args, returns }. has_code is false when the SCID is unknown or has no on-chain code; functions is then [] and the narrative explains the gap. raw_code_length is always present so the agent knows when to fall back to dero_get_sc for the full source.

ParametersJSON Schema
NameRequiredDescriptionDefault
scidYes64-char hex Smart Contract ID
topoheightNoOptional topo height; omit for latest tip
Behavior4/5

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

Annotations declare readOnlyHint=true and destructiveHint=false, so safety is clear. The description adds behavioral details: it parses DVM-BASIC source for function declarations, sorts stringkeys/uint64keys deterministically, picks the right docs page via heuristic, and returns a classification. It also explains that has_code=false indicates unknown SCID and raw_code_length is always present. This goes 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.

Conciseness5/5

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

The description is well-structured and front-loaded: first the composite output, then when-to-call, then input requirements, then output details. Every sentence adds value, no redundancy. Appropriate length for the tool's complexity.

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?

Without an output schema, the description fully explains the output structure: fields like scid, topoheight, kind, surface (with subfields functions, stringkeys, uint64keys, balances), narrative, raw_code_length, has_code, related_docs. It covers special cases like when has_code is false. This is complete for a tool of this complexity.

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

Parameters3/5

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

Schema coverage is 100% with both parameters described (pattern and optional). The description reiterates the pattern and adds a known-good example, but adds no new semantic meaning beyond the schema. Given high coverage, baseline 3 is appropriate.

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 clearly states it is a composite tool that fetches a DERO smart contract and returns a function surface, classification, narrative, and curated docs citations. It distinguishes itself from siblings like dero_get_sc (raw code) and tela_inspect (deep TELA parse). The purpose is specific: to help the user understand a smart contract.

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

Usage Guidelines5/5

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

Explicit instructions: 'PREFER this over chaining dero_get_sc with a docs lookup yourself' and 'When to call: when the user wants to UNDERSTAND a smart contract'. Input requirements provide a known-good example (0000...0001) and specify optional topoheight. Also mentions fallback: use dero_get_sc when has_code is false.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

recommend_docs_pathA
Read-only
Inspect

Composite: take a natural-language intent, fan out parallel scoped searches across the bundled docs for all four DERO products (derod, tela, hologram, deropay), boost any product_hint matches by 1.5×, and return a ranked recommendation list with per-result rationale plus ready-to-cite related_docs.

When to call: at the START of any "where do I read about X?" or "which docs cover Y?" investigation, BEFORE calling dero_docs_search directly. PREFER this over guessing the right product: this composite already runs all four products in parallel, dedupes overlap, surfaces the top heading per result as rationale, and gives you the top-2 citations pre-built. Pass product_hint when the user has already said e.g. "TELA" or "DeroPay" so that product's matches float to the top.

Input Requirements:

  • intent is REQUIRED. Free-text description of what the user is trying to do (min 8 chars). Drop verbs and use product nouns like "deploy a TELA app" or "verify a DeroPay webhook signature" for best results.

  • product_hint is OPTIONAL. One of derod | tela | hologram | deropay. Multiplies hint-product scores by 1.5×.

  • limit_per_product is OPTIONAL (default 2, max 5). Cap per-product hits before merging.

Output: { intent, product_hint, limit_per_product, recommended: [{ product, slug, title, canonical_url, score, boosted_score, rationale }], by_product: { derod | tela | hologram | deropay: { count, top_slug, top_score } }, related_docs: DeroCitation[] }. related_docs is the top-2 picks pre-built as citations the agent can drop straight into a response. On zero matches across every product the composite returns a structured _meta.error with code NO_DOCS_MATCH and a hint to rephrase or drop the product_hint.

ParametersJSON Schema
NameRequiredDescriptionDefault
intentYesNatural-language description of what the user wants to do (e.g. "deploy a TELA app", "trace a transaction by hash", "verify a webhook signature").
product_hintNoOptional bias toward one product (derod | tela | hologram | deropay) when known.
limit_per_productNoCap per-product search results before merging. Default 2.
Behavior5/5

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

Discloses behavioral traits: composite operation, fan-out parallelism, 1.5x boost for product_hint, deduplication, and structured output including error handling. Annotations already declare readOnlyHint=true, and the description adds complementary detail 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.

Conciseness4/5

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

Well-structured with headings for 'When to call', 'Input Requirements', and output format. Slightly verbose but every sentence adds useful information. Could be trimmed slightly, but effectively front-loaded.

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?

No output schema, but the description thoroughly details the output structure including recommended array, by_product summary, and related_docs citations, as well as error case. For a composite tool with 3 parameters, this is comprehensive.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description adds value by explaining intent should drop verbs and use product nouns, product_hint multiplies scores by 1.5×, and limit_per_product defaults to 2 with max 5. This goes beyond the schema descriptions.

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 clearly states it is a composite tool that takes a natural-language intent, fans out searches across four DERO products, boosts product_hint matches, and returns a ranked recommendation list with rationale and related_docs. It explicitly distinguishes itself from sibling tool dero_docs_search by stating when to call it.

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

Usage Guidelines5/5

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

Provides explicit guidance: 'When to call: at the START of any 'where do I read about X?' investigation, BEFORE calling dero_docs_search directly.' Also advises to prefer this over guessing the right product and gives input requirements with best practices (e.g., 'drop verbs and use product nouns').

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tela_get_doc_contentA
Read-only
Inspect

Composite: fetch the actual file content stored in a TELA-DOC-1 contract. A DOC's file (HTML/CSS/JS/...) lives inside a DVM-BASIC comment block in the contract code — NOT in a stored variable — so this tool fetches DERO.GetSC, confirms the SCID is a DOC, and extracts the file bytes. Gzip-compressed files (a .gz filename, the TELA-CLI default) are transparently base64-decoded + decompressed to plaintext. Large files paginate via offset.

When to call: when a user wants to READ or inspect the actual code/markup a TELA app file holds (e.g. "show me the HTML of this TELA DOC", "what does this app's app.js contain"). Get DOC SCIDs from tela_inspect on an INDEX first. PREFER this over dero_get_sc: that returns the raw DVM contract wrapper; this extracts just the embedded file content and reports docType, size, and signature presence.

Input Requirements:

  • scid is REQUIRED. Must be 64 hex chars and reference a TELA-DOC-1 contract (an INDEX or non-TELA SCID returns INVALID_INPUT with guidance).

  • offset is OPTIONAL. Byte offset into the extracted content; pass next_offset to read the next chunk of a large file.

  • topoheight is OPTIONAL. Omit for the latest committed state.

Output: { scid, topoheight, filename, doc_type, sub_dir, content_embedded, content, content_offset, content_length, content_truncated, next_offset, compressed, decompressed, stored_filename, signature, signature_note, note, narrative, related_docs }. content is the plaintext file (a 60000-char chunk; paginate via next_offset), or null when content is not embedded (DocShard/STATIC/external). compressed is true for .gz files; decompressed is true when this tool gunzipped them (filename then strips .gz; stored_filename keeps the on-chain name). The contract's author signature presence is reported but NOT cryptographically verified.

ParametersJSON Schema
NameRequiredDescriptionDefault
scidYes64-char hex Smart Contract ID of a TELA-DOC-1 file contract
offsetNoByte offset into the extracted file content; use next_offset to paginate large files
topoheightNoOptional topo height; omit for latest committed state
Behavior5/5

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

Annotations indicate readOnlyHint=true, but description adds critical details: gzip decompression, pagination, output fields, and that files are stored in DVM-BASIC comments. 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.

Conciseness5/5

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

Well-structured with purpose, mechanism, usage, inputs, output. Each sentence adds value. Front-loaded and appropriate length for a complex tool.

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?

Comprehensive: explains file extraction from contract, gzip handling, pagination, output fields, error cases, and prerequisite tela_inspect. No output schema, but description covers return values.

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

Parameters5/5

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

Schema coverage is 100%, but description adds context: scid must be TELA-DOC-1, offset for pagination with next_offset, topoheight for state. Input requirements section adds clarity.

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?

Clearly states 'fetch the actual file content stored in a TELA-DOC-1 contract' and explains the mechanism (file inside DVM-BASIC comment). Distinguishes from dero_get_sc by specifying it extracts embedded content.

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

Usage Guidelines5/5

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

Explicitly says when to call (user wants to read TELA app markup), provides examples, and recommends over dero_get_sc. Also gives prerequisites and error handling guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tela_inspectA
Read-only
Inspect

Composite: fetch a TELA contract by SCID (DERO.GetSC code + variables) and parse it as either a TELA-INDEX-1 app manifest or a TELA-DOC-1 file contract, auto-detecting which standard it is from the stored keys. TELA is DERO's on-chain web-app platform: an INDEX is the app manifest (like package.json) and DOCs are the individual files (HTML/CSS/JS) stored on chain.

When to call: as the FIRST step whenever a user references a TELA SCID, a .tela dURL app, or asks "what is this TELA contract/app", "what files does this TELA app have", or "is this a TELA INDEX or DOC". PREFER this over dero_get_sc + manual parsing or explain_smart_contract: explain_smart_contract treats TELA contracts as generic DVM and its surface CAPS stored keys at 50, which silently drops DOCn entries on large manifests — tela_inspect reads the raw stringkeys directly so it enumerates ALL DOC references, and it decodes the TELA header/mods/commit schema the generic tool does not understand.

Input Requirements:

  • scid is REQUIRED. Must be 64 hex chars (the TELA contract id).

  • topoheight is OPTIONAL. Provide to inspect at a specific topo height; omit for the latest committed state.

Output: a discriminated union on kind. tela_index{ scid, topoheight, kind, index: { name, description, icon, durl, mods[], docs:[{position, key, scid, is_entrypoint, malformed}], doc_count, commit, version_history[], current_commit_hash, owner, updateable:'unknown', updateable_note, parse_notes[] }, narrative, related_docs }. tela_doc{ ..., doc: { filename, doc_type, sub_dir, durl, signature, content_embedded, code_size_bytes, immutable }, narrative, related_docs }. not_tela{ ..., kind:'not_tela', reason, observed:{ stringkey_sample[], stringkeys_total, has_code, markers[] }, narrative } — returned (NOT an error) when the SCID is unknown or lacks TELA markers. Updateability cannot be derived from chain state (ringsize is not in GetSC) so it is honestly reported as 'unknown'.

ParametersJSON Schema
NameRequiredDescriptionDefault
scidYes64-char hex Smart Contract ID of a TELA-INDEX-1 or TELA-DOC-1 contract
topoheightNoOptional topo height; omit for the latest committed state
Behavior5/5

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

The description discloses key behavioral traits beyond the readOnlyHint annotation: it reads raw stringkeys, enumerates all DOC references, decodes TELA header/mods/commit schema, and honestly reports updateability as 'unknown' due to chain state limitations. The output is described in detail as a discriminated union, adding transparency about error handling (returning 'not_tela' kind). No contradictions 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.

Conciseness4/5

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

The description is well-structured with clear sections: purpose, when to call, input requirements, output details. It is slightly lengthy but every part adds value. Front-loading the composite nature and auto-detection is helpful. Could be more concise, but it's still effective.

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?

Given the tool's complexity and the absence of an output schema, the description is remarkably complete. It covers input constraints, output structure for all three kinds (tela_index, tela_doc, not_tela), behavioral details, and limitations. No gaps remain for an agent to successfully invoke and interpret results.

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

Parameters4/5

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

Schema coverage is 100%, so the description's param info adds limited value beyond the schema. However, it reinforces that scid is required and must be 64 hex chars, and explains that topoheight is optional for inspecting at a specific state. The output description also indirectly clarifies the purpose of the parameters.

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 clearly defines the tool's purpose: fetching a TELA contract by SCID and parsing it as either an INDEX or DOC, auto-detecting the type. It also explains what TELA is, making the context clear. It distinguishes from siblings like explain_smart_contract and dero_get_sc, explicitly stating that this tool is preferred.

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

Usage Guidelines5/5

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

The description provides explicit guidance on when to call: 'as the FIRST step whenever a user references a TELA SCID, a .tela dURL app, or asks what is this TELA contract/app'. It also explains when not to use alternatives, detailing why explain_smart_contract is inadequate for TELA contracts. This gives clear context and exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

trace_transaction_with_contextA
Read-only
Inspect

Composite: look up a DERO transaction by hash, classify its confirmation status (confirmed | mempool | unknown) and kind (sc_install | transfer_or_invocation | coinbase | unknown), extract the SC surface inline when the tx is a contract install, and stitch the right DERO tx + DVM docs pages as citations.

When to call: as the FIRST step when investigating any tx by hash — the user asks "what is this tx", "is this confirmed", "what contract did this deploy", or "what does this tx do". PREFER this over chaining dero_get_transaction with dero_get_sc yourself: for SC INSTALL txs the composite already extracts the deployed function surface inline (no second RPC needed because the source is embedded in the tx record), classifies the kind so the agent does not have to inspect the raw shape, and protects against the "empty record" failure mode by surfacing structured TX_NOT_FOUND when the daemon does not know the hash.

Input Requirements:

  • tx_hash is REQUIRED. Must be 64 hex chars.

  • decode is OPTIONAL (default true). Pass false to ask the daemon to skip the JSON-decoded view (raw hex still comes back; the field hint that the binary is available).

  • include_sc_context is OPTIONAL (default true). Set false to skip the inline extractScSurface call for SC install txs (useful when you only need confirmation / ring info).

Output: { tx_hash, confirmation: { status, block_height, valid_block, invalid_blocks, in_pool }, kind, ring: { groups, first_group_size }, reward, signer_visible, native_balance, sc_install: { scid, surface, raw_code_length, has_code } | null, raw_tx_hex_length, narrative, related_docs, _diagnostics }. sc_install is non-null ONLY when the tx is a contract install AND the surface extractor produced something (tx_hash IS the resulting SCID in that case). SC invocation arg decoding is NOT performed — that requires walking the binary tx blob with the DERO tx codec, which is not bundled in this MCP. The composite surfaces raw_tx_hex_length so the agent knows the binary is available via dero_get_transaction. On unknown hash the daemon returns an empty record and the composite returns a structured _meta.error with code TX_NOT_FOUND.

ParametersJSON Schema
NameRequiredDescriptionDefault
decodeNoPass decode_as_json=1 to the daemon. Default true. Decoded JSON view is informational; the raw hex always comes back.
tx_hashYes64-char hex transaction hash
include_sc_contextNoWhen true (default), runs the SC-install surface extraction inline when the tx contains contract code. SC invocation arg decoding is NOT performed in either mode; see module docs.
Behavior5/5

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

Adds significant behavioral context beyond annotations: failure mode handling (TX_NOT_FOUND), classification of status and kind, inline extraction of SC surface, and clear limitation about arg decoding. Annotations only provide readOnlyHint and destructiveHint, so description adds value.

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?

Well-structured with clear sections but slightly verbose. Every sentence adds value, but some details (e.g., raw_tx_hex_length purpose) could be integrated. Front-loaded with main purpose.

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?

Comprehensive: explains output structure, error handling, limitations, and alternatives. No output schema, but the description fully compensates. Given complexity and annotations, it is complete.

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

Parameters5/5

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

Schema coverage is 100% and the description further clarifies each parameter: tx_hash is required 64 hex, decode optional with default true, include_sc_context optional with default true and explanation of effect. Adds meaning beyond schema by explaining purpose and defaults.

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?

Description clearly states it is a composite tool that looks up a DERO transaction, classifies confirmation status and kind, extracts SC surface for contract installs, and provides citations. It distinguishes from sibling tools like dero_get_transaction and dero_get_sc by noting that the composite already extracts inline data.

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

Usage Guidelines5/5

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

Explicitly states when to call: first step for any tx-by-hash investigation. Prefers this over chaining dero_get_transaction and dero_get_sc. Also specifies when not to use it: for SC invocation arg decoding, which is not performed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_supplyA
Read-only
Inspect

Composite: recompute DERO total supply offline via CalcSupply (premine + one-time launch credit + Σ CalcBlockReward epochs — DEROFDN community-dev / dero-docs schedule), optionally cross-check against DERO.GetInfo.total_supply.

When to call: when the user asks "what is the total supply", "does GetInfo match the schedule", "verify the supply", or wants an independent recompute that does not trust a node. PREFER this over reading GetInfo alone — GetInfo on older builds can undercount after halvings (display quirk, not inflation). PREFER citing the returned related_docs (integrity/verify-the-supply).

Input Requirements:

  • height is OPTIONAL. Non-negative integer topoheight/height. Default: tip topoheight from DERO.GetInfo.

  • If the daemon is unreachable you MUST pass height — otherwise the tool returns RPC_UNREACHABLE / INVALID_INPUT.

Output: { height, height_source, calc_supply_atoms, calc_supply_dero, block_reward_atoms, block_reward_dero, getinfo_total_supply, match, formula_note, narrative, related_docs, _diagnostics }. match is true/false when GetInfo.total_supply is present, else null. Scope is schedule CalcSupply only — NOT a UTXO census.

ParametersJSON Schema
NameRequiredDescriptionDefault
heightNoTopoheight / height to evaluate. Default: tip topoheight from DERO.GetInfo. Required when the daemon is unreachable.
Behavior4/5

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

The description discloses read-only behavior, error conditions (RPC_UNREACHABLE/INVALID_INPUT), and scope limitations (schedule CalcSupply only, not UTXO census). Annotations confirm readOnlyHint and non-destructive, and the description adds valuable context beyond those annotations.

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?

The description is well-structured with clear sections (summary, when to call, input requirements, output). It is moderately concise; some repetition could be trimmed but remains efficient.

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?

Despite no output schema, the description fully documents output fields, match logic, and scope. It covers error scenarios and provides a complete contextual picture for a composite tool of this complexity.

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

Parameters3/5

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

Schema coverage is 100% and the schema already provides detailed description for the single parameter (default, required when daemon unreachable). The tool description reiterates this but does not add new semantic meaning beyond what the schema already conveys.

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 clearly states it is a composite tool to recompute DERO total supply via CalcSupply and optionally cross-check with GetInfo. It distinguishes from siblings like dero_get_info by emphasizing independent verification.

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

Usage Guidelines5/5

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

It explicitly says 'When to call' with specific user queries and prefers this over reading GetInfo alone. It also provides input requirements, including when height is mandatory (daemon unreachable), guiding appropriate use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Exposes Mina blockchain data and operations through 40+ MCP tools, supporting live public networks, a local tutorial lightnet, and archive snapshot analysis.
    5
    112
    Apache 2.0
  • F
    license
    A
    quality
    C
    maintenance
    Enables querying Pharos blockchain data (EVM-compatible) through MCP, with read-only tools for blocks, transactions, balances, and contract calls, plus optional transaction broadcasting when self-hosted.
    14
  • A
    license
    A
    quality
    B
    maintenance
    Read-only MCP server for Sui blockchain analytics with 44 tools covering wallets, DeFi, NFTs, token prices, transactions, fund tracing, pools, staking, Move decompilation, and MVR name resolution.
    18
    1,221
    MIT

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.