Skip to main content
Glama

Tracking token movements

token_flows
Read-only

Get hourly token-flow history for ONE holder segment over a date range. Use token_recent_flows_summary instead for an on-chain snapshot across ALL wallet categories.

Note: Using holder_segment: smart_money is not a good proxy for an overall market view. Use it only if user explicitly requests it, or to combine it with other non smart money data.

This is a more granular tool than token_recent_flows_summary and provides the TOTAL flows over the entire time frame broken down by segment.

Modes:

  • onchain_tokens (default): Analyze on-chain tokens by contract address

  • perps: Analyze Hyperliquid perpetual futures by symbol (chain auto-set to "hyperliquid") — supports native tokens

NOTE: Native tokens (0xeee…, So111…) cannot be queried in onchain_tokens mode. If a native placeholder address is supplied, this tool returns Hyperliquid perpetual-futures flows for that chain's native coin instead (e.g. hyperevm → HYPE, bnb → BNB, base → ETH) and prepends a prominent data-source warning. For native-token wallet-category flows on-chain, use token_recent_flows_summary.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
requestYesTokenFlowsRequest containing parameters and pagination settings

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
modeNo
rowsNo
chainNo
date_toNo
messageNoNotice or error text when the tool returns no data rows.
date_fromNo
paginationNo
token_addressNo
holder_segmentNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed14 schema fields changed
    • addedOutput schema / description
      Added value: +"Structured result of `token_flows`."
    • addedOutput schema / properties / chain
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Chain"
      +}
    • addedOutput schema / properties / date_from
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Date From"
      +}
    • addedOutput schema / properties / date_to
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Date To"
      +}
    • addedOutput schema / properties / holder_segment
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Holder Segment"
      +}
    • addedOutput schema / properties / message
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Notice or error text when the tool returns no data rows.",
      +  "title": "Message"
      +}
    • addedOutput schema / properties / mode
      Added value: +{
      +  "anyOf": [
      +    {
      +      "enum": [
      +        "onchain_tokens",
      +        "perps"
      +      ],
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Mode"
      +}
    • addedOutput schema / properties / pagination
      Added value: +{
      +  "anyOf": [
      +    {
      +      "description": "Page position of the returned rows.",
      +      "properties": {
      +        "is_last_page": {
      +          "anyOf": [
      +            {
      +              "type": "boolean"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "default": null,
      +          "title": "Is Last Page"
      +        },
      +        "page": {
      +          "anyOf": [
      +            {
      +              "type": "integer"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "default": null,
      +          "title": "Page"
      +        },
      +        "per_page": {
      +          "anyOf": [
      +            {
      +              "type": "integer"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "default": null,
      +          "title": "Per Page"
      +        }
      +      },
      +      "title": "Pagination",
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null
      +}
    • removedOutput schema / properties / result
      Removed value: -{
      -  "type": "string"
      -}
    • addedOutput schema / properties / rows
      Added value: +{
      +  "items": {
      +    "description": "One time bucket of tracked holdings for the requested holder segment.",
      +    "properties": {
      +      "date": {
      +        "description": "Bucket timestamp (UTC).",
      +        "title": "Date",
      +        "type": "string"
      +      },
      +      "holders_count": {
      +        "anyOf": [
      +          {
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Holders in the segment.",
      +        "title": "Holders Count"
      +      },
      +      "price_usd": {
      +        "anyOf": [
      +          {
      +            "type": "number"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Token price in USD.",
      +        "title": "Price Usd"
      +      },
      +      "token_amount": {
      +        "anyOf": [
      +          {
      +            "type": "number"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Tracked balance in tokens (perps: total position size).",
      +        "title": "Token Amount"
      +      },
      +      "total_inflows_count": {
      +        "anyOf": [
      +          {
      +            "type": "number"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Inflows in the bucket (perps: longs).",
      +        "title": "Total Inflows Count"
      +      },
      +      "total_outflows_count": {
      +        "anyOf": [
      +          {
      +            "type": "number"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Outflows in the bucket (perps: shorts).",
      +        "title": "Total Outflows Count"
      +      },
      +      "value_usd": {
      +        "anyOf": [
      +          {
      +            "type": "number"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Tracked balance in USD.",
      +        "title": "Value Usd"
      +      }
      +    },
      +    "required": [
      +      "date"
      +    ],
      +    "title": "TokenFlowRow",
      +    "type": "object"
      +  },
      +  "title": "Rows",
      +  "type": "array"
      +}
    • addedOutput schema / properties / token_address
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Token Address"
      +}
    • removedOutput schema / required
      Removed value: -[
      -  "result"
      -]
    • addedOutput schema / title
      Added value: +"TokenFlowsOutput"
    • removedOutput schema / x-fastmcp-wrap-result
      Removed value: -true
  2. Changed1 schema field changed
    • changedInput schema / properties / request / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": true,
      -    "type": "object"
      -  },
      -  {
      -    "description": "Complete request for token flows (flattened).",
      -    "properties": {
      -      "chain": {
      -        "default": "ethereum",
      -        "description": "Blockchain network. Supported: arbitrum, avalanche, base, bnb, ethereum, hyperevm, injective, iotaevm, linea, mantle, mantra, monad, near, optimism, plasma, polygon, robinhood, ronin, scroll, sei, solana, sonic, sui, ton, tron, unichain, zksync",
      -        "type": "string"
      -      },
      -      "dateRange": {
      -        "description": "Date range for flow analysis",
      -        "properties": {
      -          "from": {
      -            "description": "Start value: token (see above) or date (YYYY-MM-DD or ___-MM-DD).",
      -            "type": "string"
      -          },
      -          "to": {
      -            "description": "End value: token (see above) or date (YYYY-MM-DD or ___-MM-DD).",
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "from",
      -          "to"
      -        ],
      -        "type": "object"
      -      },
      -      "holder_segment": {
      -        "default": "top_100_holders",
      -        "description": "Label types for holder analysis and filtering.",
      -        "enum": [
      -          "whale",
      -          "public_figure",
      -          "smart_money",
      -          "top_100_holders",
      -          "exchange"
      -        ],
      -        "type": "string"
      -      },
      -      "mode": {
      -        "default": "onchain_tokens",
      -        "description": "Analysis mode: 'onchain_tokens' for on-chain tokens by contract address, 'perps' for Hyperliquid perpetual futures by symbol. If mode is omitted and token_address is a symbol (not a contract address), mode defaults to 'perps'.",
      -        "enum": [
      -          "onchain_tokens",
      -          "perps"
      -        ],
      -        "type": "string"
      -      },
      -      "page": {
      -        "default": 1,
      -        "description": "Page number, starting at 1",
      -        "minimum": 1,
      -        "type": "integer"
      -      },
      -      "perPage": {
      -        "default": 10,
      -        "description": "Number of records per page, from 1 to 1000",
      -        "maximum": 1000,
      -        "minimum": 1,
      -        "type": "integer"
      -      },
      -      "tokenAddress": {
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "tokenAddress"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": true,
      +    "type": "object"
      +  },
      +  {
      +    "description": "Complete request for token flows (flattened).",
      +    "properties": {
      +      "chain": {
      +        "default": "ethereum",
      +        "description": "Blockchain network. Supported: arbitrum, arc, avalanche, base, bnb, ethereum, hyperevm, injective, iotaevm, linea, mantle, mantra, monad, near, optimism, plasma, polygon, robinhood, ronin, scroll, sei, solana, sonic, sui, ton, tron, unichain, zksync",
      +        "type": "string"
      +      },
      +      "dateRange": {
      +        "description": "Date range for flow analysis",
      +        "properties": {
      +          "from": {
      +            "description": "Start value: token (see above) or date (YYYY-MM-DD or ___-MM-DD).",
      +            "type": "string"
      +          },
      +          "to": {
      +            "description": "End value: token (see above) or date (YYYY-MM-DD or ___-MM-DD).",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "from",
      +          "to"
      +        ],
      +        "type": "object"
      +      },
      +      "holder_segment": {
      +        "default": "top_100_holders",
      +        "description": "Label types for holder analysis and filtering.",
      +        "enum": [
      +          "whale",
      +          "public_figure",
      +          "smart_money",
      +          "top_100_holders",
      +          "exchange"
      +        ],
      +        "type": "string"
      +      },
      +      "mode": {
      +        "default": "onchain_tokens",
      +        "description": "Analysis mode: 'onchain_tokens' for on-chain tokens by contract address, 'perps' for Hyperliquid perpetual futures by symbol. If mode is omitted and token_address is a symbol (not a contract address), mode defaults to 'perps'.",
      +        "enum": [
      +          "onchain_tokens",
      +          "perps"
      +        ],
      +        "type": "string"
      +      },
      +      "page": {
      +        "default": 1,
      +        "description": "Page number, starting at 1",
      +        "minimum": 1,
      +        "type": "integer"
      +      },
      +      "perPage": {
      +        "default": 10,
      +        "description": "Number of records per page, from 1 to 1000",
      +        "maximum": 1000,
      +        "minimum": 1,
      +        "type": "integer"
      +      },
      +      "tokenAddress": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "tokenAddress"
      +    ],
      +    "type": "object"
      +  }
      +]
  3. Changed1 schema field changed
    • changedInput schema / properties / request / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": true,
      -    "type": "object"
      -  },
      -  {
      -    "description": "Complete request for token flows (flattened).",
      -    "properties": {
      -      "chain": {
      -        "default": "ethereum",
      -        "description": "Blockchain network. Supported: arbitrum, avalanche, base, bnb, ethereum, hyperevm, injective, iotaevm, linea, mantle, mantra, monad, near, optimism, plasma, polygon, robinhood, ronin, scroll, sei, solana, sonic, sui, ton, tron, unichain, zksync",
      -        "type": "string"
      -      },
      -      "dateRange": {
      -        "description": "Date range for flow analysis",
      -        "properties": {
      -          "from": {
      -            "description": "Start value: token (see above) or date (YYYY-MM-DD or ___-MM-DD).",
      -            "type": "string"
      -          },
      -          "to": {
      -            "description": "End value: token (see above) or date (YYYY-MM-DD or ___-MM-DD).",
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "from",
      -          "to"
      -        ],
      -        "type": "object"
      -      },
      -      "holder_segment": {
      -        "default": "top_100_holders",
      -        "description": "Label types for holder analysis and filtering.",
      -        "enum": [
      -          "whale",
      -          "public_figure",
      -          "smart_money",
      -          "top_100_holders",
      -          "exchange"
      -        ],
      -        "type": "string"
      -      },
      -      "mode": {
      -        "default": "onchain_tokens",
      -        "description": "Analysis mode: 'onchain_tokens' for on-chain tokens by contract address, 'perps' for Hyperliquid perpetual futures by symbol. If mode is omitted and token_address is a symbol (not a contract address), mode defaults to 'perps'.",
      -        "enum": [
      -          "onchain_tokens",
      -          "perps"
      -        ],
      -        "type": "string"
      -      },
      -      "tokenAddress": {
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "tokenAddress"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": true,
      +    "type": "object"
      +  },
      +  {
      +    "description": "Complete request for token flows (flattened).",
      +    "properties": {
      +      "chain": {
      +        "default": "ethereum",
      +        "description": "Blockchain network. Supported: arbitrum, avalanche, base, bnb, ethereum, hyperevm, injective, iotaevm, linea, mantle, mantra, monad, near, optimism, plasma, polygon, robinhood, ronin, scroll, sei, solana, sonic, sui, ton, tron, unichain, zksync",
      +        "type": "string"
      +      },
      +      "dateRange": {
      +        "description": "Date range for flow analysis",
      +        "properties": {
      +          "from": {
      +            "description": "Start value: token (see above) or date (YYYY-MM-DD or ___-MM-DD).",
      +            "type": "string"
      +          },
      +          "to": {
      +            "description": "End value: token (see above) or date (YYYY-MM-DD or ___-MM-DD).",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "from",
      +          "to"
      +        ],
      +        "type": "object"
      +      },
      +      "holder_segment": {
      +        "default": "top_100_holders",
      +        "description": "Label types for holder analysis and filtering.",
      +        "enum": [
      +          "whale",
      +          "public_figure",
      +          "smart_money",
      +          "top_100_holders",
      +          "exchange"
      +        ],
      +        "type": "string"
      +      },
      +      "mode": {
      +        "default": "onchain_tokens",
      +        "description": "Analysis mode: 'onchain_tokens' for on-chain tokens by contract address, 'perps' for Hyperliquid perpetual futures by symbol. If mode is omitted and token_address is a symbol (not a contract address), mode defaults to 'perps'.",
      +        "enum": [
      +          "onchain_tokens",
      +          "perps"
      +        ],
      +        "type": "string"
      +      },
      +      "page": {
      +        "default": 1,
      +        "description": "Page number, starting at 1",
      +        "minimum": 1,
      +        "type": "integer"
      +      },
      +      "perPage": {
      +        "default": 10,
      +        "description": "Number of records per page, from 1 to 1000",
      +        "maximum": 1000,
      +        "minimum": 1,
      +        "type": "integer"
      +      },
      +      "tokenAddress": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "tokenAddress"
      +    ],
      +    "type": "object"
      +  }
      +]
  4. Changed1 schema field changed
    • changedInput schema / properties / request / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": true,
      -    "type": "object"
      -  },
      -  {
      -    "description": "Complete request for token flows (flattened).",
      -    "properties": {
      -      "chain": {
      -        "default": "ethereum",
      -        "description": "Blockchain network. Supported: arbitrum, avalanche, base, bnb, ethereum, hyperevm, injective, iotaevm, linea, mantle, mantra, monad, near, optimism, plasma, polygon, ronin, scroll, sei, solana, sonic, sui, ton, tron, unichain, zksync",
      -        "type": "string"
      -      },
      -      "dateRange": {
      -        "description": "Date range for flow analysis",
      -        "properties": {
      -          "from": {
      -            "description": "Start value: token (see above) or date (YYYY-MM-DD or ___-MM-DD).",
      -            "type": "string"
      -          },
      -          "to": {
      -            "description": "End value: token (see above) or date (YYYY-MM-DD or ___-MM-DD).",
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "from",
      -          "to"
      -        ],
      -        "type": "object"
      -      },
      -      "holder_segment": {
      -        "default": "top_100_holders",
      -        "description": "Label types for holder analysis and filtering.",
      -        "enum": [
      -          "whale",
      -          "public_figure",
      -          "smart_money",
      -          "top_100_holders",
      -          "exchange"
      -        ],
      -        "type": "string"
      -      },
      -      "mode": {
      -        "default": "onchain_tokens",
      -        "description": "Analysis mode: 'onchain_tokens' for on-chain tokens by contract address, 'perps' for Hyperliquid perpetual futures by symbol. If mode is omitted and token_address is a symbol (not a contract address), mode defaults to 'perps'.",
      -        "enum": [
      -          "onchain_tokens",
      -          "perps"
      -        ],
      -        "type": "string"
      -      },
      -      "tokenAddress": {
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "tokenAddress"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": true,
      +    "type": "object"
      +  },
      +  {
      +    "description": "Complete request for token flows (flattened).",
      +    "properties": {
      +      "chain": {
      +        "default": "ethereum",
      +        "description": "Blockchain network. Supported: arbitrum, avalanche, base, bnb, ethereum, hyperevm, injective, iotaevm, linea, mantle, mantra, monad, near, optimism, plasma, polygon, robinhood, ronin, scroll, sei, solana, sonic, sui, ton, tron, unichain, zksync",
      +        "type": "string"
      +      },
      +      "dateRange": {
      +        "description": "Date range for flow analysis",
      +        "properties": {
      +          "from": {
      +            "description": "Start value: token (see above) or date (YYYY-MM-DD or ___-MM-DD).",
      +            "type": "string"
      +          },
      +          "to": {
      +            "description": "End value: token (see above) or date (YYYY-MM-DD or ___-MM-DD).",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "from",
      +          "to"
      +        ],
      +        "type": "object"
      +      },
      +      "holder_segment": {
      +        "default": "top_100_holders",
      +        "description": "Label types for holder analysis and filtering.",
      +        "enum": [
      +          "whale",
      +          "public_figure",
      +          "smart_money",
      +          "top_100_holders",
      +          "exchange"
      +        ],
      +        "type": "string"
      +      },
      +      "mode": {
      +        "default": "onchain_tokens",
      +        "description": "Analysis mode: 'onchain_tokens' for on-chain tokens by contract address, 'perps' for Hyperliquid perpetual futures by symbol. If mode is omitted and token_address is a symbol (not a contract address), mode defaults to 'perps'.",
      +        "enum": [
      +          "onchain_tokens",
      +          "perps"
      +        ],
      +        "type": "string"
      +      },
      +      "tokenAddress": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "tokenAddress"
      +    ],
      +    "type": "object"
      +  }
      +]
  5. Changed1 schema field changed
    • changedInput schema / properties / request / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": true,
      -    "type": "object"
      -  },
      -  {
      -    "description": "Complete request for token flows (flattened).",
      -    "properties": {
      -      "chain": {
      -        "default": "ethereum",
      -        "description": "Blockchain network. Supported: arbitrum, avalanche, base, bnb, ethereum, hyperevm, injective, iotaevm, linea, mantle, mantra, monad, near, optimism, plasma, polygon, ronin, scroll, sei, solana, sonic, sui, ton, tron, unichain, zksync",
      -        "type": "string"
      -      },
      -      "dateRange": {
      -        "description": "Date range for flow analysis",
      -        "properties": {
      -          "from": {
      -            "description": "Start value: token (see above) or date (YYYY-MM-DD or ___-MM-DD).",
      -            "type": "string"
      -          },
      -          "to": {
      -            "description": "End value: token (see above) or date (YYYY-MM-DD or ___-MM-DD).",
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "from",
      -          "to"
      -        ],
      -        "type": "object"
      -      },
      -      "holder_segment": {
      -        "default": "top_100_holders",
      -        "description": "Label types for holder analysis and filtering.",
      -        "enum": [
      -          "whale",
      -          "public_figure",
      -          "smart_money",
      -          "top_100_holders",
      -          "exchange"
      -        ],
      -        "type": "string"
      -      },
      -      "mode": {
      -        "default": "onchain_tokens",
      -        "description": "Analysis mode: 'onchain_tokens' for on-chain tokens by contract address, 'perps' for Hyperliquid perpetual futures by symbol",
      -        "enum": [
      -          "onchain_tokens",
      -          "perps"
      -        ],
      -        "type": "string"
      -      },
      -      "tokenAddress": {
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "tokenAddress"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": true,
      +    "type": "object"
      +  },
      +  {
      +    "description": "Complete request for token flows (flattened).",
      +    "properties": {
      +      "chain": {
      +        "default": "ethereum",
      +        "description": "Blockchain network. Supported: arbitrum, avalanche, base, bnb, ethereum, hyperevm, injective, iotaevm, linea, mantle, mantra, monad, near, optimism, plasma, polygon, ronin, scroll, sei, solana, sonic, sui, ton, tron, unichain, zksync",
      +        "type": "string"
      +      },
      +      "dateRange": {
      +        "description": "Date range for flow analysis",
      +        "properties": {
      +          "from": {
      +            "description": "Start value: token (see above) or date (YYYY-MM-DD or ___-MM-DD).",
      +            "type": "string"
      +          },
      +          "to": {
      +            "description": "End value: token (see above) or date (YYYY-MM-DD or ___-MM-DD).",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "from",
      +          "to"
      +        ],
      +        "type": "object"
      +      },
      +      "holder_segment": {
      +        "default": "top_100_holders",
      +        "description": "Label types for holder analysis and filtering.",
      +        "enum": [
      +          "whale",
      +          "public_figure",
      +          "smart_money",
      +          "top_100_holders",
      +          "exchange"
      +        ],
      +        "type": "string"
      +      },
      +      "mode": {
      +        "default": "onchain_tokens",
      +        "description": "Analysis mode: 'onchain_tokens' for on-chain tokens by contract address, 'perps' for Hyperliquid perpetual futures by symbol. If mode is omitted and token_address is a symbol (not a contract address), mode defaults to 'perps'.",
      +        "enum": [
      +          "onchain_tokens",
      +          "perps"
      +        ],
      +        "type": "string"
      +      },
      +      "tokenAddress": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "tokenAddress"
      +    ],
      +    "type": "object"
      +  }
      +]
  6. Changed4 schema fields changed
    • removedInput schema / $defs
      Removed value: -{
      -  "DateRange": {
      -    "description": "Date range via tokens or dates.\nTokens: NOW, XMIN_AGO, XD_AGO, XH_AGO; THIS_YEAR_START, THIS_QUARTER_START, THIS_MONTH_START, THIS_WEEK_START, TODAY_START; LAST_WEEK_START/END, LAST_MONTH_START/END, LAST_QUARTER_START/END, LAST_YEAR_START/END.\nWeek starts Monday. Quarters are calendar. Dates: YYYY-MM-DD or ___-MM-DD (year omitted).\nPlease check detailed system instructions for more information.",
      -    "properties": {
      -      "from": {
      -        "description": "Start value: token (see above) or date (YYYY-MM-DD or ___-MM-DD).",
      -        "type": "string"
      -      },
      -      "to": {
      -        "description": "End value: token (see above) or date (YYYY-MM-DD or ___-MM-DD).",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "from",
      -      "to"
      -    ],
      -    "type": "object"
      -  },
      -  "SegmentType": {
      -    "description": "Label types for holder analysis and filtering.",
      -    "enum": [
      -      "whale",
      -      "public_figure",
      -      "smart_money",
      -      "top_100_holders",
      -      "exchange"
      -    ],
      -    "type": "string"
      -  },
      -  "TokenFlowsRequest": {
      -    "description": "Complete request for token flows (flattened).",
      -    "properties": {
      -      "chain": {
      -        "default": "ethereum",
      -        "description": "Blockchain network. Supported: arbitrum, avalanche, base, bnb, ethereum, hyperevm, injective, iotaevm, linea, mantle, mantra, monad, near, optimism, plasma, polygon, ronin, scroll, sei, solana, sonic, sui, ton, tron, unichain, zksync",
      -        "type": "string"
      -      },
      -      "dateRange": {
      -        "$ref": "#/$defs/DateRange",
      -        "description": "Date range for flow analysis"
      -      },
      -      "holder_segment": {
      -        "$ref": "#/$defs/SegmentType",
      -        "default": "top_100_holders"
      -      },
      -      "mode": {
      -        "default": "onchain_tokens",
      -        "description": "Analysis mode: 'onchain_tokens' for on-chain tokens by contract address, 'perps' for Hyperliquid perpetual futures by symbol",
      -        "enum": [
      -          "onchain_tokens",
      -          "perps"
      -        ],
      -        "type": "string"
      -      },
      -      "tokenAddress": {
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "tokenAddress"
      -    ],
      -    "type": "object"
      -  }
      -}
    • addedInput schema / additionalProperties
      Added value: +false
    • changedInput schema / properties / request / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": true,
      -    "type": "object"
      -  },
      -  {
      -    "$ref": "#/$defs/TokenFlowsRequest"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": true,
      +    "type": "object"
      +  },
      +  {
      +    "description": "Complete request for token flows (flattened).",
      +    "properties": {
      +      "chain": {
      +        "default": "ethereum",
      +        "description": "Blockchain network. Supported: arbitrum, avalanche, base, bnb, ethereum, hyperevm, injective, iotaevm, linea, mantle, mantra, monad, near, optimism, plasma, polygon, ronin, scroll, sei, solana, sonic, sui, ton, tron, unichain, zksync",
      +        "type": "string"
      +      },
      +      "dateRange": {
      +        "description": "Date range for flow analysis",
      +        "properties": {
      +          "from": {
      +            "description": "Start value: token (see above) or date (YYYY-MM-DD or ___-MM-DD).",
      +            "type": "string"
      +          },
      +          "to": {
      +            "description": "End value: token (see above) or date (YYYY-MM-DD or ___-MM-DD).",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "from",
      +          "to"
      +        ],
      +        "type": "object"
      +      },
      +      "holder_segment": {
      +        "default": "top_100_holders",
      +        "description": "Label types for holder analysis and filtering.",
      +        "enum": [
      +          "whale",
      +          "public_figure",
      +          "smart_money",
      +          "top_100_holders",
      +          "exchange"
      +        ],
      +        "type": "string"
      +      },
      +      "mode": {
      +        "default": "onchain_tokens",
      +        "description": "Analysis mode: 'onchain_tokens' for on-chain tokens by contract address, 'perps' for Hyperliquid perpetual futures by symbol",
      +        "enum": [
      +          "onchain_tokens",
      +          "perps"
      +        ],
      +        "type": "string"
      +      },
      +      "tokenAddress": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "tokenAddress"
      +    ],
      +    "type": "object"
      +  }
      +]
    • addedInput schema / properties / request / description
      Added value: +"TokenFlowsRequest containing parameters and pagination settings"
  7. Changed1 schema field changed
    • changedInput schema / $defs / TokenFlowsRequest / properties / chain / description
      Previous value: -"Blockchain network. Supported: arbitrum, avalanche, base, bnb, ethereum, hyperevm, injective, iotaevm, linea, mantle, monad, near, optimism, plasma, polygon, ronin, scroll, sei, solana, sonic, sui, ton, tron, unichain, zksync"New value: +"Blockchain network. Supported: arbitrum, avalanche, base, bnb, ethereum, hyperevm, injective, iotaevm, linea, mantle, mantra, monad, near, optimism, plasma, polygon, ronin, scroll, sei, solana, sonic, sui, ton, tron, unichain, zksync"
  8. Changed1 schema field changed
    • changedInput schema / $defs / TokenFlowsRequest / properties / chain / description
      Previous value: -"Blockchain network. Supported: arbitrum, avalanche, base, bnb, ethereum, hyperevm, iotaevm, linea, mantle, monad, near, optimism, plasma, polygon, ronin, scroll, sei, solana, sonic, sui, ton, tron, unichain, zksync"New value: +"Blockchain network. Supported: arbitrum, avalanche, base, bnb, ethereum, hyperevm, injective, iotaevm, linea, mantle, monad, near, optimism, plasma, polygon, ronin, scroll, sei, solana, sonic, sui, ton, tron, unichain, zksync"
  9. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already mark readOnly/openWorld/non-destructive, but the description adds substantial behavioral detail: hourly granularity, total flows over the entire time frame, mode-specific chain auto-setting, native-token handling (returns Hyperliquid perpetual-futures flows when a native placeholder is supplied), and the prominent data-source warning. This goes far beyond what annotations alone convey.

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 clear lead sentence, alternative routing, mode breakdown, and an important note. Every section earns its place, though it is slightly repetitive (e.g., 'more granular' and 'total flows... broken down by segment' overlap) and could tighten wording without losing 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?

Given the tool's complexity (two modes, native-token edge cases, smart_money caution), the description covers all critical usage paths and exceptions. Output schema exists, so return details need not be in the description. Pagination parameters are documented in the schema. Nothing essential for correct invocation 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 covers most parameters with descriptionsholed, and the description adds meaning for mode (default and perps behavior), holder_segment (caution about smart_money), and native-token semantics. However, tokenAddress has no description in the schema and is not explicitly clarified in the text; the description indirectly explains it via mode discussion, slightly compensating but not fully.

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 opens with a specific verb and resource: 'Get hourly token-flow history for ONE holder segment over a date range.' It immediately differentiates from sibling token_recent_flows_summary by contrasting 'ONE holder segment' with 'ALL wallet categories' and states this tool is 'more granular.' No ambiguity remains about scope.

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 routing: 'Use token_recent_flows_summary instead for an on-chain snapshot across ALL wallet categories.' It also cautions against using smart_money as a market proxy and defines when to use it. The two modes (onchain_tokens vs perps) are clearly described, including when each applies and the default behavior.

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