Skip to main content
Glama

Finding top token holders

token_current_top_holders

Get upto 25 (per page) top holders information for a specific token.

Note: Using labelType: 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.

Modes:

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

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

Columns returned (onchain_tokens mode):

  • Address: Wallet/contract address of the token holder

  • Label: Nansen label (e.g., exchange, whale, etc.)

  • Balance: Current balance held (numeric with K/M/B formatting)

  • Balance USD: USD value of token holdings (currency formatted)

  • Ownership %: Percentage of total token supply owned (percentage, 2 decimal places)

  • Sent: Total tokens sent from this address historically (numeric)

  • Received: Total tokens received by this address historically (numeric)

  • 24h Change: Balance change in last 24 hours (numeric, can be negative)

  • 7d Change: Balance change in last 7 days (numeric, can be negative)

  • 30d Change: Balance change in last 30 days (numeric, can be negative)

Columns returned (perps mode):

  • Trader Address: Address of the trader

  • Trader Label: Nansen label for the trader

  • Side: Position direction (Long/Short)

  • Position Value USD: Total USD value of the position (currency formatted)

  • Position Size: Size of the position in tokens (numeric)

  • Leverage: Leverage multiplier (e.g., "20X")

  • Leverage Type: Type of leverage (cross/isolated)

  • Entry Price: Average entry price (price formatted)

  • Mark Price: Current mark price (price formatted)

  • Liquidation Price: Liquidation price (price formatted)

  • Funding USD: Cumulative funding payments (currency formatted)

  • Unrealized PnL USD: Unrealized profit/loss (currency formatted)

Sorting Options (default: holding_size desc): onchain_tokens mode: holding_size, total_outflow, total_inflow, balance_change_24h, balance_change_7d, balance_change_30d perps mode: holding_size, side, entry_price, leverage, liquidation_price, funding_usd, upnl_usd Use only a value listed for the selected mode. A value from the wrong mode is not an error: the call falls back to holding_size and the output notes the changed sort.

Examples: # On-chain tokens (default mode) { "mode": "onchain_tokens", "chain": "ethereum", "token_address": "0xa0b86a33e6b6c4b3add000b44b3a1234567890ab", "label_type": "top_100_holders" }

# Hyperliquid perpetual futures
```
{
  "mode": "perps",
  "token_address": "PENGU",
  "label_type": "smart_money"
}
```

# Find most active senders using filters
```
{
  "mode": "onchain_tokens",
  "chain": "ethereum",
  "token_address": "0xa0b86a33e6b6c4b3add000b44b3a1234567890ab",
  "label_type": "smart_money",
  "includeSmartMoneyLabels": ["All Time Smart Trader", "Fund"],
  "orderBy": "total_outflow",
  "order_by_direction": "desc"
}
```

# Find biggest accumulators (who received most tokens)
```
{
  "mode": "onchain_tokens",
  "chain": "ethereum",
  "token_address": "0xa0b86a33e6b6c4b3add000b44b3a1234567890ab",
  "label_type": "whale",
  "orderBy": "total_inflow",
  "order_by_direction": "desc"
}
```

# Perps mode with filters
```
{
  "mode": "perps",
  "token_address": "ETH",
  "label_type": "smart_money",
  "side": "Long",
  "upnlUsd": {"from": 10000},
  "positionValueUsd": {"from": 100000},
  "orderBy": "holding_size",
  "order_by_direction": "desc"
}
```

**Native-token / stablecoin `orderBy` restriction:**
With `labelType='top_100_holders'` (the default), native tokens
(`0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee` and native SUI) and
stablecoins/pegged tokens support `orderBy='holding_size'` only. To
sort such a token by another onchain field, use `labelType='whale'`,
`smart_money`, `exchange` or `public_figure` instead. An unsupported
combination is not an error: the call falls back to `holding_size`
and the output notes the changed sort.

**Other `top_100_holders` limits for native tokens:** limited filters
(holding_size, total_outflow, total_inflow, address, smart money
labels). For advanced filters use a different `labelType` or set
`aggregateByEntity=true`.

**Does not** work for SOL in onchain_tokens mode (tokenAddress So11111111111111111111111111111111111111112). For SOL analysis, use perps mode instead.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
requestYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed1 schema field changed
    • changedInput schema / properties / request / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": true,
      -    "type": "object"
      -  },
      -  {
      -    "description": "Complete request for token current top holders (flattened).",
      -    "properties": {
      -      "aggregateByEntity": {
      -        "default": false,
      -        "description": "Whether to aggregate data by entity instead of individual addresses",
      -        "type": "boolean"
      -      },
      -      "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"
      -      },
      -      "entryPrice": {
      -        "anyOf": [
      -          {
      -            "description": "Numeric range where from_value and to_value are optional,\nallowing for open-ended ranges (e.g., only minimum or only maximum).",
      -            "properties": {
      -              "from": {
      -                "anyOf": [
      -                  {
      -                    "type": "number"
      -                  },
      -                  {
      -                    "type": "null"
      -                  }
      -                ],
      -                "default": null,
      -                "description": "Minimum value (inclusive), optional"
      -              },
      -              "to": {
      -                "anyOf": [
      -                  {
      -                    "type": "number"
      -                  },
      -                  {
      -                    "type": "null"
      -                  }
      -                ],
      -                "default": null,
      -                "description": "Maximum value (inclusive), optional"
      -              }
      -            },
      -            "type": "object"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Entry price range filter - perps mode only"
      -      },
      -      "includeSmartMoneyLabels": {
      -        "anyOf": [
      -          {
      -            "items": {
      -              "enum": [
      -                "30D Smart Trader",
      -                "90D Smart Trader",
      -                "180D Smart Trader",
      -                "All Time Smart Trader",
      -                "Fund",
      -                "Smart HL Perps Trader",
      -                "Any Smart Money"
      -              ],
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "List of smart money labels to filter by (default: empty list). Use 'Any Smart Money' to include all smart money types."
      -      },
      -      "labelType": {
      -        "default": "top_100_holders",
      -        "description": "Label type 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"
      -      },
      -      "orderBy": {
      -        "anyOf": [
      -          {
      -            "enum": [
      -              "holding_size",
      -              "total_outflow",
      -              "total_inflow",
      -              "balance_change_24h",
      -              "balance_change_7d",
      -              "balance_change_30d",
      -              "side",
      -              "entry_price",
      -              "leverage",
      -              "liquidation_price",
      -              "funding_usd",
      -              "upnl_usd"
      -            ],
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Sort field. Pass an exact value above or None for default ('holding_size'). Some values are mode-specific."
      -      },
      -      "order_by_direction": {
      -        "default": "DESC",
      -        "enum": [
      -          "ASC",
      -          "DESC",
      -          "asc",
      -          "desc"
      -        ],
      -        "type": "string"
      -      },
      -      "page": {
      -        "default": 1,
      -        "type": "integer"
      -      },
      -      "positionValueUsd": {
      -        "anyOf": [
      -          {
      -            "description": "Numeric range where from_value and to_value are optional,\nallowing for open-ended ranges (e.g., only minimum or only maximum).",
      -            "properties": {
      -              "from": {
      -                "anyOf": [
      -                  {
      -                    "type": "number"
      -                  },
      -                  {
      -                    "type": "null"
      -                  }
      -                ],
      -                "default": null,
      -                "description": "Minimum value (inclusive), optional"
      -              },
      -              "to": {
      -                "anyOf": [
      -                  {
      -                    "type": "number"
      -                  },
      -                  {
      -                    "type": "null"
      -                  }
      -                ],
      -                "default": null,
      -                "description": "Maximum value (inclusive), optional"
      -              }
      -            },
      -            "type": "object"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Position value range filter in USD - perps mode only"
      -      },
      -      "side": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Position side filter (Long/Short) - perps mode only"
      -      },
      -      "tokenAddress": {
      -        "type": "string"
      -      },
      -      "upnlUsd": {
      -        "anyOf": [
      -          {
      -            "description": "Numeric range where from_value and to_value are optional,\nallowing for open-ended ranges (e.g., only minimum or only maximum).",
      -            "properties": {
      -              "from": {
      -                "anyOf": [
      -                  {
      -                    "type": "number"
      -                  },
      -                  {
      -                    "type": "null"
      -                  }
      -                ],
      -                "default": null,
      -                "description": "Minimum value (inclusive), optional"
      -              },
      -              "to": {
      -                "anyOf": [
      -                  {
      -                    "type": "number"
      -                  },
      -                  {
      -                    "type": "null"
      -                  }
      -                ],
      -                "default": null,
      -                "description": "Maximum value (inclusive), optional"
      -              }
      -            },
      -            "type": "object"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Unrealized PnL range filter in USD - perps mode only"
      -      }
      -    },
      -    "required": [
      -      "tokenAddress"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": true,
      +    "type": "object"
      +  },
      +  {
      +    "description": "Complete request for token current top holders (flattened).",
      +    "properties": {
      +      "aggregateByEntity": {
      +        "default": false,
      +        "description": "Whether to aggregate data by entity instead of individual addresses",
      +        "type": "boolean"
      +      },
      +      "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"
      +      },
      +      "entryPrice": {
      +        "anyOf": [
      +          {
      +            "description": "Numeric range where from_value and to_value are optional,\nallowing for open-ended ranges (e.g., only minimum or only maximum).",
      +            "properties": {
      +              "from": {
      +                "anyOf": [
      +                  {
      +                    "type": "number"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null,
      +                "description": "Minimum value (inclusive), optional"
      +              },
      +              "to": {
      +                "anyOf": [
      +                  {
      +                    "type": "number"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null,
      +                "description": "Maximum value (inclusive), optional"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Entry price range filter - perps mode only"
      +      },
      +      "includeSmartMoneyLabels": {
      +        "anyOf": [
      +          {
      +            "items": {
      +              "enum": [
      +                "30D Smart Trader",
      +                "90D Smart Trader",
      +                "180D Smart Trader",
      +                "All Time Smart Trader",
      +                "Fund",
      +                "Smart HL Perps Trader",
      +                "Any Smart Money"
      +              ],
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "List of smart money labels to filter by (default: empty list). Use 'Any Smart Money' to include all smart money types."
      +      },
      +      "labelType": {
      +        "default": "top_100_holders",
      +        "description": "Label type 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"
      +      },
      +      "orderBy": {
      +        "anyOf": [
      +          {
      +            "enum": [
      +              "holding_size",
      +              "total_outflow",
      +              "total_inflow",
      +              "balance_change_24h",
      +              "balance_change_7d",
      +              "balance_change_30d",
      +              "side",
      +              "entry_price",
      +              "leverage",
      +              "liquidation_price",
      +              "funding_usd",
      +              "upnl_usd"
      +            ],
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Sort field. holding_size works in both modes. onchain_tokens only: total_inflow, total_outflow, balance_change_24h, balance_change_7d, balance_change_30d. perps only: side, entry_price, leverage, liquidation_price, funding_usd, upnl_usd. Native tokens with labelType='top_100_holders' support holding_size only; use another labelType for other on-chain sorts. An unsupported combination is not an error: the call falls back to holding_size and the output notes the changed sort."
      +      },
      +      "order_by_direction": {
      +        "default": "DESC",
      +        "enum": [
      +          "ASC",
      +          "DESC",
      +          "asc",
      +          "desc"
      +        ],
      +        "type": "string"
      +      },
      +      "page": {
      +        "default": 1,
      +        "type": "integer"
      +      },
      +      "positionValueUsd": {
      +        "anyOf": [
      +          {
      +            "description": "Numeric range where from_value and to_value are optional,\nallowing for open-ended ranges (e.g., only minimum or only maximum).",
      +            "properties": {
      +              "from": {
      +                "anyOf": [
      +                  {
      +                    "type": "number"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null,
      +                "description": "Minimum value (inclusive), optional"
      +              },
      +              "to": {
      +                "anyOf": [
      +                  {
      +                    "type": "number"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null,
      +                "description": "Maximum value (inclusive), optional"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Position value range filter in USD - perps mode only"
      +      },
      +      "side": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Position side filter (Long/Short) - perps mode only"
      +      },
      +      "tokenAddress": {
      +        "type": "string"
      +      },
      +      "upnlUsd": {
      +        "anyOf": [
      +          {
      +            "description": "Numeric range where from_value and to_value are optional,\nallowing for open-ended ranges (e.g., only minimum or only maximum).",
      +            "properties": {
      +              "from": {
      +                "anyOf": [
      +                  {
      +                    "type": "number"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null,
      +                "description": "Minimum value (inclusive), optional"
      +              },
      +              "to": {
      +                "anyOf": [
      +                  {
      +                    "type": "number"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null,
      +                "description": "Maximum value (inclusive), optional"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Unrealized PnL range filter in USD - perps mode only"
      +      }
      +    },
      +    "required": [
      +      "tokenAddress"
      +    ],
      +    "type": "object"
      +  }
      +]
  2. Changed1 schema field changed
    • changedInput schema / properties / request / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": true,
      -    "type": "object"
      -  },
      -  {
      -    "description": "Complete request for token current top holders (flattened).",
      -    "properties": {
      -      "aggregateByEntity": {
      -        "default": false,
      -        "description": "Whether to aggregate data by entity instead of individual addresses",
      -        "type": "boolean"
      -      },
      -      "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"
      -      },
      -      "entryPrice": {
      -        "anyOf": [
      -          {
      -            "description": "Numeric range where from_value and to_value are optional,\nallowing for open-ended ranges (e.g., only minimum or only maximum).",
      -            "properties": {
      -              "from": {
      -                "anyOf": [
      -                  {
      -                    "type": "number"
      -                  },
      -                  {
      -                    "type": "null"
      -                  }
      -                ],
      -                "default": null,
      -                "description": "Minimum value (inclusive), optional"
      -              },
      -              "to": {
      -                "anyOf": [
      -                  {
      -                    "type": "number"
      -                  },
      -                  {
      -                    "type": "null"
      -                  }
      -                ],
      -                "default": null,
      -                "description": "Maximum value (inclusive), optional"
      -              }
      -            },
      -            "type": "object"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Entry price range filter - perps mode only"
      -      },
      -      "includeSmartMoneyLabels": {
      -        "anyOf": [
      -          {
      -            "items": {
      -              "enum": [
      -                "30D Smart Trader",
      -                "90D Smart Trader",
      -                "180D Smart Trader",
      -                "All Time Smart Trader",
      -                "Fund",
      -                "Smart HL Perps Trader",
      -                "Any Smart Money"
      -              ],
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "List of smart money labels to filter by (default: empty list). Use 'Any Smart Money' to include all smart money types."
      -      },
      -      "labelType": {
      -        "default": "top_100_holders",
      -        "description": "Label type 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"
      -      },
      -      "orderBy": {
      -        "anyOf": [
      -          {
      -            "enum": [
      -              "holding_size",
      -              "total_outflow",
      -              "total_inflow",
      -              "balance_change_24h",
      -              "balance_change_7d",
      -              "balance_change_30d",
      -              "side",
      -              "entry_price",
      -              "leverage",
      -              "liquidation_price",
      -              "funding_usd",
      -              "upnl_usd"
      -            ],
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Sort field. Pass an exact value above or None for default ('holding_size'). Some values are mode-specific."
      -      },
      -      "order_by_direction": {
      -        "default": "DESC",
      -        "enum": [
      -          "ASC",
      -          "DESC",
      -          "asc",
      -          "desc"
      -        ],
      -        "type": "string"
      -      },
      -      "page": {
      -        "default": 1,
      -        "type": "integer"
      -      },
      -      "positionValueUsd": {
      -        "anyOf": [
      -          {
      -            "description": "Numeric range where from_value and to_value are optional,\nallowing for open-ended ranges (e.g., only minimum or only maximum).",
      -            "properties": {
      -              "from": {
      -                "anyOf": [
      -                  {
      -                    "type": "number"
      -                  },
      -                  {
      -                    "type": "null"
      -                  }
      -                ],
      -                "default": null,
      -                "description": "Minimum value (inclusive), optional"
      -              },
      -              "to": {
      -                "anyOf": [
      -                  {
      -                    "type": "number"
      -                  },
      -                  {
      -                    "type": "null"
      -                  }
      -                ],
      -                "default": null,
      -                "description": "Maximum value (inclusive), optional"
      -              }
      -            },
      -            "type": "object"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Position value range filter in USD - perps mode only"
      -      },
      -      "side": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Position side filter (Long/Short) - perps mode only"
      -      },
      -      "tokenAddress": {
      -        "type": "string"
      -      },
      -      "upnlUsd": {
      -        "anyOf": [
      -          {
      -            "description": "Numeric range where from_value and to_value are optional,\nallowing for open-ended ranges (e.g., only minimum or only maximum).",
      -            "properties": {
      -              "from": {
      -                "anyOf": [
      -                  {
      -                    "type": "number"
      -                  },
      -                  {
      -                    "type": "null"
      -                  }
      -                ],
      -                "default": null,
      -                "description": "Minimum value (inclusive), optional"
      -              },
      -              "to": {
      -                "anyOf": [
      -                  {
      -                    "type": "number"
      -                  },
      -                  {
      -                    "type": "null"
      -                  }
      -                ],
      -                "default": null,
      -                "description": "Maximum value (inclusive), optional"
      -              }
      -            },
      -            "type": "object"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Unrealized PnL range filter in USD - perps mode only"
      -      }
      -    },
      -    "required": [
      -      "tokenAddress"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": true,
      +    "type": "object"
      +  },
      +  {
      +    "description": "Complete request for token current top holders (flattened).",
      +    "properties": {
      +      "aggregateByEntity": {
      +        "default": false,
      +        "description": "Whether to aggregate data by entity instead of individual addresses",
      +        "type": "boolean"
      +      },
      +      "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"
      +      },
      +      "entryPrice": {
      +        "anyOf": [
      +          {
      +            "description": "Numeric range where from_value and to_value are optional,\nallowing for open-ended ranges (e.g., only minimum or only maximum).",
      +            "properties": {
      +              "from": {
      +                "anyOf": [
      +                  {
      +                    "type": "number"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null,
      +                "description": "Minimum value (inclusive), optional"
      +              },
      +              "to": {
      +                "anyOf": [
      +                  {
      +                    "type": "number"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null,
      +                "description": "Maximum value (inclusive), optional"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Entry price range filter - perps mode only"
      +      },
      +      "includeSmartMoneyLabels": {
      +        "anyOf": [
      +          {
      +            "items": {
      +              "enum": [
      +                "30D Smart Trader",
      +                "90D Smart Trader",
      +                "180D Smart Trader",
      +                "All Time Smart Trader",
      +                "Fund",
      +                "Smart HL Perps Trader",
      +                "Any Smart Money"
      +              ],
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "List of smart money labels to filter by (default: empty list). Use 'Any Smart Money' to include all smart money types."
      +      },
      +      "labelType": {
      +        "default": "top_100_holders",
      +        "description": "Label type 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"
      +      },
      +      "orderBy": {
      +        "anyOf": [
      +          {
      +            "enum": [
      +              "holding_size",
      +              "total_outflow",
      +              "total_inflow",
      +              "balance_change_24h",
      +              "balance_change_7d",
      +              "balance_change_30d",
      +              "side",
      +              "entry_price",
      +              "leverage",
      +              "liquidation_price",
      +              "funding_usd",
      +              "upnl_usd"
      +            ],
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Sort field. Pass an exact value above or None for default ('holding_size'). Some values are mode-specific."
      +      },
      +      "order_by_direction": {
      +        "default": "DESC",
      +        "enum": [
      +          "ASC",
      +          "DESC",
      +          "asc",
      +          "desc"
      +        ],
      +        "type": "string"
      +      },
      +      "page": {
      +        "default": 1,
      +        "type": "integer"
      +      },
      +      "positionValueUsd": {
      +        "anyOf": [
      +          {
      +            "description": "Numeric range where from_value and to_value are optional,\nallowing for open-ended ranges (e.g., only minimum or only maximum).",
      +            "properties": {
      +              "from": {
      +                "anyOf": [
      +                  {
      +                    "type": "number"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null,
      +                "description": "Minimum value (inclusive), optional"
      +              },
      +              "to": {
      +                "anyOf": [
      +                  {
      +                    "type": "number"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null,
      +                "description": "Maximum value (inclusive), optional"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Position value range filter in USD - perps mode only"
      +      },
      +      "side": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Position side filter (Long/Short) - perps mode only"
      +      },
      +      "tokenAddress": {
      +        "type": "string"
      +      },
      +      "upnlUsd": {
      +        "anyOf": [
      +          {
      +            "description": "Numeric range where from_value and to_value are optional,\nallowing for open-ended ranges (e.g., only minimum or only maximum).",
      +            "properties": {
      +              "from": {
      +                "anyOf": [
      +                  {
      +                    "type": "number"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null,
      +                "description": "Minimum value (inclusive), optional"
      +              },
      +              "to": {
      +                "anyOf": [
      +                  {
      +                    "type": "number"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null,
      +                "description": "Maximum value (inclusive), optional"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Unrealized PnL range filter in USD - perps mode only"
      +      }
      +    },
      +    "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 current top holders (flattened).",
      -    "properties": {
      -      "aggregateByEntity": {
      -        "default": false,
      -        "description": "Whether to aggregate data by entity instead of individual addresses",
      -        "type": "boolean"
      -      },
      -      "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"
      -      },
      -      "entryPrice": {
      -        "anyOf": [
      -          {
      -            "description": "Numeric range where from_value and to_value are optional,\nallowing for open-ended ranges (e.g., only minimum or only maximum).",
      -            "properties": {
      -              "from": {
      -                "anyOf": [
      -                  {
      -                    "type": "number"
      -                  },
      -                  {
      -                    "type": "null"
      -                  }
      -                ],
      -                "default": null,
      -                "description": "Minimum value (inclusive), optional"
      -              },
      -              "to": {
      -                "anyOf": [
      -                  {
      -                    "type": "number"
      -                  },
      -                  {
      -                    "type": "null"
      -                  }
      -                ],
      -                "default": null,
      -                "description": "Maximum value (inclusive), optional"
      -              }
      -            },
      -            "type": "object"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Entry price range filter - perps mode only"
      -      },
      -      "includeSmartMoneyLabels": {
      -        "anyOf": [
      -          {
      -            "items": {
      -              "enum": [
      -                "30D Smart Trader",
      -                "90D Smart Trader",
      -                "180D Smart Trader",
      -                "All Time Smart Trader",
      -                "Fund",
      -                "Smart HL Perps Trader",
      -                "Any Smart Money"
      -              ],
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "List of smart money labels to filter by (default: empty list). Use 'Any Smart Money' to include all smart money types."
      -      },
      -      "labelType": {
      -        "default": "top_100_holders",
      -        "description": "Label type 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"
      -      },
      -      "orderBy": {
      -        "anyOf": [
      -          {
      -            "enum": [
      -              "holding_size",
      -              "total_outflow",
      -              "total_inflow",
      -              "balance_change_24h",
      -              "balance_change_7d",
      -              "balance_change_30d",
      -              "side",
      -              "entry_price",
      -              "leverage",
      -              "liquidation_price",
      -              "funding_usd",
      -              "upnl_usd"
      -            ],
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Sort field. Pass an exact value above or None for default ('holding_size'). Some values are mode-specific."
      -      },
      -      "order_by_direction": {
      -        "default": "DESC",
      -        "enum": [
      -          "ASC",
      -          "DESC",
      -          "asc",
      -          "desc"
      -        ],
      -        "type": "string"
      -      },
      -      "page": {
      -        "default": 1,
      -        "type": "integer"
      -      },
      -      "positionValueUsd": {
      -        "anyOf": [
      -          {
      -            "description": "Numeric range where from_value and to_value are optional,\nallowing for open-ended ranges (e.g., only minimum or only maximum).",
      -            "properties": {
      -              "from": {
      -                "anyOf": [
      -                  {
      -                    "type": "number"
      -                  },
      -                  {
      -                    "type": "null"
      -                  }
      -                ],
      -                "default": null,
      -                "description": "Minimum value (inclusive), optional"
      -              },
      -              "to": {
      -                "anyOf": [
      -                  {
      -                    "type": "number"
      -                  },
      -                  {
      -                    "type": "null"
      -                  }
      -                ],
      -                "default": null,
      -                "description": "Maximum value (inclusive), optional"
      -              }
      -            },
      -            "type": "object"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Position value range filter in USD - perps mode only"
      -      },
      -      "side": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Position side filter (Long/Short) - perps mode only"
      -      },
      -      "tokenAddress": {
      -        "type": "string"
      -      },
      -      "upnlUsd": {
      -        "anyOf": [
      -          {
      -            "description": "Numeric range where from_value and to_value are optional,\nallowing for open-ended ranges (e.g., only minimum or only maximum).",
      -            "properties": {
      -              "from": {
      -                "anyOf": [
      -                  {
      -                    "type": "number"
      -                  },
      -                  {
      -                    "type": "null"
      -                  }
      -                ],
      -                "default": null,
      -                "description": "Minimum value (inclusive), optional"
      -              },
      -              "to": {
      -                "anyOf": [
      -                  {
      -                    "type": "number"
      -                  },
      -                  {
      -                    "type": "null"
      -                  }
      -                ],
      -                "default": null,
      -                "description": "Maximum value (inclusive), optional"
      -              }
      -            },
      -            "type": "object"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Unrealized PnL range filter in USD - perps mode only"
      -      }
      -    },
      -    "required": [
      -      "tokenAddress"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": true,
      +    "type": "object"
      +  },
      +  {
      +    "description": "Complete request for token current top holders (flattened).",
      +    "properties": {
      +      "aggregateByEntity": {
      +        "default": false,
      +        "description": "Whether to aggregate data by entity instead of individual addresses",
      +        "type": "boolean"
      +      },
      +      "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"
      +      },
      +      "entryPrice": {
      +        "anyOf": [
      +          {
      +            "description": "Numeric range where from_value and to_value are optional,\nallowing for open-ended ranges (e.g., only minimum or only maximum).",
      +            "properties": {
      +              "from": {
      +                "anyOf": [
      +                  {
      +                    "type": "number"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null,
      +                "description": "Minimum value (inclusive), optional"
      +              },
      +              "to": {
      +                "anyOf": [
      +                  {
      +                    "type": "number"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null,
      +                "description": "Maximum value (inclusive), optional"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Entry price range filter - perps mode only"
      +      },
      +      "includeSmartMoneyLabels": {
      +        "anyOf": [
      +          {
      +            "items": {
      +              "enum": [
      +                "30D Smart Trader",
      +                "90D Smart Trader",
      +                "180D Smart Trader",
      +                "All Time Smart Trader",
      +                "Fund",
      +                "Smart HL Perps Trader",
      +                "Any Smart Money"
      +              ],
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "List of smart money labels to filter by (default: empty list). Use 'Any Smart Money' to include all smart money types."
      +      },
      +      "labelType": {
      +        "default": "top_100_holders",
      +        "description": "Label type 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"
      +      },
      +      "orderBy": {
      +        "anyOf": [
      +          {
      +            "enum": [
      +              "holding_size",
      +              "total_outflow",
      +              "total_inflow",
      +              "balance_change_24h",
      +              "balance_change_7d",
      +              "balance_change_30d",
      +              "side",
      +              "entry_price",
      +              "leverage",
      +              "liquidation_price",
      +              "funding_usd",
      +              "upnl_usd"
      +            ],
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Sort field. Pass an exact value above or None for default ('holding_size'). Some values are mode-specific."
      +      },
      +      "order_by_direction": {
      +        "default": "DESC",
      +        "enum": [
      +          "ASC",
      +          "DESC",
      +          "asc",
      +          "desc"
      +        ],
      +        "type": "string"
      +      },
      +      "page": {
      +        "default": 1,
      +        "type": "integer"
      +      },
      +      "positionValueUsd": {
      +        "anyOf": [
      +          {
      +            "description": "Numeric range where from_value and to_value are optional,\nallowing for open-ended ranges (e.g., only minimum or only maximum).",
      +            "properties": {
      +              "from": {
      +                "anyOf": [
      +                  {
      +                    "type": "number"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null,
      +                "description": "Minimum value (inclusive), optional"
      +              },
      +              "to": {
      +                "anyOf": [
      +                  {
      +                    "type": "number"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null,
      +                "description": "Maximum value (inclusive), optional"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Position value range filter in USD - perps mode only"
      +      },
      +      "side": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Position side filter (Long/Short) - perps mode only"
      +      },
      +      "tokenAddress": {
      +        "type": "string"
      +      },
      +      "upnlUsd": {
      +        "anyOf": [
      +          {
      +            "description": "Numeric range where from_value and to_value are optional,\nallowing for open-ended ranges (e.g., only minimum or only maximum).",
      +            "properties": {
      +              "from": {
      +                "anyOf": [
      +                  {
      +                    "type": "number"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null,
      +                "description": "Minimum value (inclusive), optional"
      +              },
      +              "to": {
      +                "anyOf": [
      +                  {
      +                    "type": "number"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null,
      +                "description": "Maximum value (inclusive), optional"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Unrealized PnL range filter in USD - perps mode only"
      +      }
      +    },
      +    "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 current top holders (flattened).",
      -    "properties": {
      -      "aggregateByEntity": {
      -        "default": false,
      -        "description": "Whether to aggregate data by entity instead of individual addresses",
      -        "type": "boolean"
      -      },
      -      "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"
      -      },
      -      "entryPrice": {
      -        "anyOf": [
      -          {
      -            "description": "Numeric range where from_value and to_value are optional,\nallowing for open-ended ranges (e.g., only minimum or only maximum).",
      -            "properties": {
      -              "from": {
      -                "anyOf": [
      -                  {
      -                    "type": "number"
      -                  },
      -                  {
      -                    "type": "null"
      -                  }
      -                ],
      -                "default": null,
      -                "description": "Minimum value (inclusive), optional"
      -              },
      -              "to": {
      -                "anyOf": [
      -                  {
      -                    "type": "number"
      -                  },
      -                  {
      -                    "type": "null"
      -                  }
      -                ],
      -                "default": null,
      -                "description": "Maximum value (inclusive), optional"
      -              }
      -            },
      -            "type": "object"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Entry price range filter - perps mode only"
      -      },
      -      "includeSmartMoneyLabels": {
      -        "anyOf": [
      -          {
      -            "items": {
      -              "enum": [
      -                "30D Smart Trader",
      -                "90D Smart Trader",
      -                "180D Smart Trader",
      -                "All Time Smart Trader",
      -                "Fund",
      -                "Smart HL Perps Trader",
      -                "Any Smart Money"
      -              ],
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "List of smart money labels to filter by (default: empty list). Use 'Any Smart Money' to include all smart money types."
      -      },
      -      "labelType": {
      -        "default": "top_100_holders",
      -        "description": "Label type 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"
      -      },
      -      "order_by": {
      -        "default": "amount",
      -        "type": "string"
      -      },
      -      "order_by_direction": {
      -        "default": "desc",
      -        "enum": [
      -          "asc",
      -          "desc"
      -        ],
      -        "type": "string"
      -      },
      -      "page": {
      -        "default": 1,
      -        "type": "integer"
      -      },
      -      "positionValueUsd": {
      -        "anyOf": [
      -          {
      -            "description": "Numeric range where from_value and to_value are optional,\nallowing for open-ended ranges (e.g., only minimum or only maximum).",
      -            "properties": {
      -              "from": {
      -                "anyOf": [
      -                  {
      -                    "type": "number"
      -                  },
      -                  {
      -                    "type": "null"
      -                  }
      -                ],
      -                "default": null,
      -                "description": "Minimum value (inclusive), optional"
      -              },
      -              "to": {
      -                "anyOf": [
      -                  {
      -                    "type": "number"
      -                  },
      -                  {
      -                    "type": "null"
      -                  }
      -                ],
      -                "default": null,
      -                "description": "Maximum value (inclusive), optional"
      -              }
      -            },
      -            "type": "object"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Position value range filter in USD - perps mode only"
      -      },
      -      "side": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Position side filter (Long/Short) - perps mode only"
      -      },
      -      "tokenAddress": {
      -        "type": "string"
      -      },
      -      "upnlUsd": {
      -        "anyOf": [
      -          {
      -            "description": "Numeric range where from_value and to_value are optional,\nallowing for open-ended ranges (e.g., only minimum or only maximum).",
      -            "properties": {
      -              "from": {
      -                "anyOf": [
      -                  {
      -                    "type": "number"
      -                  },
      -                  {
      -                    "type": "null"
      -                  }
      -                ],
      -                "default": null,
      -                "description": "Minimum value (inclusive), optional"
      -              },
      -              "to": {
      -                "anyOf": [
      -                  {
      -                    "type": "number"
      -                  },
      -                  {
      -                    "type": "null"
      -                  }
      -                ],
      -                "default": null,
      -                "description": "Maximum value (inclusive), optional"
      -              }
      -            },
      -            "type": "object"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Unrealized PnL range filter in USD - perps mode only"
      -      }
      -    },
      -    "required": [
      -      "tokenAddress"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": true,
      +    "type": "object"
      +  },
      +  {
      +    "description": "Complete request for token current top holders (flattened).",
      +    "properties": {
      +      "aggregateByEntity": {
      +        "default": false,
      +        "description": "Whether to aggregate data by entity instead of individual addresses",
      +        "type": "boolean"
      +      },
      +      "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"
      +      },
      +      "entryPrice": {
      +        "anyOf": [
      +          {
      +            "description": "Numeric range where from_value and to_value are optional,\nallowing for open-ended ranges (e.g., only minimum or only maximum).",
      +            "properties": {
      +              "from": {
      +                "anyOf": [
      +                  {
      +                    "type": "number"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null,
      +                "description": "Minimum value (inclusive), optional"
      +              },
      +              "to": {
      +                "anyOf": [
      +                  {
      +                    "type": "number"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null,
      +                "description": "Maximum value (inclusive), optional"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Entry price range filter - perps mode only"
      +      },
      +      "includeSmartMoneyLabels": {
      +        "anyOf": [
      +          {
      +            "items": {
      +              "enum": [
      +                "30D Smart Trader",
      +                "90D Smart Trader",
      +                "180D Smart Trader",
      +                "All Time Smart Trader",
      +                "Fund",
      +                "Smart HL Perps Trader",
      +                "Any Smart Money"
      +              ],
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "List of smart money labels to filter by (default: empty list). Use 'Any Smart Money' to include all smart money types."
      +      },
      +      "labelType": {
      +        "default": "top_100_holders",
      +        "description": "Label type 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"
      +      },
      +      "orderBy": {
      +        "anyOf": [
      +          {
      +            "enum": [
      +              "holding_size",
      +              "total_outflow",
      +              "total_inflow",
      +              "balance_change_24h",
      +              "balance_change_7d",
      +              "balance_change_30d",
      +              "side",
      +              "entry_price",
      +              "leverage",
      +              "liquidation_price",
      +              "funding_usd",
      +              "upnl_usd"
      +            ],
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Sort field. Pass an exact value above or None for default ('holding_size'). Some values are mode-specific."
      +      },
      +      "order_by_direction": {
      +        "default": "DESC",
      +        "enum": [
      +          "ASC",
      +          "DESC",
      +          "asc",
      +          "desc"
      +        ],
      +        "type": "string"
      +      },
      +      "page": {
      +        "default": 1,
      +        "type": "integer"
      +      },
      +      "positionValueUsd": {
      +        "anyOf": [
      +          {
      +            "description": "Numeric range where from_value and to_value are optional,\nallowing for open-ended ranges (e.g., only minimum or only maximum).",
      +            "properties": {
      +              "from": {
      +                "anyOf": [
      +                  {
      +                    "type": "number"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null,
      +                "description": "Minimum value (inclusive), optional"
      +              },
      +              "to": {
      +                "anyOf": [
      +                  {
      +                    "type": "number"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null,
      +                "description": "Maximum value (inclusive), optional"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Position value range filter in USD - perps mode only"
      +      },
      +      "side": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Position side filter (Long/Short) - perps mode only"
      +      },
      +      "tokenAddress": {
      +        "type": "string"
      +      },
      +      "upnlUsd": {
      +        "anyOf": [
      +          {
      +            "description": "Numeric range where from_value and to_value are optional,\nallowing for open-ended ranges (e.g., only minimum or only maximum).",
      +            "properties": {
      +              "from": {
      +                "anyOf": [
      +                  {
      +                    "type": "number"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null,
      +                "description": "Minimum value (inclusive), optional"
      +              },
      +              "to": {
      +                "anyOf": [
      +                  {
      +                    "type": "number"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null,
      +                "description": "Maximum value (inclusive), optional"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Unrealized PnL range filter in USD - perps mode only"
      +      }
      +    },
      +    "required": [
      +      "tokenAddress"
      +    ],
      +    "type": "object"
      +  }
      +]
  5. Changed3 schema fields changed
    • removedInput schema / $defs
      Removed value: -{
      -  "OptionalNumericRange": {
      -    "description": "Numeric range where from_value and to_value are optional,\nallowing for open-ended ranges (e.g., only minimum or only maximum).",
      -    "properties": {
      -      "from": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Minimum value (inclusive), optional"
      -      },
      -      "to": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Maximum value (inclusive), optional"
      -      }
      -    },
      -    "type": "object"
      -  },
      -  "SMLabel": {
      -    "enum": [
      -      "30D Smart Trader",
      -      "90D Smart Trader",
      -      "180D Smart Trader",
      -      "All Time Smart Trader",
      -      "Fund",
      -      "Smart HL Perps Trader",
      -      "Any Smart Money"
      -    ],
      -    "type": "string"
      -  },
      -  "SegmentType": {
      -    "description": "Label types for holder analysis and filtering.",
      -    "enum": [
      -      "whale",
      -      "public_figure",
      -      "smart_money",
      -      "top_100_holders",
      -      "exchange"
      -    ],
      -    "type": "string"
      -  },
      -  "TokenCurrentTopHoldersRequest": {
      -    "description": "Complete request for token current top holders (flattened).",
      -    "properties": {
      -      "aggregateByEntity": {
      -        "default": false,
      -        "description": "Whether to aggregate data by entity instead of individual addresses",
      -        "type": "boolean"
      -      },
      -      "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"
      -      },
      -      "entryPrice": {
      -        "anyOf": [
      -          {
      -            "$ref": "#/$defs/OptionalNumericRange"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Entry price range filter - perps mode only"
      -      },
      -      "includeSmartMoneyLabels": {
      -        "anyOf": [
      -          {
      -            "items": {
      -              "$ref": "#/$defs/SMLabel"
      -            },
      -            "type": "array"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "List of smart money labels to filter by (default: empty list). Use 'Any Smart Money' to include all smart money types."
      -      },
      -      "labelType": {
      -        "$ref": "#/$defs/SegmentType",
      -        "default": "top_100_holders",
      -        "description": "Label type for holder analysis and filtering"
      -      },
      -      "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"
      -      },
      -      "order_by": {
      -        "default": "amount",
      -        "type": "string"
      -      },
      -      "order_by_direction": {
      -        "default": "desc",
      -        "enum": [
      -          "asc",
      -          "desc"
      -        ],
      -        "type": "string"
      -      },
      -      "page": {
      -        "default": 1,
      -        "type": "integer"
      -      },
      -      "positionValueUsd": {
      -        "anyOf": [
      -          {
      -            "$ref": "#/$defs/OptionalNumericRange"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Position value range filter in USD - perps mode only"
      -      },
      -      "side": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Position side filter (Long/Short) - perps mode only"
      -      },
      -      "tokenAddress": {
      -        "type": "string"
      -      },
      -      "upnlUsd": {
      -        "anyOf": [
      -          {
      -            "$ref": "#/$defs/OptionalNumericRange"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Unrealized PnL range filter in USD - perps mode only"
      -      }
      -    },
      -    "required": [
      -      "tokenAddress"
      -    ],
      -    "type": "object"
      -  }
      -}
    • addedInput schema / additionalProperties
      Added value: +false
    • changedInput schema / properties / request / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": true,
      -    "type": "object"
      -  },
      -  {
      -    "$ref": "#/$defs/TokenCurrentTopHoldersRequest"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": true,
      +    "type": "object"
      +  },
      +  {
      +    "description": "Complete request for token current top holders (flattened).",
      +    "properties": {
      +      "aggregateByEntity": {
      +        "default": false,
      +        "description": "Whether to aggregate data by entity instead of individual addresses",
      +        "type": "boolean"
      +      },
      +      "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"
      +      },
      +      "entryPrice": {
      +        "anyOf": [
      +          {
      +            "description": "Numeric range where from_value and to_value are optional,\nallowing for open-ended ranges (e.g., only minimum or only maximum).",
      +            "properties": {
      +              "from": {
      +                "anyOf": [
      +                  {
      +                    "type": "number"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null,
      +                "description": "Minimum value (inclusive), optional"
      +              },
      +              "to": {
      +                "anyOf": [
      +                  {
      +                    "type": "number"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null,
      +                "description": "Maximum value (inclusive), optional"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Entry price range filter - perps mode only"
      +      },
      +      "includeSmartMoneyLabels": {
      +        "anyOf": [
      +          {
      +            "items": {
      +              "enum": [
      +                "30D Smart Trader",
      +                "90D Smart Trader",
      +                "180D Smart Trader",
      +                "All Time Smart Trader",
      +                "Fund",
      +                "Smart HL Perps Trader",
      +                "Any Smart Money"
      +              ],
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "List of smart money labels to filter by (default: empty list). Use 'Any Smart Money' to include all smart money types."
      +      },
      +      "labelType": {
      +        "default": "top_100_holders",
      +        "description": "Label type 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"
      +      },
      +      "order_by": {
      +        "default": "amount",
      +        "type": "string"
      +      },
      +      "order_by_direction": {
      +        "default": "desc",
      +        "enum": [
      +          "asc",
      +          "desc"
      +        ],
      +        "type": "string"
      +      },
      +      "page": {
      +        "default": 1,
      +        "type": "integer"
      +      },
      +      "positionValueUsd": {
      +        "anyOf": [
      +          {
      +            "description": "Numeric range where from_value and to_value are optional,\nallowing for open-ended ranges (e.g., only minimum or only maximum).",
      +            "properties": {
      +              "from": {
      +                "anyOf": [
      +                  {
      +                    "type": "number"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null,
      +                "description": "Minimum value (inclusive), optional"
      +              },
      +              "to": {
      +                "anyOf": [
      +                  {
      +                    "type": "number"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null,
      +                "description": "Maximum value (inclusive), optional"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Position value range filter in USD - perps mode only"
      +      },
      +      "side": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Position side filter (Long/Short) - perps mode only"
      +      },
      +      "tokenAddress": {
      +        "type": "string"
      +      },
      +      "upnlUsd": {
      +        "anyOf": [
      +          {
      +            "description": "Numeric range where from_value and to_value are optional,\nallowing for open-ended ranges (e.g., only minimum or only maximum).",
      +            "properties": {
      +              "from": {
      +                "anyOf": [
      +                  {
      +                    "type": "number"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null,
      +                "description": "Minimum value (inclusive), optional"
      +              },
      +              "to": {
      +                "anyOf": [
      +                  {
      +                    "type": "number"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null,
      +                "description": "Maximum value (inclusive), optional"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Unrealized PnL range filter in USD - perps mode only"
      +      }
      +    },
      +    "required": [
      +      "tokenAddress"
      +    ],
      +    "type": "object"
      +  }
      +]
  6. Changed1 schema field changed
    • changedInput schema / $defs / TokenCurrentTopHoldersRequest / 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"
  7. Changed1 schema field changed
    • changedInput schema / $defs / TokenCurrentTopHoldersRequest / 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"
  8. First observed

TDQS

A5/5.0
Behavior5/5

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

With no annotations provided, the description carries full burden and excels: it discloses pagination ('upto 25 per page'), fallback behavior (wrong-mode orderBy falls back to holding_size), unsupported combinations for native tokens falling back to holding_size, and the SOL limitation. It also lists the exact columns returned for both modes, giving full visibility into the output.

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?

The description is long but highly structured, with headers ('Modes', 'Columns returned', 'Sorting Options', 'Examples', 'Native-token...') that make it scannable. The primary purpose sentence is front-loaded, and every section adds necessary operational detail; 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?

Given the tool's complexity (two modes, many columns, sorting restrictions), the description covers all essential context: mode selection, schema, sorting, filters, examples, and known limitations. An output schema exists, but the description still explains return columns and fallbacks, making the tool fully self-contained for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Despite a schema coverage of 0%, the description compensates richly: it explains the mode parameter semantics (including the default rule when token_address is a symbol), enumerates valid orderBy values per mode, explains labelType options and their caveats, and provides multiple concrete examples showing parameter combinations (e.g., orderBy, side, upnlUsd, positionValueUsd). This adds meaning far beyond the raw 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?

The description opens with a clear verb-object statement: 'Get upto 25 (per page) top holders information for a specific token.' It distinguishes from sibling tools by enumerating two distinct modes (onchain_tokens and perps) and detailing column sets, making it unambiguous what this tool does relative to others like token_info or token_flows.

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?

The description includes explicit when-not guidance ('Using labelType smart_money is not a good proxy... use it only if user explicitly requests it'), an explicit alternative for SOL ('Does not work for SOL in onchain_tokens mode... use perps mode instead'), and detailed restrictions with fallback behavior for native tokens. It clearly explains when to use each mode and how to adjust labelType/aggregateByEntity for advanced filters.

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.

TDQS

A3.6/5.0
Disambiguation4/5

Most tools have clearly distinct purposes (address vs token vs prediction market vs transaction). Overlapping tools like token_discovery_screener and nansen_score_top_tokens, or address_counterparties and address_related_addresses, are explicitly disambiguated with detailed usage guidance. A few tools (token_flows vs token_recent_flows_summary) require careful reading but are still distinguishable.

Naming Consistency4/5

Tool names consistently use snake_case with resource prefixes (address_*, token_*, prediction_market_*). Minor deviations include general_search, growth_chain_rank, and nansen_score_top_tokens, and some names like smart_traders_and_funds_perp_trades are verbose but still follow the pattern.

Tool Count3/5

38 tools is a heavy surface, but it matches Nansen's broad domain covering address analytics, token intelligence, prediction markets, and Hyperliquid perps. The count is on the high end and may overwhelm agents, but each tool appears to serve a distinct function within a reasonably scoped analytics platform.

Completeness5/5

The tool surface is comprehensive: address lifecycle (portfolio, transactions, balances, counterparties, PnL), token analytics (price, OHLCV, indicators, flows, transfers, holders, discovery), prediction markets (lookup, orderbook, trades, top holders, PnL), and specialized features (smart money, chain rankings). No obvious dead ends or missing critical operations are apparent.

Resources