Skip to main content
Glama

refresh_wallet_verification

Regenerate verification challenges for an existing unverified wallet. Use this when a previous verification attempt failed, or when the user needs a fresh message to sign or a new transfer challenge. Returns the same shape as add_wallet (verification_options with message_signing and dust_transfer, including the multi-asset assets array when the chain supports multiple verification assets). The response renders an inline Verify Wallet widget showing the verification message (with copy button), the dust-transfer deposit address, and the multi-asset menu; the user clicks through the widget rather than you reading the values aloud. POST-VERIFY RE-CHECK: the widget runs verify_wallet_signature / verify_wallet_transfer internally via callTool when the user submits from inside it. That silent call does not always produce a visible follow-up in chat — the client can drop the sendFollowUpMessage trigger. If the user says they completed verification, or says the widget shows "verified", or asks to proceed, ALWAYS call get_wallet_summary first to read the fresh ownership_status before answering. Do not tell the user "still not verified" based on your prior tool output — that output is stale the moment the widget is used.

Input Schema

NameRequiredDescriptionDefault
wallet_idYesInternal wallet UUID from a prior add_wallet or get_wallet_summary response. Do NOT show this ID to the user or ask them for it — look it up from the address they mentioned.

Output Schema

NameRequiredDescriptionDefault
assetsNo
statusNo
addressNo
messageNo
total_usdNo
wallet_idNo
blockchainNo
linked_addressesNo
ownership_statusNo
zero_balance_hintNo
verification_optionsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changed
    • removedInput schema / additionalProperties
      Removed value: -false
    • changedOutput schema / properties / assets / items / additionalProperties
      Previous value: -trueNew value: +{}
    • changedOutput schema / properties / linked_addresses / items / additionalProperties
      Previous value: -trueNew value: +{}
    • changedOutput schema / properties / verification_options / additionalProperties
      Previous value: -trueNew value: +{}
    • changedOutput schema / properties / verification_options / properties / dust_transfer / additionalProperties
      Previous value: -trueNew value: +{}
    • changedOutput schema / properties / verification_options / properties / message_signing / additionalProperties
      Previous value: -trueNew value: +{}
  2. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": false,
      +  "properties": {
      +    "address": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "assets": {
      +      "items": {
      +        "additionalProperties": true,
      +        "properties": {},
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "blockchain": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "linked_addresses": {
      +      "items": {
      +        "additionalProperties": true,
      +        "properties": {},
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "message": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "ownership_status": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "status": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "total_usd": {
      +      "type": [
      +        "number",
      +        "null"
      +      ]
      +    },
      +    "verification_options": {
      +      "additionalProperties": true,
      +      "properties": {
      +        "dust_transfer": {
      +          "additionalProperties": true,
      +          "properties": {},
      +          "type": "object"
      +        },
      +        "message_signing": {
      +          "additionalProperties": true,
      +          "properties": {},
      +          "type": "object"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "wallet_id": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "zero_balance_hint": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    }
      +  },
      +  "type": "object"
      +}
  3. Changed1 schema field changed
    • changedInput schema / properties / wallet_id / description
      Previous value: -"Wallet UUID from a prior add_wallet or get_wallet_summary response"New value: +"Internal wallet UUID from a prior add_wallet or get_wallet_summary response. Do NOT show this ID to the user or ask them for it — look it up from the address they mentioned."
  4. Added

TDQS

A4.6/5.0
Behavior5/5

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

Beyond the annotations, the description explains that the response renders an inline Verify Wallet widget, that the user clicks through the widget rather than the agent reading values aloud, and that internal verify_wallet_signature / verify_wallet_transfer calls may silently fail to produce a visible follow-up. It also warns that prior tool output becomes stale once the widget is used, which is critical behavioral context for a non-idempotent mutation tool.

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

Conciseness4/5

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

The description is front-loaded with purpose and usage, then moves through return shape, widget behavior, and the post-verify re-check. It is somewhat long for a one-parameter tool, but each paragraph addresses a distinct operational concern; minor parenthetical detail keeps it from a 5.

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?

It covers the return shape, the inline widget behavior, the internal verification calls, the stale-output warning, and the required follow-up call to get_wallet_summary. With an output schema and annotations present, this is complete enough for an agent to invoke and follow up 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 schema already documents wallet_id as an internal UUID from add_wallet or get_wallet_summary that should not be shown to the user. The description adds the 'existing unverified wallet' context but does not add parameter-specific syntax or lookup guidance beyond the schema, so the 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 states a specific verb and resource: 'Regenerate verification challenges for an existing unverified wallet.' It distinguishes this from add_wallet by scoping it to existing unverified wallets and from verification execution tools by explaining that it produces challenges rather than verifying them.

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 gives explicit triggers: a failed prior verification attempt, a user needing a fresh message to sign, or a new transfer challenge. It also provides a firm post-verification rule to call get_wallet_summary first rather than relying on stale tool output.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.