Skip to main content
Glama
dgb-tools

dd-explain

by dgb-tools

dd-explain-mcp

DigiDollar transaction explainer — a read-only MCP server (stdio) and CLI that tells an AI agent what a DigiDollar transaction recorded in DigiByte actually did: mint, transfer, or redemption; amounts in cents; lock tier and maturity; what was burned; whether collateral was released. Built on dgb-digidollar-codec, the same decoder that reconciled DigiDollar's first mainnet week to the node to the cent. Zero other dependencies. Node 18+.

Human version of the same thing: dgbinsights.com/lookup.

Install

npm install
npm test                       # 19 offline tests against bundled fixtures

Related MCP server: Solana AI Terminal

Use

node bin/dd-explain.js <txid>                      # offline: bundled fixtures only
ALLOW_NETWORK=1 node bin/dd-explain.js <txid>      # live: digiexplorer.info
node bin/dd-explain.js --decode 6a0244440103021027 # decode an OP_RETURN script
node bin/dd-explain.js <txid> --json

MCP (stdio) — add to your client's server list:

{ "dd-explain": { "command": "node", "args": ["/path/to/dd-explain-mcp/bin/dd-explain-mcp.js"], "env": { "ALLOW_NETWORK": "1" } } }

Tools: explain_digidollar_tx(txid) and decode_dd_opreturn(scriptPubKeyHex). Network access is off by default; the source field of every answer says whether it came from a bundled fixture or the live explorer.

What it computes that an explorer does not

The DigiDollar record in a redemption declares the change the redemption re-creates, not the burn. This tool values the consumed DD inputs one hop back — from the records of the transactions that created them — and reports burn = consumed − change, with the creating transactions listed. Fixtures for the creating transactions of the bundled redemption are included, so the example below computes fully offline; where a creating transaction is unreachable, the burn is reported as Unverified rather than guessed. Example:

34c67c35…  consumed $201.00 · change $100.00 · burn $101.00   (explorer shows "Burn $100.00")
58f910ce…  consumed $520.00 · change $100.00 · burn $420.00   (explorer shows "Burn $100.00")

That discrepancy is raised with DigiByte Core in Discussion #446.

Vocabulary

Output uses only factual phrasing — "recorded in DigiByte transaction", "included in block N", "timestamped commitment", "consensus type byte" — and marks every inference Unverified. The words proof, verified, notarized, immutable, authentic are refused by a check on the emitted text. Facts and hashes only; no address, entity, or reputation labels.

Layout

See ARCHITECTURE.md. The codec owns every decoding rule; src/explain.js owns the explanation, the burn math, and the fence.

Provenance

Scaffolded by Michael Emery's Grok-based build agent from a written spec, then reviewed, patched (one-hop burn valuation), and tested in the DGB Tools lane. Describes DigiByte Core v9.26.5 behaviour as of September 2026. Part of dgb-tools — independent community tooling, not affiliated with the DigiByte Foundation. MIT.

Available Tools

2 tools
decode_dd_opreturnA

Offline decode of a DigiDollar OP_RETURN scriptPubKey hex via parseDDOpReturn. Returns consensus type byte kind (mint/transfer/redeem), amounts in cents, and fields. No network. Read-only. Does not label entities.

ParametersJSON Schema
NameRequiredDescriptionDefault
scriptPubKeyHexYesOP_RETURN scriptPubKey as hex (typically starts with 6a…)

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries the full disclosure burden and does well: it explicitly states no network access, offline execution, read-only behavior, and the output scope limitation (no entity labeling). It does not cover error behavior on malformed hex, which is a minor gap for a decode 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?

Three short sentences, all informative: core purpose, return values, and behavioral constraints. The purpose is front-loaded and every sentence earns its place with zero redundancy.

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?

For a single-parameter offline decode tool with no output schema, the description covers purpose, return contents (kind, amounts in cents, fields), and behavioral traits. It is somewhat vague on what 'and fields' means and does not address invalid-input handling, but nothing essential is missing for an agent to invoke it correctly.

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

Parameters3/5

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

Schema coverage is 100% and the single parameter scriptPubKeyHex is already documented as an OP_RETURN scriptPubKey in hex typically starting with 6a. The description adds no parameter-specific detail beyond what the schema already provides, so the baseline of 3 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 states a specific verb ('decode'), a specific resource (DigiDollar OP_RETURN scriptPubKey hex), names the implementation path (parseDDOpReturn), and spells out the return values: consensus type byte kind (mint/transfer/redeem), amounts in cents, and fields. The closing 'Does not label entities' differentiates it from the sibling explain_digidollar_tx.

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 establishes clear usage context: a quick offline decode of scriptPubKey hex with no network dependency and read-only guarantees. It gives a negative signal ('Does not label entities') but stops short of explicitly naming explain_digidollar_tx as the alternative or stating when to prefer one over the other.

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

explain_digidollar_txA

Explain a DigiDollar transaction recorded in DigiByte from its txid. Resolution is fixture-first: offline fixtures/TXID.json is preferred; live digiexplorer.info only when ALLOW_NETWORK=1. The response source field labels fixture vs digiexplorer — agents must not treat a fixture as live chain state. Classifies via consensus type byte; returns kind, amounts (cents/USD), ddOutputs, burns if redeem (burn = consumed − change via one-hop valuation of creating txs when reachable), collateralSpends count, shapeOk, block height/time if present, and disclaimer fields. Read-only. Facts and hashes only; inferences marked Unverified. Product name: DigiDollar transaction explainer (dd-explain-mcp). Lookup UI: https://dgbinsights.com/lookup

ParametersJSON Schema
NameRequiredDescriptionDefault
txidYes64-hex DigiByte transaction id

TDQS

A3.9/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so thoroughly: it discloses fixture vs live resolution, the ALLOW_NETWORK gating, the unverified-fixture caveat, read-only behavior, and that inferences are marked Unverified. It also explains the burn calculation rather than hiding it.

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 dense but information-rich and front-loaded with the core purpose before details. The product name and lookup UI are useful context but slightly peripheral for an agent selecting/invoking the tool, keeping it from a perfect conciseness score.

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?

Despite having no output schema, the description lists the returned fields and caveats in enough detail to set expectations. It could be more complete about error behavior (e.g., missing fixture with ALLOW_NETWORK unset) and about how it relates to decode_dd_opreturn, but it is mostly sufficient for correct invocation.

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?

The input schema already covers txid well ('64-hex DigiByte transaction id'), so schema coverage is 100%; baseline is 3. The description adds little about parameter formatting beyond referring to 'txid' and the TXID.json filename, which does not materially extend the schema.

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 opening phrase names a specific verb and resource ('Explain a DigiDollar transaction ... from its txid') and lists distinctive outputs, so the function is clear. It does not explicitly contrast with the sibling decode_dd_opreturn, so it falls short of full sibling differentiation.

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

Usage Guidelines3/5

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

The description provides operational context (fixture-first, live only when ALLOW_NETWORK=1) and a warning about fixtures, but it never states when to choose this over decode_dd_opreturn or when not to use it. Usage is therefore mostly implied rather than explicitly routed.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 2 tool updatesv1.0.0
    • First observeddecode_dd_opreturn
    • First observedexplain_digidollar_tx

TDQS

A4.1/5.0
Disambiguation5/5

The two tools take entirely different inputs (a txid vs. OP_RETURN hex) and serve distinct purposes: high-level transaction explanation versus low-level script decoding. Their descriptions clearly delineate when each should be used, leaving no ambiguity.

Naming Consistency5/5

Both tools follow the same verb_noun snake_case pattern: explain_digidollar_tx and decode_dd_opreturn. The verbs accurately describe the action and the nouns specify the target, making the naming predictable and consistent.

Tool Count3/5

With only two tools, the server feels thin even though its purpose is narrowly focused on explaining DigiDollar transactions. The count is borderline but acceptable for such a specialized utility; it is not excessive but also not richly scoped.

Completeness4/5

The tool surface covers the essential workflows for its domain: full transaction explanation and offline OP_RETURN decoding. Minor gaps exist, such as no support for raw full-transaction hex decoding, but the core explainer and decoder are sufficient for most use cases.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/dgb-tools/dd-explain-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server