protogrid

Search / io.github.andresdefi/zerodust

zerodust

not classified

Recover stranded native gas: empty a chain's balance to exactly zero on 25 EVM chains.

v0.5.1 · active · repository · descriptor JSON · versions

Not classified yet.The remote endpoints have not been probed successfully, or the listing has nothing to connect to.
Quality85good
Trust64of 100
Uptime, 30 days95%
Latency p50582 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "zerodust": {
      "type": "http",
      "url": "https://api.zerodust.xyz/mcp"
    }
  }
}
claude mcp add --transport http zerodust https://api.zerodust.xyz/mcp
[mcp_servers.zerodust]
url = "https://api.zerodust.xyz/mcp"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "zerodust": {
      "type": "remote",
      "url": "https://api.zerodust.xyz/mcp",
      "enabled": true
    }
  }
}
{
  "mcpServers": {
    "zerodust": {
      "type": "http",
      "url": "https://api.zerodust.xyz/mcp"
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=zerodust&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vYXBpLnplcm9kdXN0Lnh5ei9tY3AifQ%3D%3D"
}
{
  "servers": {
    "zerodust": {
      "type": "http",
      "url": "https://api.zerodust.xyz/mcp"
    }
  }
}
{
  "mcpServers": {
    "zerodust": {
      "httpUrl": "https://api.zerodust.xyz/mcp"
    }
  }
}
extensions:
  "zerodust":
    enabled: true
    name: "zerodust"
    type: streamable_http
    uri: "https://api.zerodust.xyz/mcp"
    timeout: 300

Quality 85 / 100good

protocol75 · weight 25
  • warn
    protocol.modernnewest supported version is 2025-06-18; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
  • n/a
    protocol.statelessonly applies to 2026-07-28 servers
  • pass
    protocol.transportstreamable HTTP
  • n/a
    protocol.list_ttlonly applies to 2026-07-28 servers
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene86 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • pass
    tools.description_lengthdescriptions are concise
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations8 of 8 tools declare readOnlyHint or destructiveHint
  • fail
    tools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: zerodust_get_quote (destructiveHint, idempotentHint); zerodust_register_api_key (idempotentHint); zerodust_info (destructiveHint, idempotentHint); …
  • pass
    tools.token_costabout 1,172 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability100 · weight 15
  • pass
    stability.changes1 tool changes in 30 days
  • pass
    stability.rug_pullno tool changed its meaning under the same name
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvabledeps.dev does not know @zerodust/[email protected]

8 tools, about 1,172 tokens to load them all · tool set f6fced0c0d7c · tools last changed 2026-10-01 · checked 2026-10-20 15:57 UTC

Tool changes

  • zerodust_get_destinationsadded

    List the chains a balance on fromChainId can be swept to, receiving that chain's native gas (e.g. ETH on Base, BNB on BSC, HYPE on HyperEVM). Destinations are not limited to the chains ZeroDust sweeps from: any EVM chain a bridge serves qualifies. Call this before quoting a cross-chain sweep to pick where the funds should go.

Full history: list_changes · trend: quality JSON.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 64 / 100

provenance80
liveness0
freshness100
hygiene100

+repository +namespace-matches-repo -unreachable(5 failures) +updated-19d-ago

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Dependencies

@zerodust/[email protected] npmthis version is not known to the dependency resolver

Dependency graphs from deps.dev; advisories from OSV.dev, including the GitHub Advisory Database and the PyPI Advisory Database; all CC BY 4.0. The graph is what a clean install of this version resolves today; nothing was installed or run. How it is checked.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://api.zerodust.xyz/mcp streamable-httpnoneno (5 failures)95%582 ms2025-06-182026-10-12
packageregistryversionruntimesecrets
@zerodust/mcp-servernpm0.5.1–ZERODUST_API_KEY, ZERODUST_KEYSTORE_PASSWORD, ZERODUST_PRIVATE_KEY

Tools (8)

zerodust_get_balancesread-onlyFind leftover native gas token (ETH, BNB, POL, ...) stranded across every supported EVM chain for one address, and report which of it can be recovered. Normally these balances are unrecoverable: you cannot transfer 100% of a gas token, because paying for the transfer consumes the thing you are transferring, so a remainder is always left behind. This reports what is stuck and what could be moved out. Useful when a wallet has small amounts scattered over many chains, when someone cannot send their full balance, or before closing out, winding down or decommissioning a wallet.
zerodust_get_chainsread-onlyList the EVM chains a native gas balance can be emptied to exactly zero on. Returns chain IDs, names, and native tokens. Call this to check whether a specific chain is supported before quoting.
zerodust_get_destinationsread-onlyList the chains a balance on fromChainId can be swept to, receiving that chain's native gas (e.g. ETH on Base, BNB on BSC, HYPE on HyperEVM). Destinations are not limited to the chains ZeroDust sweeps from: any EVM chain a bridge serves qualifies. Call this before quoting a cross-chain sweep to pick where the funds should go.
zerodust_get_quoteread-onlyPrice out emptying a chain's native gas balance to exactly zero: how much actually arrives, the full fee breakdown, and whether the balance is even large enough to be worth recovering. Returns a quote ID; quotes expire after about 60 seconds. Executing the sweep needs the wallet's signing key, which this hosted server does not hold - use the @zerodust/mcp-server package or the SDK for that.
zerodust_get_sweep_statusread-onlyCheck how a previously submitted sweep is progressing. Returns the current status (pending, simulating, executing, bridging, completed, failed), the transaction hash once there is one, and the error message if it failed.
zerodust_inforead-onlyExplain how a native gas balance can be emptied to exactly zero, what it costs, and how to integrate. Call this when asked how ZeroDust works, why a full balance normally cannot be sent, or what sweeping will cost.
zerodust_list_sweepsread-onlyList past sweeps for a wallet address, with status and amounts. Useful for confirming a chain was already emptied before trying again.
zerodust_register_api_keyIssue this agent its own ZeroDust API key for higher rate limits, with no human signup step. The other tools work without a key, so only call this when rate limits are being hit, or when setting up an unattended agent that will run repeatedly. The key is returned once and cannot be retrieved later - report it to the operator.

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "io.github.andresdefi/zerodust",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://api.zerodust.xyz/mcp",
      "type": "streamable-http"
    }
  ],
  "version": "0.5.1",
  "packages": [
    {
      "version": "0.5.1",
      "transport": {
        "type": "stdio"
      },
      "identifier": "@zerodust/mcp-server",
      "registryType": "npm",
      "environmentVariables": [
        {
          "name": "ZERODUST_API_URL",
          "format": "string",
          "description": "Custom API URL (defaults to https://api.zerodust.xyz)"
        },
        {
          "name": "ZERODUST_API_KEY",
          "format": "string",
          "isSecret": true,
          "description": "API key for higher rate limits. An agent can issue itself one with the zerodust_register_api_key tool, with no human signup step."
        },
        {
          "name": "ZERODUST_ALLOW_EXECUTE",
          "format": "string",
          "description": "Set to \"true\" to enable the sweep tools. Sweeping moves real funds, so it is off by default and also requires one of the four signing-key variables below."
        },
        {
          "name": "ZERODUST_SIGNER_MODULE",
          "format": "string",
          "description": "Path or specifier of a module whose default export returns a viem LocalAccount. This is how Turnkey, Privy, AWS KMS or any other custody service is used, without a raw key ever reaching this server. Preferred over ZERODUST_PRIVATE_KEY."
        },
        {
          "name": "ZERODUST_KEYSTORE_FILE",
          "format": "string",
          "description": "Path to an encrypted V3 keystore (as produced by `cast wallet import` or geth). Requires ZERODUST_KEYSTORE_PASSWORD_FILE or ZERODUST_KEYSTORE_PASSWORD."
        },
        {
          "name": "ZERODUST_KEYSTORE_PASSWORD_FILE",
          "format": "string",
          "description": "Path to a file containing the keystore password, so the password never enters the MCP config."
        },
        {
          "name": "ZERODUST_KEYSTORE_PASSWORD",
          "format": "string",
          "isSecret": true,
          "description": "Keystore password inline. Prefer ZERODUST_KEYSTORE_PASSWORD_FILE."
        },
        {
          "name": "ZERODUST_PRIVATE_KEY_FILE",
          "format": "string",
          "description": "Path to a file containing a hex private key, so the key stays out of the MCP config."
        },
        {
          "name": "ZERODUST_PRIVATE_KEY",
          "format": "string",
          "isSecret": true,
          "description": "Private key for the agent's own wallet, inline. Used locally to sign the EIP-7702 authorization and EIP-712 sweep intent; never transmitted, only the resulting signatures are sent. The signer-module, keystore and key-file options above keep it out of your config entirely."
        },
        {
          "name": "ZERODUST_ALLOWED_DESTINATIONS",
          "format": "string",
          "description": "Comma-separated allowlist of sweep destinations. When unset, funds can only be swept to the agent's own address."
        }
      ]
    }
  ],
  "repository": {
    "url": "https://github.com/andresdefi/zerodust",
    "source": "github"
  },
  "description": "Recover stranded native gas: empty a chain's balance to exactly zero on 25 EVM chains."
}