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

NameRequiredDescriptionDefault
requestYesTokenFlowsRequest containing parameters and pagination settings

Output 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. Changed5 schema fields changed
    • addedInput schema / properties / request / additionalProperties
      Added value: +false
    • removedInput schema / properties / request / anyOf
      Removed 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 token or date (YYYY-MM-DD or ___-MM-DD). Durations use exact rolling UTC timestamps; dates and calendar tokens start at midnight.",
      -            "type": "string"
      -          },
      -          "to": {
      -            "description": "End token or date (YYYY-MM-DD or ___-MM-DD). Durations use exact rolling UTC timestamps without an extra day. Dates and calendar tokens include the final date; TODAY_START stays at midnight.",
      -            "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"
      -  }
      -]
    • addedInput schema / properties / request / properties
      Added value: +{
      +  "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": {
      +    "additionalProperties": false,
      +    "description": "Date range for flow analysis",
      +    "properties": {
      +      "from": {
      +        "description": "Start token or date (YYYY-MM-DD or ___-MM-DD). Durations use exact rolling UTC timestamps; dates and calendar tokens start at midnight.",
      +        "type": "string"
      +      },
      +      "to": {
      +        "description": "End token or date (YYYY-MM-DD or ___-MM-DD). Durations use exact rolling UTC timestamps without an extra day. Dates and calendar tokens include the final date; TODAY_START stays at midnight.",
      +        "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"
      +  }
      +}
    • addedInput schema / properties / request / required
      Added value: +[
      +  "tokenAddress"
      +]
    • addedInput schema / properties / request / type
      Added value: +"object"
  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, 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"
      -  }
      -]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 token or date (YYYY-MM-DD or ___-MM-DD). Durations use exact rolling UTC timestamps; dates and calendar tokens start at midnight.",
      +            "type": "string"
      +          },
      +          "to": {
      +            "description": "End token or date (YYYY-MM-DD or ___-MM-DD). Durations use exact rolling UTC timestamps without an extra day. Dates and calendar tokens include the final date; TODAY_START stays at midnight.",
      +            "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. 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
  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, 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"
      +  }
      +]
  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, 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"
      +  }
      +]
  6. 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"
      +  }
      +]
  7. 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"
      +  }
      +]
  8. 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"
  9. 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"
  10. 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"
  11. First observed

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already declare readOnly/openWorld/non-destructive, and the description adds non-obvious behavior on top: mode-dependent chain handling (perps auto-sets chain to hyperliquid) and the native-token fallback, where a native placeholder address silently returns Hyperliquid perp flows with a data-source warning. That quirk would otherwise be a genuine surprise to a caller.

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?

Front-loaded with the core scope, then organized under Modes/NOTE headings that are easy to scan. Minor waste: token_recent_flows_summary is referenced three times and the 'more granular ... TOTAL flows over the entire time frame' sentence partly restates the opening and sits in mild tension with 'hourly history'.

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?

An output schema exists, so return values needn't be described, and the single top-level param is a nested request object fully documented in schema. What remains slightly unclear is how the 'hourly' series relates to the 'TOTAL flows over the entire time frame' claim, which an agent may need to resolve empirically.

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 description coverage is 100%, so baseline is 3; the description earns above that by adding semantics the schema lacks — that perps mode auto-sets the chain, that native placeholder addresses are rejected in onchain_tokens mode, and the smart_money segment caveat. It stops short of explaining the from/to token vocabulary, which stays with the schema.

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?

Opens with a specific verb, resource, scope and granularity: 'Get hourly token-flow history for ONE holder segment over a date range.' It immediately names the sibling it is not (token_recent_flows_summary, which covers ALL wallet categories), so an agent can route without opening either schema.

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 rules: use token_recent_flows_summary for an on-chain snapshot across all categories, use this one for one segment over time. It also states a when-not caveat ('smart_money is not a good proxy for an overall market view; use only if explicitly requested') and mode-selection guidance, which is exactly the when/when-not/alternatives bar.

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