Skip to main content
Glama

Check transferability

check_transferability
Read-onlyIdempotent

Returns the on-chain transfer restriction standard for a token and, when a wallet address is provided, whether that address can receive it (simulates a transfer TO the wallet from a known holder, or a whitelist recipient check). Returns transferable="unknown" when a receive check cannot be performed. Never reports sender-balance failures as receive=false. Transfer-control facts only — not legal eligibility.

Input Schema

NameRequiredDescriptionDefault
chainYesBlockchain name, e.g. ethereum, base, polygon, solana
asset_idYesUNIALL asset id from find_assets results
wallet_addressNoOptional EVM address to check whether it can receive the token

Output Schema

NameRequiredDescriptionDefault
factsYesSourced scalar facts. Each item has field, value, source_url, source_type, as_of.
answerYesShort natural-language summary of the result.
assetsNoMatched assets when applicable (find_assets). Empty or omitted for stats/summary tools.
disclaimerYesFixed data-only disclaimer; not investment advice.
request_idYesRequest correlation id.
index_as_ofYesISO timestamp for index freshness.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • changedInput schema / properties / asset_id / description
      Previous value: -"UNIALL asset id."New value: +"UNIALL asset id from find_assets results"
    • changedInput schema / properties / chain / description
      Previous value: -"Chain slug where the token is deployed."New value: +"Blockchain name, e.g. ethereum, base, polygon, solana"
    • changedInput schema / properties / wallet_address / description
      Previous value: -"Optional 0x wallet to run the on-chain transfer restriction check against."New value: +"Optional EVM address to check whether it can receive the token"
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "answer": {
      +      "description": "Short natural-language summary of the result.",
      +      "type": "string"
      +    },
      +    "assets": {
      +      "description": "Matched assets when applicable (find_assets). Empty or omitted for stats/summary tools.",
      +      "items": {
      +        "additionalProperties": true,
      +        "properties": {
      +          "aum_usd": {
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          },
      +          "category": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "chains": {
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "id": {
      +            "type": "string"
      +          },
      +          "issuer": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "name": {
      +            "type": "string"
      +          },
      +          "symbol": {
      +            "type": "string"
      +          },
      +          "transfer_standard": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "uniall_url": {
      +            "type": "string"
      +          },
      +          "verified": {
      +            "type": "boolean"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "disclaimer": {
      +      "description": "Fixed data-only disclaimer; not investment advice.",
      +      "type": "string"
      +    },
      +    "facts": {
      +      "description": "Sourced scalar facts. Each item has field, value, source_url, source_type, as_of.",
      +      "items": {
      +        "additionalProperties": true,
      +        "properties": {
      +          "as_of": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "field": {
      +            "type": "string"
      +          },
      +          "source_type": {
      +            "type": "string"
      +          },
      +          "source_url": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "value": {}
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "index_as_of": {
      +      "description": "ISO timestamp for index freshness.",
      +      "type": "string"
      +    },
      +    "request_id": {
      +      "description": "Request correlation id.",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "answer",
      +    "facts",
      +    "disclaimer",
      +    "index_as_of",
      +    "request_id"
      +  ],
      +  "type": "object"
      +}
  2. Changed6 schema fields changed
    • removedInput schema / $schema
      Removed value: -"http://json-schema.org/draft-07/schema#"
    • addedInput schema / properties / asset_id / description
      Added value: +"UNIALL asset id."
    • removedInput schema / properties / asset_id / minLength
      Removed value: -1
    • addedInput schema / properties / chain / description
      Added value: +"Chain slug where the token is deployed."
    • removedInput schema / properties / chain / minLength
      Removed value: -1
    • addedInput schema / properties / wallet_address / description
      Added value: +"Optional 0x wallet to run the on-chain transfer restriction check against."
  3. First observed

TDQS

A4.7/5.0
Behavior5/5

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

Goes well beyond the readOnly/idempotent annotations by disclosing failure semantics: transferable="unknown" when a receive check cannot be performed, and the guarantee that sender-balance failures are never reported as receive=false. It also delimits scope ('transfer-control facts only — not legal eligibility'), which prevents a real class of misinterpretation.

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?

Front-loads the primary output, then the conditional wallet behavior, then the edge-case guarantees. Every sentence carries distinct information — the 'unknown' rule and the sender-balance caveat are not redundant with each other, and there is no filler.

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 3-parameter read-only tool with a full output schema, the description covers the remaining ambiguity: which wallet semantics are simulated, what happens when the check fails, and the limit of the tool's claim. Nothing needed to invoke or interpret it correctly is 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?

Schema coverage is 100%, so the baseline is 3; the description still adds value by clarifying that wallet_address drives a receive-only simulation rather than a general transfer check, and that an unknown result is a valid outcome. It adds no meaning for asset_id or chain beyond the schema, so it stops short of a 5.

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?

States a specific verb and resource ('returns the on-chain transfer restriction standard for a token') plus the conditional second output (whether a wallet can receive it). The purpose is immediately distinguishable from siblings like find_assets, get_asset_summary, compare_underlying, and get_index_stats.

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?

Clearly frames the two modes: omit wallet_address for the restriction standard, supply it to get a receive check. It also names the mechanism used ('simulates a transfer TO the wallet from a known holder, or a whitelist recipient check'), which implicitly tells the agent when this tool's answer is meaningful. No explicit when-not or sibling-routing guidance, keeping it below a 5.

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.

Resources