Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,533Letters: 13Defects: 1,322counted 1 min ago
teppi

Server definition

Hash
sha256:a860a36e161107cf020908550de84b7459321cf685d4be5814b75b47fb694387
What it is
What a remote MCP server returned when asked what it offers: 50 tools

The blob, as servednamed by its sha256

{ "instructions": "Supported chains are near, monad, robinhood, solana, injective, ronin, evm, scroll, arbitrum, fantom, avalanche, tron, optimism, bitcoin, linea, unichain, sei, polygon, plasma, hyperliquid, ton, all, iotaevm, ethereum, base, mantle, sonic, zksync, hyperevm, mantra, sui, arc, bnb", "tools": [ { "description": "Get 25 (per page) addresses or entities with the most common interactions with input addresses\nDefault sort is net value transferred between them.\nAlso returns the top 3 tokens transferred by count for each counterparty\n\nNote: To get related wallets:\n- Focus on direct value transfers to get most likely addresses.\n- Include CEX deposit addresses (not withdrawal addresses!) as well.\n- Also go one level deeper:\n - Find addresses that interacted with the most likely addresses.\n - Find addresses that deposited to the same CEX deposit (NOT withdrawal!) addresses.\n- Address structure / string is not important, but the relationship is!\n\nSorting Options (all fields support \"ASC\"/\"DESC\"):\n Available for sorting: total_volume_usd, volume_in_usd, volume_out_usd, interaction_count\n\nExamples:\n# Query by single address\n{\n \"address\": \"0x123...\",\n \"sourceInput\": \"Combined\",\n \"groupBy\": \"wallet\",\n \"chain\": \"ethereum\",\n \"timeRange\": {\"from\": \"30D_AGO\", \"to\": \"NOW\"},\n \"order_by\": \"total_volume_usd\",\n \"order_by_direction\": \"desc\"\n}\n\n# Query by entity\n{\n \"entity_id\": \"Binance\",\n \"sourceInput\": \"Combined\",\n \"groupBy\": \"entity\",\n \"chain\": \"all\",\n \"timeRange\": {\"from\": \"7D_AGO\", \"to\": \"NOW\"}\n}", "inputSchema": { "additionalProperties": false, "properties": { "request": { "description": "Complete request for address counterparties (flattened).", "properties": { "address": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Single wallet address to analyze. REQUIRED if entity_id is not provided. Cannot be used together with entity_id." }, "chain": { "default": "all", "type": "string" }, "entity_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Entity name to analyze (e.g., 'Binance', 'Paradigm Fund'). REQUIRED if address is not provided. Cannot be used together with address." }, "groupBy": { "default": "wallet", "description": "Grouping method for counterparties analysis", "enum": [ "wallet", "entity" ], "type": "string" }, "orderBy": { "anyOf": [ { "enum": [ "interaction_count", "total_volume_usd", "volume_in_usd", "volume_out_usd" ], "type": "string" }, { "type": "null" } ], "default": null, "description": "Sort field. Pass an exact value above or None for default ('total_volume_usd')." }, "order_by_direction": { "default": "DESC", "enum": [ "ASC", "DESC", "asc", "desc" ], "type": "string" }, "page": { "default": 1, "type": "integer" }, "sourceInput": { "default": "Combined", "description": "Source input type for counterparties analysis", "enum": [ "Combined", "Tokens", "ETH" ], "type": "string" }, "timeRange": { "description": "Date range for counterparties analysis. Max window: 365 days — longer ranges are clamped to the most recent year (prevents timeouts in fast/expert mode) and the effective range is reported in the response. Prefer relative tokens (7D_AGO, 30D_AGO, 90D_AGO, 1Y_AGO).", "properties": { "from": { "description": "Start value: token (see above) or date (YYYY-MM-DD or ___-MM-DD).", "type": "string" }, "to": { "description": "End value: token (see above) or date (YYYY-MM-DD or ___-MM-DD).", "type": "string" } }, "required": [ "from", "to" ], "type": "object" } }, "required": [ "timeRange" ], "type": "object" } }, "required": [ "request" ], "type": "object" }, "name": "address_counterparties", "outputSchema": { "properties": { "result": { "type": "string" } }, "required": [ "result" ], "type": "object", "x-fastmcp-wrap-result": true } }, { "description": "Get the top counterparties of up to 10 wallet addresses in one call.\n\nEvery wallet gets its own counterparty list. The lists are NOT added\ntogether: the answer has one table for each wallet.\n\nUse this tool to compare wallets — counterparties that two wallets share,\na group of wallets that sends to the same CEX deposit address, or one fund\nwith many wallets. For one wallet, or for an entity name, use\naddress_counterparties.\n\nLimits:\n- Maximum 10 distinct wallet addresses for each call. Repeated addresses\n are removed.\n- Maximum 90 days for the date range. A wider range is rejected — make\n more than one call.\n- One chain family for each call: every address must be EVM, or every\n address must be Solana, and so on. Do not mix families.\n\nName a `chain` (for example ethereum) to read that chain only. Leave\n`chain` out to read every chain of the addresses' family at one time —\nthen a counterparty met on more than one chain gets one row for each\nchain, so do not add those rows together.\n\nSorting Options (all fields support \"ASC\"/\"DESC\"):\n Available for sorting: total_volume_usd, volume_in_usd, volume_out_usd,\n interaction_count. The sort is applied inside each wallet's block.\n\nExample (every key below is the name the request accepts, and the\naddresses are real — copy this shape as it stands):\n{\n \"walletAddresses\": [\n \"0x28c6c06298d514db089934071355e5743bf21d60\",\n \"0xd8da6bf26964af9d7eed9e03e53415d37aa96045\"\n ],\n \"chain\": \"ethereum\",\n \"timeRange\": {\"from\": \"30D_AGO\", \"to\": \"NOW\"},\n \"sourceInput\": \"Combined\",\n \"orderBy\": \"total_volume_usd\",\n \"orderByDirection\": \"DESC\",\n \"perPage\": 100\n}", "inputSchema": { "additionalProperties": false, "properties": { "request": { "additionalProperties": false, "description": "Complete request for batch address counterparties (flattened).\n\nWallet addresses only. Use AddressCounterpartiesRequest for one wallet or\nfor an entity name.", "properties": { "chain": { "default": "all", "description": "Chain to read. Name one chain (for example ethereum or solana) to read that chain only. Leave this out to read every chain of the addresses' family at one time — with 'all', a counterparty met on more than one chain gets one row for each chain, so do not add the rows together. Supported chains: all, arbitrum, avalanche, base, bitcoin, bnb, ethereum, hyperevm, injective, iotaevm, linea, mantle, mantra, monad, near, optimism, plasma, polygon, robinhood, sei, solana, sonic, sui, ton, tron.", "type": "string" }, "filters": { "anyOf": [ { "additionalProperties": false, "description": "Row filters for batch counterparties. Each filter drops counterparty rows.", "properties": { "excludeSmartMoneyLabels": { "anyOf": [ { "items": { "enum": [ "30D Smart Trader", "90D Smart Trader", "180D Smart Trader", "Smart Trader", "Smart HL Perps Trader", "Fund", "Public Figure", "Exchange", "Whale", "First Mover LP", "First Mover Staking", "Profitable LP", "Early MAGIC Miner", "BananaGun Bot User", "Top BananaGun Bot User", "Maestro Bot User", "Top Maestro Bot User" ], "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Drop counterparties that carry one of these labels" }, "includeSmartMoneyLabels": { "anyOf": [ { "items": { "enum": [ "30D Smart Trader", "90D Smart Trader", "180D Smart Trader", "Smart Trader", "Smart HL Perps Trader", "Fund", "Public Figure", "Exchange", "Whale", "First Mover LP", "First Mover Staking", "Profitable LP", "Early MAGIC Miner", "BananaGun Bot User", "Top BananaGun Bot User", "Maestro Bot User", "Top Maestro Bot User" ], "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Keep only counterparties that carry one of these labels" }, "interactionCount": { "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": "Keep counterparties whose interaction count is in this range" }, "totalVolumeUsd": { "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": "Keep counterparties whose total USD volume is in this range" }, "volumeInUsd": { "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": "Keep counterparties whose incoming USD volume is in this range" }, "volumeOutUsd": { "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": "Keep counterparties whose outgoing USD volume is in this range" } }, "type": "object" }, { "type": "null" } ], "default": null, "description": "Optional filters applied to each counterparty row" }, "orderBy": { "anyOf": [ { "enum": [ "interaction_count", "total_volume_usd", "volume_in_usd", "volume_out_usd" ], "type": "string" }, { "type": "null" } ], "default": null, "description": "Sort field applied inside each wallet's block. Pass an exact value above or None for default ('total_volume_usd')." }, "orderByDirection": { "default": "DESC", "description": "Sort direction: ASC or DESC", "enum": [ "ASC", "DESC", "asc", "desc" ], "type": "string" }, "page": { "default": 1, "description": "Page number, starting at 1", "minimum": 1, "type": "integer" }, "perPage": { "default": 100, "description": "Rows per page across all wallets in the batch, from 1 to 1000. The rows of one wallet stay together, so keep this high enough to cover every wallet you asked for.", "maximum": 1000, "minimum": 1, "type": "integer" }, "sourceInput": { "default": "Combined", "description": "Source input type for counterparties analysis", "enum": [ "Combined", "Tokens", "ETH" ], "type": "string" }, "timeRange": { "description": "Date range for counterparties analysis. Max window: 90 days — a longer range is rejected, so split it into several calls. Prefer relative tokens (7D_AGO, 30D_AGO, 90D_AGO).", "properties": { "from": { "description": "Start value: token (see above) or date (YYYY-MM-DD or ___-MM-DD).", "type": "string" }, "to": { "description": "End value: token (see above) or date (YYYY-MM-DD or ___-MM-DD).", "type": "string" } }, "required": [ "from", "to" ], "type": "object" }, "walletAddresses": { "description": "Wallet addresses to query, maximum 10 distinct addresses. Each wallet gets its own counterparty list — the results are NOT added together. Repeated addresses are removed. Every address must be on the same chain family: all EVM, or all Solana, or all Bitcoin. Do not mix families in one call.", "items": { "type": "string" }, "minItems": 1, "type": "array" } }, "required": [ "walletAddresses", "timeRange" ], "type": "object" } }, "required": [ "request" ], "type": "object" }, "name": "address_counterparties_batch", "outputSchema": { "properties": { "result": { "type": "string" } }, "required": [ "result" ], "type": "object", "x-fastmcp-wrap-result": true } }, { "description": "Get a wallet's individual trades on a single chain — DEX swaps (spot) or\nHyperliquid perpetual trades, newest first. Wallet-centric companion to\n`token_dex_trades` (which is token-centric).\n\nChain: one per call ('all'/'evm' unsupported). EVM wallets MUST pass `chain`\nexplicitly (e.g. ethereum, base, arbitrum); non-EVM (e.g. Solana) is\nauto-detected. Use 'hyperliquid' for Hyperliquid perpetual trades\n(requires an EVM address). Call once per chain to span multiple networks.\n\nSpot columns: Time, Bought / Bought Amount, Sold / Sold Amount, Value USD, Tx Hash.\nPerp columns: Time, Token, Side, Action, Size, Price, Value USD, Fee USD,\nClosed PnL, Tx Hash.\nSort (`order_by`, asc/desc): timestamp, value. Filter by `valueUsd`,\n`tokenAddressBought`, or `tokenAddressSold`. On spot chains the token\nfields take contract addresses. On Hyperliquid they take perp symbols and\nselect Long or Short trades respectively; only one token field is allowed.\n\nExample:\n {\n \"address\": \"0x1f2f10d1c40777ae1da742455c65828ff36df387\",\n \"chain\": \"ethereum\",\n \"dateRange\": {\"from\": \"7D_AGO\", \"to\": \"NOW\"}\n }", "inputSchema": { "additionalProperties": false, "properties": { "request": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "description": "Complete request for an address' DEX trades (flattened).", "properties": { "address": { "description": "The wallet address whose DEX trades to fetch", "type": "string" }, "chain": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Single chain to query (e.g. ethereum, base, arbitrum, solana). This endpoint queries ONE chain at a time and does NOT accept 'all' or 'evm'. For EVM wallets a concrete chain is REQUIRED (they trade across many chains); non-EVM addresses are auto-detected from the address. Use 'hyperliquid' for Hyperliquid perpetual trades (requires an EVM address)." }, "dateRange": { "description": "Date range for the trades (defaults to last 7 days). Use ALL_TIME for full history (start 2009-01-03).", "properties": { "from": { "description": "Start value: token (see above) or date (YYYY-MM-DD or ___-MM-DD).", "type": "string" }, "to": { "description": "End value: token (see above) or date (YYYY-MM-DD or ___-MM-DD).", "type": "string" } }, "required": [ "from", "to" ], "type": "object" }, "orderBy": { "anyOf": [ { "enum": [ "timestamp", "value" ], "type": "string" }, { "type": "null" } ], "default": null, "description": "Sort field. Pass an exact value above or None for default ('timestamp')." }, "order_by_direction": { "default": "DESC", "enum": [ "ASC", "DESC", "asc", "desc" ], "type": "string" }, "page": { "default": 1, "type": "integer" }, "tokenAddressBought": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Token bought filter. On spot chains, use the token contract address. On Hyperliquid, use a perp symbol (e.g. BTC, HYPE, xyz:NVDA); returns Long-side trades." }, "tokenAddressSold": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Token sold filter. On spot chains, use the token contract address. On Hyperliquid, use a perp symbol (e.g. BTC, HYPE, xyz:NVDA); returns Short-side trades." }, "valueUsd": { "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": "Filter trades by USD value (open-ended min/max allowed)" } }, "required": [ "address" ], "type": "object" } ] } }, "required": [ "request" ], "type": "object" }, "name": "address_dex_trades", "outputSchema": { "properties": { "result": { "type": "string" } }, "required": [ "result" ], "type": "object", "x-fastmcp-wrap-result": true } }, { "description": "Get the first address that ever funded an EVM wallet, with the funding transaction hash, chain and timestamp.\nUse this to attribute an unlabelled wallet to a known entity — the first funder is often a CEX withdrawal or a wallet the same owner already controls. The funder is resolved across all chains, so no chain argument is needed.", "inputSchema": { "additionalProperties": false, "properties": { "request": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "description": "Request for the first address that funded a wallet (flattened).", "properties": { "address": { "description": "EVM address to look up the first funder for", "type": "string" } }, "required": [ "address" ], "type": "object" } ] } }, "required": [ "request" ], "type": "object" }, "name": "address_first_funder", "outputSchema": { "properties": { "result": { "type": "string" } }, "required": [ "result" ], "type": "object", "x-fastmcp-wrap-result": true } }, { "description": "Get historical native coin & token balances of address.", "inputSchema": { "additionalProperties": false, "properties": { "request": { "description": "Complete request for address historical balances (flattened).", "properties": { "address": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Single wallet address to analyze. REQUIRED if entity_id is not provided. Cannot be used together with entity_id." }, "chain": { "default": "all", "type": "string" }, "entity_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Entity name to analyze (e.g., 'Binance', 'Paradigm Fund'). REQUIRED if address is not provided. Cannot be used together with address." }, "lookbackDays": { "anyOf": [ { "enum": [ 1, 7, 30, 90, 120, 365, 730 ], "type": "integer" }, { "const": "ALL_TIME" } ], "default": 1, "description": "Days to look back for historical balances. Use 1, 7, 30, 90, 120, 365, or 730. Use ALL_TIME for full history." }, "suspiciousFilter": { "default": "on", "description": "Whether to exclude suspicious tokens", "enum": [ "on", "off" ], "type": "string" } }, "type": "object" } }, "required": [ "request" ], "type": "object" }, "name": "address_historical_balances", "outputSchema": { "properties": { "result": { "type": "string" } }, "required": [ "result" ], "type": "object", "x-fastmcp-wrap-result": true } }, { "description": "Get the standard labels for one wallet address.\n\nThis tool returns identity, behavioural, and protocol labels. It does not\nreturn premium labels.", "inputSchema": { "additionalProperties": false, "properties": { "request": { "additionalProperties": false, "description": "Request for the standard labels of one wallet address.", "properties": { "address": { "description": "Wallet address to get standard labels for", "type": "string" }, "chain": { "default": "all", "description": "Chain to search. Use 'all' to search compatible chains.", "enum": [ "all", "arbitrum", "arc", "avalanche", "base", "bnb", "ethereum", "hyperevm", "hyperliquid", "iotaevm", "linea", "mantle", "monad", "optimism", "plasma", "polygon", "robinhood", "sei", "solana", "sonic", "tron" ], "type": "string" }, "page": { "default": 1, "description": "Page number, starting at 1", "minimum": 1, "type": "integer" }, "perPage": { "default": 100, "description": "Labels per page, from 1 to 100", "maximum": 100, "minimum": 1, "type": "integer" } }, "required": [ "address" ], "type": "object" } }, "required": [ "request" ], "type": "object" }, "name": "address_labels", "outputSchema": { "properties": { "result": { "type": "string" } }, "required": [ "result" ], "type": "object", "x-fastmcp-wrap-result": true } }, { "description": "Get a wallet's Hyperliquid positions and liquidation risk without a portfolio lookup.", "inputSchema": { "additionalProperties": false, "properties": { "request": { "description": "Complete request for a wallet's open Hyperliquid perpetual positions.", "properties": { "address": { "description": "EVM wallet address to analyze on Hyperliquid.", "type": "string" }, "filters": { "anyOf": [ { "additionalProperties": false, "description": "Filters for a wallet's open Hyperliquid perpetual positions.", "properties": { "positionType": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Filter by position type, such as oneWay." }, "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": "Filter by absolute position value in USD." }, "tokenSymbol": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Filter by a Hyperliquid perp symbol, such as BTC or HYPE." }, "unrealizedPnlUsd": { "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": "Filter by unrealized profit or loss in USD." } }, "type": "object" }, { "type": "null" } ], "default": null, "description": "Optional filters for token, position type, value, or unrealized PnL." }, "orderBy": { "anyOf": [ { "items": { "description": "One sort rule for a wallet's open Hyperliquid perpetual positions.", "properties": { "direction": { "description": "Sort direction. Use DESC for the largest values first.", "enum": [ "ASC", "DESC", "asc", "desc" ], "type": "string" }, "field": { "description": "Position field to sort by.", "enum": [ "leverage_value", "position_value_usd", "entry_price_usd", "liquidation_price_usd", "unrealized_pnl_usd", "size", "token_symbol", "position_type" ], "type": "string" } }, "required": [ "field", "direction" ], "type": "object" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Optional sort rules. Each item has field and direction. Valid fields: leverage_value, position_value_usd, entry_price_usd, liquidation_price_usd, unrealized_pnl_usd, size, token_symbol, position_type. Defaults to position value descending." } }, "required": [ "address" ], "type": "object" } }, "required": [ "request" ], "type": "object" }, "name": "address_perp_positions", "outputSchema": { "properties": { "result": { "type": "string" } }, "required": [ "result" ], "type": "object", "x-fastmcp-wrap-result": true } }, { "description": "Get comprehensive portfolio overview for a wallet address or entity.\n\nHyperliquid perpetual positions include liquidation prices to support risk analysis workflows.\n\nFor wallet addresses, supports different modes:\n- 'fast-mode-default': Wallet balances + Hyperliquid positions (skip defi, for fast mode only)\n- 'all': Wallet balances + DeFi positions + Hyperliquid positions\n- 'wallet_balances': Only token balances (tokens and native coins across all chains)\n- 'defi': Only DeFi positions (lending, staking, LP tokens, etc., excluding Hyperliquid)\n- 'hyperliquid': Only Hyperliquid data — perp positions (with liquidation prices and margin summary) plus HL spot wallet balances\n\nFor entities (e.g., \"Binance\", \"Paradigm Fund\"), only on-chain token balances\nare returned, aggregated across all addresses associated with the entity.\n\nThis tool provides flexible portfolio analysis in a single request,\nallowing users to focus on specific aspects of their holdings.\n\nThe output is pre-formatted markdown that should be presented exactly as returned,\npreserving all tables, sections, and formatting without reinterpretation.\n\nExample Usage:\n Get full comprehensive portfolio for a wallet:\n ```\n {\n \"walletAddress\": \"0x28c6c06298d514db089934071355e5743bf21d60\",\n \"mode\": \"all\"\n }\n ```\n\n Get only DeFi positions (returns raw JSON):\n ```\n {\n \"walletAddress\": \"0x28c6c06298d514db089934071355e5743bf21d60\",\n \"mode\": \"defi\"\n }\n ```\n\n Get only Hyperliquid positions (returns raw JSON):\n ```\n {\n \"walletAddress\": \"0x28c6c06298d514db089934071355e5743bf21d60\",\n \"mode\": \"hyperliquid\"\n }\n ```\n\n Get token balances for an entity:\n ```\n {\n \"entity_id\": \"Binance\"\n }\n ```", "inputSchema": { "additionalProperties": false, "properties": { "request": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "description": "Complete request for Address Portfolio endpoint (flattened).\n\nIMPORTANT: Exactly one of 'wallet_address' or 'entity_id' must be provided (not both, not neither).", "properties": { "chain": { "default": "all", "type": "string" }, "entity_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Entity name to analyze (e.g., 'Binance', 'Paradigm Fund'). For entities, only token balances are returned. REQUIRED if wallet_address is not provided. Cannot be used together with wallet_address." }, "mode": { "default": "fast-mode-default", "description": "Portfolio mode: 'fast-mode-default' (default - wallet_balances + hyperliquid), 'all' (wallet_balances + defi + hyperliquid), 'wallet_balances' (only token balances), 'defi' (only DeFi positions), 'hyperliquid' (only Hyperliquid positions)", "type": "string" }, "walletAddress": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Wallet address to analyze comprehensive portfolio for. REQUIRED if entity_id is not provided. Cannot be used together with entity_id." } }, "type": "object" } ] } }, "required": [ "request" ], "type": "object" }, "name": "address_portfolio", "outputSchema": { "properties": { "result": { "type": "string" } }, "required": [ "result" ], "type": "object", "x-fastmcp-wrap-result": true } }, { "description": "Get information about related addresses of an input address.\n\nNote: This only includes the the \"special\" connections 'First Funder', 'Signer', 'Previous Signer', 'Multisig Signer of', 'Previous Multisig Signer of', 'Deployed via', 'Deployed by', 'Deployed Contract', 'Created Contract', 'Created by'.\nTo get related wallets, also check address counterparties.\nFirst funder exchange withdrawal address does usually NOT belong to the same entity as the address, only deposit addresses. Only information is that it has been funded by the exchange.", "inputSchema": { "additionalProperties": false, "properties": { "request": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "description": "Complete request for address related addresses (flattened).", "properties": { "address": { "description": "Wallet address to analyze for related addresses", "type": "string" }, "chain": { "default": "all", "type": "string" } }, "required": [ "address" ], "type": "object" } ], "description": "AddressRelatedAddressesRequest containing parameters and pagination settings" } }, "required": [ "request" ], "type": "object" }, "name": "address_related_addresses", "outputSchema": { "description": "Structured result of `address_related_addresses`.", "properties": { "address": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Address" }, "chains": { "description": "Chains that were queried.", "items": { "type": "string" }, "title": "Chains", "type": "array" }, "message": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Notice or error text when the tool returns no data rows.", "title": "Message" }, "rows": { "items": { "description": "One address connected to the queried address.", "properties": { "address": { "title": "Address", "type": "string" }, "address_label": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Address Label" }, "block_timestamp": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Block Timestamp" }, "chain": { "title": "Chain", "type": "string" }, "relation": { "description": "How the address is connected, e.g. First Funder, Signer, Deployed by.", "title": "Relation", "type": "string" }, "transaction_hash": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Transaction Hash" } }, "required": [ "address", "chain", "relation" ], "title": "RelatedAddressRow", "type": "object" }, "title": "Rows", "type": "array" } }, "title": "AddressRelatedAddressesOutput", "type": "object" } }, { "description": "Get list of 20 MOST RECENT transactions made by an address (per page).\nOnly the latest transactions according to the date range are returned.", "inputSchema": { "additionalProperties": false, "properties": { "request": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "description": "Complete request for address transactions (flattened).", "properties": { "address": { "description": "Single address to analyze", "type": "string" }, "chain": { "default": "evm", "type": "string" }, "dateRange": { "description": "Date range for transactions (defaults to last 30 days)", "properties": { "from": { "description": "Start value: token (see above) or date (YYYY-MM-DD or ___-MM-DD).", "type": "string" }, "to": { "description": "End value: token (see above) or date (YYYY-MM-DD or ___-MM-DD).", "type": "string" } }, "required": [ "from", "to" ], "type": "object" }, "hideSpamToken": { "default": true, "description": "Remove suspicious tokens from transaction list", "type": "boolean" }, "page": { "default": 1, "type": "integer" } }, "required": [ "address" ], "type": "object" } ] } }, "required": [ "request" ], "type": "object" }, "name": "address_transactions", "outputSchema": { "properties": { "result": { "type": "string" } }, "required": [ "result" ], "type": "object", "x-fastmcp-wrap-result": true } }, { "description": "Search Nansen's entity names by a partial name and get back the exact entity names that match.\nUse this when a tool needs an exact entity name and the user gave an approximate one (e.g. \"binance\" -> \"Binance 14\"). Matching is case-insensitive and matches anywhere in the name. For tokens or addresses use `general_search` instead.", "inputSchema": { "additionalProperties": false, "properties": { "max_results": { "default": 25, "description": "Maximum number of entity names to return (default 25)", "type": "integer" }, "search_query": { "description": "Partial entity name, at least 2 characters", "type": "string" } }, "required": [ "search_query" ], "type": "object" }, "name": "entity_name_search", "outputSchema": { "properties": { "result": { "type": "string" } }, "required": [ "result" ], "type": "object", "x-fastmcp-wrap-result": true } }, { "description": "General search tool. This is your FIRST entry point to look up for possible tokens, entities, and addresses related to a query.\n\nDo NOT use this tool for prediction markets. For Polymarket names, topics,\nevent slugs, or URLs, use `prediction_market_lookup` instead.\n\nNansen MCP does not support NFTs, however check using this tool if the query relates to a token. Regular tokens and NFTs can have the same name.\n\nThis tool allows you to:\n- Check if a (fungible) token exists by name, symbol, or contract address\n- Search information about a token\n - Current price in USD\n - Trading volume\n - Contract address and chain information\n - Market cap and supply data when available\n- Search information about an entity\n- Find the address behind a Nansen label (public figure, fund, exchange wallet)\n- Find Nansen labels of an address (EOA) or resolve a domain (.eth, .sol)", "inputSchema": { "additionalProperties": false, "properties": { "chain": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Optional chain filter to narrow down token results to specific blockchain. If not further specified, leave it as None. If a chain is specified, ALWAYS use this parameter instead of adding chain name to the query string.\n Valid values: \"ethereum\", \"solana\", \"base\", \"bnb\", \"polygon\", \"arbitrum\",\n \"avalanche\", \"optimism\", etc." }, "max_results": { "default": 25, "description": "Maximum number of results (default: 25, max: 25)", "type": "integer" }, "query": { "description": "The search term - token symbol, name, or address. In stock mode,\n pass only the company name or exchange ticker. Do not add words\n such as \"stock\", \"ticker\", or a chain name.", "type": "string" }, "result_type": { "default": "any", "description": "Type filter - \"token\", \"entity\", \"wallet\", \"eoa\", \"stock\", or \"any\"", "enum": [ "token", "entity", "wallet", "eoa", "stock", "any" ], "type": "string" } }, "required": [ "query" ], "type": "object" }, "name": "general_search", "outputSchema": { "properties": { "result": { "type": "string" } }, "required": [ "result" ], "type": "object", "x-fastmcp-wrap-result": true } }, { "description": "Get chain growth rankings by active addresses, transactions, gas fees and DEX volume.", "inputSchema": { "additionalProperties": false, "properties": { "request": { "description": "GrowthChainRankRequest containing parameters and pagination settings", "properties": { "chain_type": { "default": "all", "description": "Type of chains to include in growth analysis", "enum": [ "all", "evm" ], "type": "string" }, "time_frame": { "default": "7", "description": "Time frame for growth analysis", "enum": [ "7", "30", "365" ], "type": "string" } }, "type": "object" } }, "required": [ "request" ], "type": "object" }, "name": "growth_chain_rank", "outputSchema": { "properties": { "result": { "type": "string" } }, "required": [ "result" ], "type": "object", "x-fastmcp-wrap-result": true } }, { "description": "Get Hyperliquid perpetual futures trader leaderboard with performance metrics.\n\nReturns:\n Trader performance rankings as markdown.\n\n Columns returned:\n - **Address** / **Label**: trader wallet, and its Nansen label if any\n - **Total PnL** (USD): realized + unrealized over the date range\n - **Realized PnL** (USD): net, from positions closed in the range. Being a net total it shows no per-trade outcome, so no win rate can be derived from it or any other column here\n - **Unrealized PnL** (USD): on positions still open, at the current mark price\n - **ROI** (%): Total PnL / (traded notional + open notional) — PnL per dollar traded, not return on capital\n - **Volume** (USD): traded notional; both fills of a position count\n - **Trades**: number of fills\n - **Account Value** (USD): only available for the top 500K traders\n\nThis is an overview of top traders and their headline stats. For a trader's\nopen positions, call `address_portfolio` with `mode='hyperliquid'`.\n\n**Sorting**: total_pnl, realized_pnl_usd, unrealized_pnl_usd, roi, volume_usd, total_trades, account_value\n\n**Filtering** (from/to): totalPnl (USD), accountValue (USD), roi (a fractional ratio, not the percent shown — pass 0.1 for \"10% or better\", not 10)\n\nExample:\n ```\n {\n \"date\": {\"from\": \"7D_AGO\", \"to\": \"NOW\"},\n \"accountValue\": {\"from\": 100000, \"to\": 1000000},\n \"totalPnl\": {\"from\": 10000},\n \"order_by\": \"total_pnl\",\n \"orderByDirection\": \"DESC\"\n }\n ```\n Rank by traded volume instead: `\"order_by\": \"volume_usd\"`\n\nNotes:\n - Hyperliquid perpetual futures only\n - Null/empty means data is not available — do not read it as zero", "inputSchema": { "additionalProperties": false, "properties": { "request": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "description": "Request for Hyperliquid perp leaderboard (flattened).", "properties": { "accountValue": { "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": "Filter by account value (from/to)" }, "date": { "description": "Date range", "properties": { "from": { "description": "Start value: token (see above) or date (YYYY-MM-DD or ___-MM-DD).", "type": "string" }, "to": { "description": "End value: token (see above) or date (YYYY-MM-DD or ___-MM-DD).", "type": "string" } }, "required": [ "from", "to" ], "type": "object" }, "orderByDirection": { "default": "DESC", "description": "Sort direction: 'ASC' or 'DESC' (case-insensitive).", "enum": [ "ASC", "DESC", "asc", "desc" ], "type": "string" }, "order_by": { "anyOf": [ { "enum": [ "total_pnl", "realized_pnl_usd", "unrealized_pnl_usd", "roi", "volume_usd", "total_trades", "account_value" ], "type": "string" }, { "type": "null" } ], "default": null, "description": "Sort field. Pass an exact value above or None for default ('total_pnl')." }, "page": { "default": 1, "type": "integer" }, "roi": { "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": "Filter by ROI (from/to)" }, "totalPnl": { "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": "Filter by total PnL (from/to)" } }, "required": [ "date" ], "type": "object" } ] } }, "required": [ "request" ], "type": "object" }, "name": "hyperliquid_leaderboard", "outputSchema": { "properties": { "result": { "type": "string" } }, "required": [ "result" ], "type": "object", "x-fastmcp-wrap-result": true } }, { "description": "Discover and filter a daily list of attractive tokens using Nansen Score Indicators weighted by coefficients (= Performance Score).\n\nUse this tool when you don't know which tokens to buy and need recommendations based on backtested indicators.\nFor specific token analysis (e.g., \"should I buy AAVE?\"), use token_quant_scores instead.\n\n**When to use this tool vs token_discovery_screener**:\n- Use **this tool** when you want **pre-scored buying recommendations** without specifying criteria. It answers \"what should I buy?\" by returning tokens that already meet a quantitative buying threshold (Performance Score ≥15) based on alpha indicators like price momentum, chain fees, and protocol fees. Data is updated in batches.\n- Use **token_discovery_screener** when you want **live data** or to **explore tokens by specific criteria** like sectors (e.g., \"AI memecoins\"), token age (e.g., \"new launches\"), smart money activity, or custom volume/liquidity thresholds. It's a filtering tool with real-time metrics where you define what you're looking for.\n\nReturns tokens pre-filtered by: performance_score >= 15 (buying threshold).\n\n**Example queries**: \"what tokens should I buy?\", \"which tokens look good?\", \"best tokens to buy today\"\n\n**Scoring:**\n- **Performance Score** (range -60 to +75): Higher = better alpha opportunity. **Buy threshold: ≥15**\n- **Risk Score** (range -60 to +80): Higher = safer token. >0 indicates low to medium risk.\n\nEvery time you give the Performance Score to the user, explain the scoring thresholds above. Same for the Risk Score. Every time quote the underlying indicators that contributed the most to the Performance/ Risk score and recall their definition to the user.\n\nReturns:\n A list of tokens with the highest Performance Score as markdown.\n\n Core fields: Token Address, Token Symbol, Chain, Performance Score, Risk Score.\n Indicator columns are included dynamically based on data availability (columns with all zeros are excluded).", "inputSchema": { "additionalProperties": false, "properties": { "request": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "description": "Request model for Nansen Score Top Tokens endpoint (flattened).", "properties": { "marketCapGroup": { "anyOf": [ { "enum": [ "lowcap", "midcap", "largecap" ], "type": "string" }, { "type": "null" } ], "default": null, "description": "Filter by market cap group: 'lowcap' (<$100M), 'midcap' ($100M-$1B), 'largecap' (>$1B). Default: all groups" } }, "type": "object" } ] } }, "required": [ "request" ], "type": "object" }, "name": "nansen_score_top_tokens", "outputSchema": { "properties": { "result": { "type": "string" } }, "required": [ "result" ], "type": "object", "x-fastmcp-wrap-result": true } }, { "description": "Prediction market PnL breakdown for a Polygon wallet, market by market.\n\n**When to use:**\n- Wallet-level Polymarket track record with per-market cost and proceeds.\n\n**Key fields:**\n- `Total PnL USD` = redemption + unrealized value + sell proceeds − buy\n cost, for that market only.\n- `Net Buy Cost USD` is what the wallet paid for shares.\n- `Net Sell Proceeds USD` is what it received for shares sold before\n resolution.\n- `Redemption Value USD` is the payout collected after the market settled.\n- `Unrealized Value USD` is the marked value of shares still held.\n- `Resolved` says whether the market has settled.\n\n**Pitfalls:**\n- Each row covers one market. Sum the rows for a wallet total, or use\n `prediction_market_address_summary` for the aggregate.\n- The API gives no ROI or share count here. Do not state them.\n- Blank PnL fields mean unavailable data, not zero.", "inputSchema": { "additionalProperties": false, "properties": { "request": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "additionalProperties": false, "description": "Request for address-level prediction market PnL.", "properties": { "address": { "description": "Polygon wallet address to analyze.", "type": "string" }, "page": { "default": 1, "description": "Page number for paginated results.", "minimum": 1, "type": "integer" } }, "required": [ "address" ], "type": "object" } ] } }, "required": [ "request" ], "type": "object" }, "name": "prediction_market_address_pnl", "outputSchema": { "properties": { "result": { "type": "string" } }, "required": [ "result" ], "type": "object", "x-fastmcp-wrap-result": true } }, { "description": "Prediction market summary metrics for a Polygon wallet.\n\n**When to use:**\n- First wallet-level Polymarket tool for a quick trader overview.\n- Use before detailed address trades/PnL when the user asks for a general\n wallet profile, activity summary, or whether a wallet is active on\n Polymarket.\n\n**Key fields:**\n- `Markets Traded` and `Markets Won` are lifetime counts; `Win Rate` is\n won / traded.\n- `Total PnL USD` = realized + unrealized.\n- `First Seen` and `Wallet Age (Days)` show how long the wallet has been\n active on Polymarket.\n\n**Pitfalls:**\n- The API gives no trade count, volume, or ROI here. Do not state them.\n For per-market cost and proceeds use `prediction_market_address_pnl`.\n- Blank PnL fields mean unavailable data, not zero.", "inputSchema": { "additionalProperties": false, "properties": { "request": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "additionalProperties": false, "description": "Request for address-level prediction market summary metrics.", "properties": { "address": { "description": "Polygon wallet address to analyze.", "type": "string" }, "page": { "default": 1, "description": "Page number for paginated results.", "minimum": 1, "type": "integer" } }, "required": [ "address" ], "type": "object" } ] } }, "required": [ "request" ], "type": "object" }, "name": "prediction_market_address_summary", "outputSchema": { "properties": { "result": { "type": "string" } }, "required": [ "result" ], "type": "object", "x-fastmcp-wrap-result": true } }, { "description": "Prediction market trade history for a Polygon wallet.\n\n**Key fields:**\n- `Share Size` is quantity traded in the displayed outcome side.\n- `Value USD` applies to that row only, not the whole transaction.\n\n**Pitfalls:**\n- Use this for wallet trade activity, not profitability.", "inputSchema": { "additionalProperties": false, "properties": { "request": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "additionalProperties": false, "description": "Request for address-level prediction market trades.", "properties": { "address": { "description": "Polygon wallet address to analyze.", "type": "string" }, "dateRange": { "anyOf": [ { "description": "Date range via tokens or dates.\nTokens: NOW, ALL_TIME, XMIN_AGO, XD_AGO, XH_AGO; THIS_YEAR_START, THIS_QUARTER_START, THIS_MONTH_START, THIS_WEEK_START, TODAY_START; LAST_WEEK_START/END, LAST_MONTH_START/END, LAST_QUARTER_START/END, LAST_YEAR_START/END.\nALL_TIME is full history. It resolves to 2009-01-03. Use ALL_TIME instead of a very large day count.\nWeek starts Monday. Quarters are calendar. Dates: YYYY-MM-DD or ___-MM-DD (year omitted).\nPlease check detailed system instructions for more information.", "properties": { "from": { "description": "Start value: token (see above) or date (YYYY-MM-DD or ___-MM-DD).", "type": "string" }, "to": { "description": "End value: token (see above) or date (YYYY-MM-DD or ___-MM-DD).", "type": "string" } }, "required": [ "from", "to" ], "type": "object" }, { "type": "null" } ], "default": null, "description": "Optional date range for address trades. Defaults to the last 30 days." }, "page": { "default": 1, "description": "Page number for paginated results.", "minimum": 1, "type": "integer" } }, "required": [ "address" ], "type": "object" } ] } }, "required": [ "request" ], "type": "object" }, "name": "prediction_market_address_trades", "outputSchema": { "properties": { "result": { "type": "string" } }, "required": [ "result" ], "type": "object", "x-fastmcp-wrap-result": true } }, { "description": "Search Polymarket for events and markets by name, topic, URL, or slug.\n\n**PM building blocks:**\n- An **event** is a grouped prediction topic containing many child markets.\n- A **market** is one tradable outcome with its own `marketId`.\n- Example: `2026 NCAA Tournament Winner` is an event; `Will Duke win the\n 2026 NCAA Tournament?` is a market. Detail tools require `marketId`,\n not `eventId`.\n\n**When to use:**\n- First tool when the user asks about a specific PM topic, event, slug, or\n Polymarket URL but does not provide `marketId`.\n- Optionally provide `queryVariant` as a cleaner short keyword version.\n- Set `includeEventMarkets` to true to also return child markets for the\n best-matching event.\n- Do NOT use `general_search` for prediction markets.\n- Results include current outcome prices, last trade price, and bid/ask\n inline — for a quick probability check you may not need\n `prediction_market_ohlcv`. For price *history* or dated moves, still\n use `prediction_market_ohlcv`.\n\n**Query tips:**\n- Uses Polymarket's search API — natural language queries work well.\n- Prefer short 1–3 keyword queries for best results.\n- Avoid broad multi-topic queries like `bitcoin ethereum politics`.\n\n**Output rules:**\n- If lookup returns no suitable market or a mismatched timeframe, say so\n explicitly — do not silently substitute a nearby market.", "inputSchema": { "additionalProperties": false, "properties": { "request": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "additionalProperties": false, "description": "Request for resolving prediction market names, events, slugs, or URLs.", "properties": { "includeEventMarkets": { "default": true, "description": "When true, also include child markets for the best-matching event. Useful for event-level questions where market detail tools need the full market slate.", "type": "boolean" }, "maxCandidates": { "default": 5, "description": "Maximum number of market and event candidates to return.", "maximum": 10, "minimum": 1, "type": "integer" }, "maxEventMarkets": { "default": 12, "description": "Maximum number of child markets to show when includeEventMarkets is true. The output always states how many of the event's total markets are shown.", "maximum": 50, "minimum": 1, "type": "integer" }, "page": { "default": 1, "description": "Page number for paginated results.", "minimum": 1, "type": "integer" }, "query": { "description": "Prediction market name, topic, Polymarket URL, or URL slug to resolve to candidate market IDs.", "minLength": 1, "type": "string" }, "queryVariant": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Optional second short query variant to search alongside query, such as a cleaner keyword version of a slug." }, "status": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": "active", "description": "Optional lifecycle filter for markets/events. Defaults to 'active'. Use 'all' to include closed markets." } }, "required": [ "query" ], "type": "object" } ] } }, "required": [ "request" ], "type": "object" }, "name": "prediction_market_lookup", "outputSchema": { "properties": { "result": { "type": "string" } }, "required": [ "result" ], "type": "object", "x-fastmcp-wrap-result": true } }, { "description": "Historical odds/volume candles for a Polymarket market.\n\n**When to use:**\n- Current odds / implied probability, price history, and recent\n probability changes on a specific market.\n\n**Key fields:**\n- `Close` is the share price for the displayed outcome side.\n- In binary markets, Yes and No shares are complementary and sum to\n about $1.\n\n**Pitfalls:**\n- Each response is for one exact `marketId` — do not mix dates or prices\n across different markets.\n- If no candles are returned for the requested window, say so directly —\n do not estimate.\n\n**Prerequisites:** If `marketId` is unknown, call\n`prediction_market_lookup` first.", "inputSchema": { "additionalProperties": false, "properties": { "request": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "additionalProperties": false, "description": "Request for historical prediction market OHLCV.", "properties": { "dateRange": { "anyOf": [ { "description": "Date range via tokens or dates.\nTokens: NOW, ALL_TIME, XMIN_AGO, XD_AGO, XH_AGO; THIS_YEAR_START, THIS_QUARTER_START, THIS_MONTH_START, THIS_WEEK_START, TODAY_START; LAST_WEEK_START/END, LAST_MONTH_START/END, LAST_QUARTER_START/END, LAST_YEAR_START/END.\nALL_TIME is full history. It resolves to 2009-01-03. Use ALL_TIME instead of a very large day count.\nWeek starts Monday. Quarters are calendar. Dates: YYYY-MM-DD or ___-MM-DD (year omitted).\nPlease check detailed system instructions for more information.", "properties": { "from": { "description": "Start value: token (see above) or date (YYYY-MM-DD or ___-MM-DD).", "type": "string" }, "to": { "description": "End value: token (see above) or date (YYYY-MM-DD or ___-MM-DD).", "type": "string" } }, "required": [ "from", "to" ], "type": "object" }, { "type": "null" } ], "default": null, "description": "Optional date range for OHLCV. Defaults to the last 30 days when omitted." }, "marketId": { "description": "Numeric Polymarket market ID (e.g. '654412'). Obtain this from the prediction_market_screener tool.", "maxLength": 100, "minLength": 1, "type": "string" }, "orderBy": { "anyOf": [ { "enum": [ "period_start", "volume_usd", "trade_count" ], "type": "string" }, { "type": "null" } ], "default": null, "description": "Sort field. Pass an exact value above or None for default ('period_start')." }, "orderByDirection": { "default": "DESC", "description": "Sort direction: 'ASC' or 'DESC' (case-insensitive).", "enum": [ "ASC", "DESC", "asc", "desc" ], "type": "string" }, "page": { "default": 1, "description": "Page number for paginated results.", "minimum": 1, "type": "integer" } }, "required": [ "marketId" ], "type": "object" } ] } }, "required": [ "request" ], "type": "object" }, "name": "prediction_market_ohlcv", "outputSchema": { "properties": { "result": { "type": "string" } }, "required": [ "result" ], "type": "object", "x-fastmcp-wrap-result": true } }, { "description": "Live orderbook for a Polymarket market.\n\n**When to use:**\n- Bid/ask depth, liquidity, and yes-share / no-share order structure.\n\n**Key fields:**\n- `Order Size` is share quantity, not USD. Do not describe share size as\n dollar depth unless you calculate `shares × price`.\n\n**Yes/No price relationship:**\n- Yes and No are complementary (Yes + No ≈ $1). A No bid at price $X\n means willingness to buy No when Yes is near $(1−X).\n- A cluster of No bids at low prices (e.g. $0.20) is resistance for Yes\n rallying to ~$0.80, NOT a support floor for the current Yes price.\n- When comparing OHLCV odds against orderbook depth, convert No-side\n prices to Yes-equivalent (1 − No price) before drawing divergence\n conclusions.\n\n**Pitfalls:**\n- Do not treat raw no-share prices as bearish yes-share odds — prefer\n `prediction_market_ohlcv` for current odds / implied probability.\n\n**Prerequisites:** If `marketId` is unknown, call\n`prediction_market_lookup` first.", "inputSchema": { "additionalProperties": false, "properties": { "request": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "additionalProperties": false, "description": "Request for a live prediction market orderbook.", "properties": { "marketId": { "description": "Numeric Polymarket market ID (e.g. '654412'). Obtain this from the prediction_market_screener tool.", "maxLength": 100, "minLength": 1, "type": "string" }, "page": { "default": 1, "description": "Page number for paginated results.", "minimum": 1, "type": "integer" } }, "required": [ "marketId" ], "type": "object" } ] } }, "required": [ "request" ], "type": "object" }, "name": "prediction_market_orderbook", "outputSchema": { "properties": { "result": { "type": "string" } }, "required": [ "result" ], "type": "object", "x-fastmcp-wrap-result": true } }, { "description": "PnL leaderboard for a Polymarket market.\n\n**When to use:**\n- Only for profitability claims.\n\n**Key fields:**\n- `Total PnL USD` = redemption + unrealized value + sell proceeds − buy\n cost, for this market only.\n- `Net Buy Cost USD` is what the wallet paid for shares.\n- `Net Sell Proceeds USD` is what it received for shares sold before\n resolution.\n- `Redemption Value USD` is the payout collected after the market settled.\n- `Unrealized Value USD` is the marked value of shares still held.\n- `Side Held` reflects current side exposure where the API provides it.\n\n**Pitfalls:**\n- The API gives no ROI, volume, or trade count here. Do not state them.\n- If PnL fields are blank, say profitability is unavailable — do not\n substitute top holders or position size.\n\n**Prerequisites:** If `marketId` is unknown, call\n`prediction_market_lookup` first.", "inputSchema": { "additionalProperties": false, "properties": { "request": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "additionalProperties": false, "description": "Request for market-level PnL leaderboard.", "properties": { "marketId": { "description": "Numeric Polymarket market ID (e.g. '654412'). Obtain this from the prediction_market_screener tool.", "maxLength": 100, "minLength": 1, "type": "string" }, "page": { "default": 1, "description": "Page number for paginated results.", "minimum": 1, "type": "integer" } }, "required": [ "marketId" ], "type": "object" } ] } }, "required": [ "request" ], "type": "object" }, "name": "prediction_market_pnl_leaderboard", "outputSchema": { "properties": { "result": { "type": "string" } }, "required": [ "result" ], "type": "object", "x-fastmcp-wrap-result": true } }, { "description": "Detailed position breakdown for a Polymarket market.\n\n**Key fields:**\n- `Position Size (Shares)` is the share quantity still held.\n- `Buy Cost USD` and `Sell Proceeds USD` are the cash paid and received\n for this outcome token.\n- `Unrealized Value USD` is the marked value of shares still held;\n `Redemption Value USD` is the payout collected after settlement.\n- `Position PnL USD` applies to the displayed row only — not the\n wallet's total PM activity.\n\n**Pitfalls:**\n- Each row is one outcome token of one wallet. A wallet holding both\n sides appears twice.\n\n**Prerequisites:** If `marketId` is unknown, call\n`prediction_market_lookup` first.", "inputSchema": { "additionalProperties": false, "properties": { "request": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "additionalProperties": false, "description": "Request for detailed market positions.", "properties": { "marketId": { "description": "Numeric Polymarket market ID (e.g. '654412'). Obtain this from the prediction_market_screener tool.", "maxLength": 100, "minLength": 1, "type": "string" }, "page": { "default": 1, "description": "Page number for paginated results.", "minimum": 1, "type": "integer" } }, "required": [ "marketId" ], "type": "object" } ] } }, "required": [ "request" ], "type": "object" }, "name": "prediction_market_position_detail", "outputSchema": { "properties": { "result": { "type": "string" } }, "required": [ "result" ], "type": "object", "x-fastmcp-wrap-result": true } }, { "description": "Browse and sort Polymarket markets, events, or categories.\n\n**When to use:**\n- Broad discovery, screening, and ranked browsing across many markets.\n- Do NOT use this to resolve one named market/event/slug/URL — use\n `prediction_market_lookup` instead.\n\n**Query tips:**\n- Literal-style matching on text and slugs, not fuzzy web search.\n- Prefer one short topic or slug fragment (e.g. `fed cuts`, `zelensky`,\n `ncaa tournament`).\n- Do not bundle unrelated topics (e.g. `bitcoin ethereum politics\n weather`). If a broad question spans several topics, run separate\n screener queries for each.\n- If a query returns no rows, do not invent a nearest match — try a\n narrower topic or say no data was returned.\n\n**Output rules:**\n- Superlatives (highest, leading, biggest, top, trending) must match the\n shown metric exactly.\n- Do not infer end dates, rankings, or category leadership from titles\n alone.", "inputSchema": { "additionalProperties": false, "properties": { "request": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "additionalProperties": false, "description": "Request for prediction market discovery tools.", "properties": { "mode": { "default": "markets", "description": "Discovery mode. Use 'markets' to screen individual markets, 'events' to screen grouped events, and 'categories' for category level aggregated stats.", "enum": [ "markets", "events", "categories" ], "type": "string" }, "orderBy": { "anyOf": [ { "enum": [ "volume_24hr", "volume", "volume_1wk", "volume_1mo", "liquidity", "open_interest", "unique_traders_24h", "age_hours" ], "type": "string" }, { "type": "null" } ], "default": null, "description": "Sort field. Pass an exact value above or None for default ('volume_24hr')." }, "page": { "default": 1, "description": "Page number for paginated results.", "minimum": 1, "type": "integer" }, "query": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Optional text query for filtering markets/events by keyword." }, "status": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Optional lifecycle filter for markets/events. Common values: 'active', 'open', 'closed', or 'all'." } }, "type": "object" } ] } }, "required": [ "request" ], "type": "object" }, "name": "prediction_market_screener", "outputSchema": { "properties": { "result": { "type": "string" } }, "required": [ "result" ], "type": "object", "x-fastmcp-wrap-result": true } }, { "description": "Largest current holders for a Polymarket market.\n\n**Key fields:**\n- Positions are share balances, not USD notional.\n- `Position Value USD` is current marked value, not payout at resolution.\n- `Side Held` is the share side currently held.\n\n**Pitfalls:**\n- The visible holder table is the source of truth for holder-side\n concentration — do not infer risk, max loss, or potential profit unless\n the tool output explicitly provides it.\n- Output summary is based only on shown rows, not the entire holder table.\n- Large visible positions or labels do not by themselves identify smart\n money unless Nansen smart-money-labelled data supports it.\n\n**Prerequisites:** If `marketId` is unknown, call\n`prediction_market_lookup` first.", "inputSchema": { "additionalProperties": false, "properties": { "request": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "additionalProperties": false, "description": "Request for prediction market top holders.", "properties": { "marketId": { "description": "Numeric Polymarket market ID (e.g. '654412'). Obtain this from the prediction_market_screener tool.", "maxLength": 100, "minLength": 1, "type": "string" }, "orderBy": { "anyOf": [ { "enum": [ "position_size", "unrealized_pnl_usd", "avg_entry_price" ], "type": "string" }, { "type": "null" } ], "default": null, "description": "Sort field. Pass an exact value above or None for default ('position_size')." }, "orderByDirection": { "default": "DESC", "description": "Sort direction: 'ASC' or 'DESC' (case-insensitive).", "enum": [ "ASC", "DESC", "asc", "desc" ], "type": "string" }, "page": { "default": 1, "description": "Page number for paginated results.", "minimum": 1, "type": "integer" } }, "required": [ "marketId" ], "type": "object" } ] } }, "required": [ "request" ], "type": "object" }, "name": "prediction_market_top_holders", "outputSchema": { "properties": { "result": { "type": "string" } }, "required": [ "result" ], "type": "object", "x-fastmcp-wrap-result": true } }, { "description": "Recent trades for a Polymarket market.\n\n**When to use:**\n- Source of truth for recent fills and latest trade-tape pricing.\n- Do not overwrite recent trade prices with older OHLCV candles.\n\n**Key fields:**\n- `Share Size` is quantity; `Value USD` is dollar value.\n- Each row is one visible trade leg — `Value USD` applies to that row,\n not the whole transaction hash.\n\n**Pitfalls:**\n- Large visible trades do not by themselves identify smart money or\n institutions.\n\n**Prerequisites:** If `marketId` is unknown, call\n`prediction_market_lookup` first.", "inputSchema": { "additionalProperties": false, "properties": { "request": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "additionalProperties": false, "description": "Request for recent market trades.", "properties": { "dateRange": { "anyOf": [ { "description": "Date range via tokens or dates.\nTokens: NOW, ALL_TIME, XMIN_AGO, XD_AGO, XH_AGO; THIS_YEAR_START, THIS_QUARTER_START, THIS_MONTH_START, THIS_WEEK_START, TODAY_START; LAST_WEEK_START/END, LAST_MONTH_START/END, LAST_QUARTER_START/END, LAST_YEAR_START/END.\nALL_TIME is full history. It resolves to 2009-01-03. Use ALL_TIME instead of a very large day count.\nWeek starts Monday. Quarters are calendar. Dates: YYYY-MM-DD or ___-MM-DD (year omitted).\nPlease check detailed system instructions for more information.", "properties": { "from": { "description": "Start value: token (see above) or date (YYYY-MM-DD or ___-MM-DD).", "type": "string" }, "to": { "description": "End value: token (see above) or date (YYYY-MM-DD or ___-MM-DD).", "type": "string" } }, "required": [ "from", "to" ], "type": "object" }, { "type": "null" } ], "default": null, "description": "Optional date range for market trades. Defaults to the last 7 days." }, "marketId": { "description": "Numeric Polymarket market ID (e.g. '654412'). Obtain this from the prediction_market_screener tool.", "maxLength": 100, "minLength": 1, "type": "string" }, "page": { "default": 1, "description": "Page number for paginated results.", "minimum": 1, "type": "integer" } }, "required": [ "marketId" ], "type": "object" } ] } }, "required": [ "request" ], "type": "object" }, "name": "prediction_market_trades", "outputSchema": { "properties": { "result": { "type": "string" } }, "required": [ "result" ], "type": "object", "x-fastmcp-wrap-result": true } }, { "description": "Get Jupiter DCA (dollar-cost-averaging) orders opened by smart traders and funds on Solana, including deposit size, amount spent so far and order status.\nUse this for scheduled accumulation intent; use smart_traders_and_funds_dex_trades for one-off swaps.", "inputSchema": { "additionalProperties": false, "properties": { "request": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "description": "Request for smart money Jupiter DCA orders (v1 API, Solana only) - flattened.", "properties": { "depositTokenAmount": { "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": "Filter by deposited token amount" }, "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": "Smart money category filters to include" }, "inputTokenSymbol": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Filter by the token symbol being spent by the DCA order" }, "orderBy": { "anyOf": [ { "enum": [ "dca_created_at", "dca_updated_at", "deposit_value_usd", "deposit_token_amount", "token_spent_amount", "output_token_redeemed_amount" ], "type": "string" }, { "type": "null" } ], "default": null, "description": "Sort field. Pass an exact value above or None for default ('dca_created_at')." }, "orderByDirection": { "default": "DESC", "description": "Sort direction: 'ASC' or 'DESC' (case-insensitive).", "enum": [ "ASC", "DESC", "asc", "desc" ], "type": "string" }, "outputTokenSymbol": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Filter by the token symbol being accumulated by the DCA order" }, "page": { "default": 1, "type": "integer" }, "traderAddress": { "anyOf": [ { "type": "string" }, { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Filter by trader address" } }, "type": "object" } ] } }, "required": [ "request" ], "type": "object" }, "name": "smart_traders_and_funds_dcas", "outputSchema": { "properties": { "result": { "type": "string" } }, "required": [ "result" ], "type": "object", "x-fastmcp-wrap-result": true } }, { "description": "Get individual (per wallet, per transaction) DEX trades made by smart traders and funds (EXCLUDES whales, large holders, influencers, etc.) across all chains (default is ['all']) or specific chain(s).\nUse this to see exactly which wallet bought or sold what; use smart_traders_and_funds_netflow for the aggregated view.", "inputSchema": { "additionalProperties": false, "properties": { "request": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "description": "Request for individual smart money DEX trades (v1 API) - flattened.", "properties": { "chains": { "description": "Optional list of chains to include. If omitted, defaults to ['all'] (all supported chains). Use 'all' to query all supported chains. Supported chains: arbitrum, arc, avalanche, base, bnb, ethereum, hyperevm, iotaevm, linea, mantle, monad, optimism, plasma, polygon, robinhood, sei, solana, sonic, all", "items": { "type": "string" }, "type": "array" }, "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": "Smart money category filters to include" }, "orderBy": { "anyOf": [ { "enum": [ "block_timestamp", "trade_value_usd", "token_bought_amount", "token_sold_amount" ], "type": "string" }, { "type": "null" } ], "default": null, "description": "Sort field. Pass an exact value above or None for default ('block_timestamp')." }, "orderByDirection": { "default": "DESC", "description": "Sort direction: 'ASC' or 'DESC' (case-insensitive).", "enum": [ "ASC", "DESC", "asc", "desc" ], "type": "string" }, "page": { "default": 1, "type": "integer" }, "tokenBoughtSymbol": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Filter to trades that bought this token symbol" }, "tokenSoldSymbol": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Filter to trades that sold this token symbol" }, "tradeValueUsd": { "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": "Filter by trade value in USD" }, "traderAddress": { "anyOf": [ { "type": "string" }, { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Filter by trader address" } }, "type": "object" } ] } }, "required": [ "request" ], "type": "object" }, "name": "smart_traders_and_funds_dex_trades", "outputSchema": { "properties": { "result": { "type": "string" } }, "required": [ "result" ], "type": "object", "x-fastmcp-wrap-result": true } }, { "description": "Get the day-by-day history of aggregated smart trader and fund token balances (EXCLUDES whales, large holders, influencers, etc.) for a date range on base, bnb, ethereum, monad, robinhood or solana.\nUse this to see how smart money holdings changed over time; use smart_traders_and_funds_token_balances for the current snapshot.", "inputSchema": { "additionalProperties": false, "properties": { "request": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "description": "Request for smart money historical token balances (v1 API) - flattened.", "properties": { "chains": { "description": "Chains to include. Supported: base, bnb, ethereum, monad, robinhood, solana.", "items": { "enum": [ "base", "bnb", "ethereum", "monad", "robinhood", "solana" ], "type": "string" }, "type": "array" }, "dateRange": { "anyOf": [ { "description": "Date range via tokens or dates.\nTokens: NOW, ALL_TIME, XMIN_AGO, XD_AGO, XH_AGO; THIS_YEAR_START, THIS_QUARTER_START, THIS_MONTH_START, THIS_WEEK_START, TODAY_START; LAST_WEEK_START/END, LAST_MONTH_START/END, LAST_QUARTER_START/END, LAST_YEAR_START/END.\nALL_TIME is full history. It resolves to 2009-01-03. Use ALL_TIME instead of a very large day count.\nWeek starts Monday. Quarters are calendar. Dates: YYYY-MM-DD or ___-MM-DD (year omitted).\nPlease check detailed system instructions for more information.", "properties": { "from": { "description": "Start value: token (see above) or date (YYYY-MM-DD or ___-MM-DD).", "type": "string" }, "to": { "description": "End value: token (see above) or date (YYYY-MM-DD or ___-MM-DD).", "type": "string" } }, "required": [ "from", "to" ], "type": "object" }, { "type": "null" } ], "default": null, "description": "Date range for the history. Defaults to the last 30 days. Maximum lookback is 4 years." }, "includeNativeTokens": { "default": true, "description": "Whether to include native tokens (ETH, SOL, etc.) in results", "type": "boolean" }, "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": "Smart money category filters to include" }, "includeStablecoin": { "default": true, "description": "Whether to include stablecoins in results", "type": "boolean" }, "orderBy": { "anyOf": [ { "enum": [ "date", "value_usd", "balance", "balance_24h_percent_change", "holders_count", "share_of_holdings_percent", "market_cap_usd" ], "type": "string" }, { "type": "null" } ], "default": null, "description": "Sort field. Pass an exact value above or None for default ('date')." }, "orderByDirection": { "default": "DESC", "description": "Sort direction: 'ASC' or 'DESC' (case-insensitive).", "enum": [ "ASC", "DESC", "asc", "desc" ], "type": "string" }, "page": { "default": 1, "type": "integer" }, "tokenAddress": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Restrict the history to a single token address" }, "tokenSymbol": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Restrict the history to a single token symbol" } }, "type": "object" } ] } }, "required": [ "request" ], "type": "object" }, "name": "smart_traders_and_funds_historical_token_balances", "outputSchema": { "properties": { "result": { "type": "string" } }, "required": [ "result" ], "type": "object", "x-fastmcp-wrap-result": true } }, { "description": "Get aggregated (not per wallet) smart trader and fund (EXCLUDES whales, large holders, influencers, etc.) net USD flow per token over 1h/24h/7d/30d, per chain for all chains (default is ['all']) or specific chain(s).\nUse this for what smart money is buying or selling right now; use smart_traders_and_funds_token_balances for what they hold.", "inputSchema": { "additionalProperties": false, "properties": { "request": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "description": "Request for smart money token netflow (v1 API) - flattened.", "properties": { "chains": { "description": "Optional list of chains to include. If omitted, defaults to ['all'] (all supported chains). Use 'all' to query all supported chains. Supported chains: arbitrum, arc, avalanche, base, bnb, ethereum, hyperevm, iotaevm, linea, mantle, monad, optimism, plasma, polygon, robinhood, sei, solana, sonic, all", "items": { "type": "string" }, "type": "array" }, "includeNativeTokens": { "default": true, "description": "Whether to include native tokens (ETH, SOL, etc.) in results", "type": "boolean" }, "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": "Smart money category filters to include" }, "includeStablecoin": { "default": true, "description": "Whether to include stablecoins in results", "type": "boolean" }, "marketCapUsd": { "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": "Filter by token market capitalisation in USD" }, "orderBy": { "anyOf": [ { "enum": [ "net_flow_1h_usd", "net_flow_24h_usd", "net_flow_7d_usd", "net_flow_30d_usd", "trader_count", "token_age_days", "market_cap_usd" ], "type": "string" }, { "type": "null" } ], "default": null, "description": "Sort field. Pass an exact value above or None for default ('net_flow_24h_usd')." }, "orderByDirection": { "default": "DESC", "description": "Sort direction: 'ASC' or 'DESC' (case-insensitive).", "enum": [ "ASC", "DESC", "asc", "desc" ], "type": "string" }, "page": { "default": 1, "type": "integer" }, "tokenAddress": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Restrict results to a single token address" } }, "type": "object" } ] } }, "required": [ "request" ], "type": "object" }, "name": "smart_traders_and_funds_netflow", "outputSchema": { "properties": { "result": { "type": "string" } }, "required": [ "result" ], "type": "object", "x-fastmcp-wrap-result": true } }, { "description": "Get recent Hyperliquid perpetual futures trades from Smart Money addresses across all tokens.\n\nOptional labels narrow this cohort; they do not search all addresses with that label. For a broad view of Smart Money activity across all tokens, use token_discovery_screener with traderType=\"sm\".\n\n**Note:** This endpoint is Hyperliquid-only (perpetual futures data). It returns recent trades only (no date filtering available).\n\nColumns returned:\n- **Time**: Timestamp when the trade occurred (datetime: YYYY-MM-DD HH:MM:SS)\n- **Side**: Position direction - Long or Short\n- **Action**: Order action - Add, Reduce, Open, Close\n- **Token**: Symbol of the perpetual contract\n- **Size**: Quantity of the perpetual contract (numeric)\n- **Price USD**: Price per token at time of trade (price formatted)\n- **Value USD**: Total USD value of the trade (currency formatted)\n- **Trader**: Nansen label of the trading address\n- **Address**: Full trading wallet address\n- **Tx Hash**: Blockchain transaction hash for verification\n\nSorting Options (all fields support \"asc\"/\"desc\"):\n Available for sorting: timestamp, amount, price_usd\n\nExamples:\n # Get recent smart money perp trades (sorted by amount)\n ```\n {\n \"orderBy\": \"amount\",\n \"order_by_direction\": \"desc\"\n }\n ```\n\n # Filter by action and side\n ```\n {\n \"action\": \"Open\",\n \"side\": \"Long\"\n }\n ```", "inputSchema": { "additionalProperties": false, "properties": { "request": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "description": "Request for smart money perp trades - flattened.\n\nNote: This endpoint returns recent trades only (no date filtering available).", "properties": { "action": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Filter by action: 'Add'/'Reduce'/'Open'/'Close' (can combine with side for precise filtering)." }, "includeSmartMoneyLabels": { "description": "Optional subgroup filter. Omit it for the full Smart Money cohort. When set, an address must belong to Smart Money and match at least one selected label.", "items": { "description": "Labels that can narrow the fixed Hyperliquid Smart Money cohort.", "enum": [ "30D Smart Trader", "90D Smart Trader", "180D Smart Trader", "All Time Smart Trader", "Fund" ], "type": "string" }, "type": "array" }, "orderBy": { "anyOf": [ { "enum": [ "timestamp", "amount", "price_usd" ], "type": "string" }, { "type": "null" } ], "default": null, "description": "Sort field. Pass an exact value above or None for default ('amount'). Native token amount is preferred over USD value." }, "order_by_direction": { "default": "DESC", "enum": [ "ASC", "DESC", "asc", "desc" ], "type": "string" }, "page": { "default": 1, "type": "integer" }, "side": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Filter by position side: 'Long'/'Short'." }, "traderAddress": { "anyOf": [ { "type": "string" }, { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Filter by trader address" }, "valueUsd": { "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": "Filter by trade value in USD" } }, "type": "object" } ] } }, "required": [ "request" ], "type": "object" }, "name": "smart_traders_and_funds_perp_trades", "outputSchema": { "properties": { "result": { "type": "string" } }, "required": [ "result" ], "type": "object", "x-fastmcp-wrap-result": true } }, { "description": "Rank smart trader and fund addresses (EXCLUDES whales, large holders, influencers, etc.) by realized, unrealized and total USD PnL over a 1/7/30/90/180 day window, with ROI, win rate and trade counts.\nUse this to find the best performing smart money wallets; use token_pnl_leaderboard for the best performers on one specific token.", "inputSchema": { "additionalProperties": false, "properties": { "request": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "description": "Request for the smart money PnL leaderboard (v1 API) - flattened.", "properties": { "chains": { "description": "Optional list of chains to include. If omitted, defaults to ['all'] (all supported chains). Use 'all' to query all supported chains. Supported chains: arbitrum, arc, avalanche, base, bnb, ethereum, hyperevm, iotaevm, linea, mantle, monad, optimism, plasma, polygon, robinhood, sei, solana, sonic, all", "items": { "type": "string" }, "type": "array" }, "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": "Smart money category filters to include" }, "orderBy": { "anyOf": [ { "enum": [ "total_pnl_usd", "realized_pnl_usd", "unrealized_pnl_usd", "avg_trade_roi", "roi_percent_unrealised", "win_rate", "n_trades", "n_tokens" ], "type": "string" }, { "type": "null" } ], "default": null, "description": "Sort field. Pass an exact value above or None for default ('total_pnl_usd')." }, "orderByDirection": { "default": "DESC", "description": "Sort direction: 'ASC' or 'DESC' (case-insensitive).", "enum": [ "ASC", "DESC", "asc", "desc" ], "type": "string" }, "page": { "default": 1, "type": "integer" }, "timeframe": { "default": 7, "description": "Lookback window in days. Allowed values: 1, 7, 30, 90, 180.", "enum": [ 1, 7, 30, 90, 180 ], "type": "integer" } }, "type": "object" } ] } }, "required": [ "request" ], "type": "object" }, "name": "smart_traders_and_funds_pnl_leaderboard", "outputSchema": { "properties": { "result": { "type": "string" } }, "required": [ "result" ], "type": "object", "x-fastmcp-wrap-result": true } }, { "description": "Get aggregated (not per wallet) smart trader and fund (EXCLUDES whales, large holders, influencers, etc.) token balances and 24h change per chain for all chains (default is ['all'], which queries all supported chains) or specific chain(s).\nUse filters to narrow down the results.", "inputSchema": { "additionalProperties": false, "properties": { "request": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "description": "Request for smart money token holdings (v1 API) - flattened.", "properties": { "chains": { "description": "Optional list of chains to include. If omitted, defaults to ['all'] (all supported chains). Use 'all' to query all supported chains. Supported chains: arbitrum, arc, avalanche, base, bnb, ethereum, hyperevm, iotaevm, linea, mantle, monad, optimism, plasma, polygon, robinhood, sei, solana, sonic, all", "items": { "type": "string" }, "type": "array" }, "includeNativeTokens": { "default": true, "description": "Whether to include native tokens (ETH, SOL, etc.) in results", "type": "boolean" }, "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": "Smart money category filters to include" }, "includeStablecoin": { "default": true, "description": "Whether to include stablecoins in results", "type": "boolean" }, "minHolders": { "default": 0, "description": "Minimum number of smart money holders a token must have to be included (default: 0, no filter)", "type": "integer" }, "orderBy": { "anyOf": [ { "enum": [ "value_usd", "balance_24h_percent_change", "holders_count" ], "type": "string" }, { "type": "null" } ], "default": null, "description": "Sort field. Pass an exact value above or None for default ('value_usd')." }, "orderByDirection": { "default": "DESC", "description": "Sort direction: 'ASC' or 'DESC' (case-insensitive).", "enum": [ "ASC", "DESC", "asc", "desc" ], "type": "string" }, "page": { "default": 1, "type": "integer" } }, "type": "object" } ] } }, "required": [ "request" ], "type": "object" }, "name": "smart_traders_and_funds_token_balances", "outputSchema": { "properties": { "result": { "type": "string" } }, "required": [ "result" ], "type": "object", "x-fastmcp-wrap-result": true } }, { "description": "Get upto 25 (per page) top holders information for a specific token.\n\n**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.\n\n**Modes:**\n- `onchain_tokens` (default): Analyze on-chain tokens by contract address\n- `perps`: Analyze Hyperliquid perpetual futures by symbol (chain auto-set to \"hyperliquid\")\n\nColumns returned (onchain_tokens mode):\n- **Address**: Wallet/contract address of the token holder\n- **Label**: Nansen label (e.g., exchange, whale, etc.)\n- **Balance**: Current balance held (numeric with K/M/B formatting)\n- **Balance USD**: USD value of token holdings (currency formatted)\n- **Ownership %**: Percentage of total token supply owned (percentage, 2 decimal places)\n- **Sent**: Total tokens sent from this address historically (numeric)\n- **Received**: Total tokens received by this address historically (numeric)\n- **24h Change**: Balance change in last 24 hours (numeric, can be negative)\n- **7d Change**: Balance change in last 7 days (numeric, can be negative)\n- **30d Change**: Balance change in last 30 days (numeric, can be negative)\n\nColumns returned (perps mode):\n- **Trader Address**: Address of the trader\n- **Trader Label**: Nansen label for the trader\n- **Side**: Position direction (Long/Short)\n- **Position Value USD**: Total USD value of the position (currency formatted)\n- **Position Size**: Size of the position in tokens (numeric)\n- **Leverage**: Leverage multiplier (e.g., \"20X\")\n- **Leverage Type**: Type of leverage (cross/isolated)\n- **Entry Price**: Average entry price (price formatted)\n- **Mark Price**: Current mark price (price formatted)\n- **Liquidation Price**: Liquidation price (price formatted)\n- **Funding USD**: Cumulative funding payments (currency formatted)\n- **Unrealized PnL USD**: Unrealized profit/loss (currency formatted)\n\nSorting Options (default: holding_size desc):\n onchain_tokens mode: holding_size, total_outflow, total_inflow, balance_change_24h, balance_change_7d, balance_change_30d\n perps mode: holding_size, side, entry_price, leverage, liquidation_price, funding_usd, upnl_usd\n Use only a value listed for the selected mode. A value from the wrong\n mode is not an error: the call falls back to holding_size and the\n output notes the changed sort.\n\nExamples:\n # On-chain tokens (default mode)\n ```\n {\n \"mode\": \"onchain_tokens\",\n \"chain\": \"ethereum\",\n \"token_address\": \"0xa0b86a33e6b6c4b3add000b44b3a1234567890ab\",\n \"label_type\": \"top_100_holders\"\n }\n ```\n\n # Hyperliquid perpetual futures\n ```\n {\n \"mode\": \"perps\",\n \"token_address\": \"PENGU\",\n \"label_type\": \"smart_money\"\n }\n ```\n\n # Find most active senders using filters\n ```\n {\n \"mode\": \"onchain_tokens\",\n \"chain\": \"ethereum\",\n \"token_address\": \"0xa0b86a33e6b6c4b3add000b44b3a1234567890ab\",\n \"label_type\": \"smart_money\",\n \"includeSmartMoneyLabels\": [\"All Time Smart Trader\", \"Fund\"],\n \"orderBy\": \"total_outflow\",\n \"order_by_direction\": \"desc\"\n }\n ```\n\n # Find biggest accumulators (who received most tokens)\n ```\n {\n \"mode\": \"onchain_tokens\",\n \"chain\": \"ethereum\",\n \"token_address\": \"0xa0b86a33e6b6c4b3add000b44b3a1234567890ab\",\n \"label_type\": \"whale\",\n \"orderBy\": \"total_inflow\",\n \"order_by_direction\": \"desc\"\n }\n ```\n\n # Perps mode with filters\n ```\n {\n \"mode\": \"perps\",\n \"token_address\": \"ETH\",\n \"label_type\": \"smart_money\",\n \"side\": \"Long\",\n \"upnlUsd\": {\"from\": 10000},\n \"positionValueUsd\": {\"from\": 100000},\n \"orderBy\": \"holding_size\",\n \"order_by_direction\": \"desc\"\n }\n ```\n\n **Native-token / stablecoin `orderBy` restriction:**\n With `labelType='top_100_holders'` (the default), native tokens\n (`0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee` and native SUI) and\n stablecoins/pegged tokens support `orderBy='holding_size'` only. To\n sort such a token by another onchain field, use `labelType='whale'`,\n `smart_money`, `exchange` or `public_figure` instead. An unsupported\n combination is not an error: the call falls back to `holding_size`\n and the output notes the changed sort.\n\n **Other `top_100_holders` limits for native tokens:** limited filters\n (holding_size, total_outflow, total_inflow, address, smart money\n labels). For advanced filters use a different `labelType` or set\n `aggregateByEntity=true`.\n\n **Does not** work for SOL in onchain_tokens mode (tokenAddress So11111111111111111111111111111111111111112). For SOL analysis, use perps mode instead.", "inputSchema": { "additionalProperties": false, "properties": { "request": { "anyOf": [ { "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, arc, avalanche, base, bnb, ethereum, hyperevm, injective, iotaevm, linea, mantle, mantra, monad, near, optimism, plasma, polygon, robinhood, ronin, scroll, sei, solana, sonic, sui, ton, tron, unichain, zksync", "type": "string" }, "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" } ] } }, "required": [ "request" ], "type": "object" }, "name": "token_current_top_holders", "outputSchema": { "properties": { "result": { "type": "string" } }, "required": [ "result" ], "type": "object", "x-fastmcp-wrap-result": true } }, { "description": "Get DEX trades for a specific token.\n\n**Modes:**\n- `onchain_tokens` (default): Analyze on-chain tokens by contract address\n- `perps`: Analyze Hyperliquid perpetual futures by symbol (chain auto-set to \"hyperliquid\")\n\n**NOTE:** In onchain_tokens mode, only ETH is supported among native tokens. For other native tokens (SOL, BTC, BNB, etc.), use perps mode instead.", "inputSchema": { "additionalProperties": false, "properties": { "request": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "description": "Complete request for token DEX trades (flattened).", "properties": { "action": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Filter by action: 'buy'/'sell' (onchain), 'Add'/'Reduce'/'Open'/'Close' (perps, can combine with side for precise filtering)." }, "chain": { "default": "ethereum", "description": "Blockchain network. Supported: arbitrum, arc, avalanche, base, bnb, ethereum, hyperevm, injective, iotaevm, linea, mantle, mantra, monad, near, optimism, plasma, polygon, robinhood, ronin, scroll, sei, solana, sonic, sui, ton, tron, unichain, zksync", "type": "string" }, "dateRange": { "description": "Date range for trade analysis", "properties": { "from": { "description": "Start value: token (see above) or date (YYYY-MM-DD or ___-MM-DD).", "type": "string" }, "to": { "description": "End value: token (see above) or date (YYYY-MM-DD or ___-MM-DD).", "type": "string" } }, "required": [ "from", "to" ], "type": "object" }, "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." }, "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": [ "timestamp", "amount" ], "type": "string" }, { "type": "null" } ], "default": null, "description": "Sort field. Pass an exact value above or None for default ('timestamp')." }, "order_by_direction": { "default": "DESC", "enum": [ "ASC", "DESC", "asc", "desc" ], "type": "string" }, "page": { "default": 1, "type": "integer" }, "side": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Filter by position side: 'Long'/'Short'." }, "tokenAddress": { "type": "string" }, "traderAddress": { "anyOf": [ { "type": "string" }, { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Filter by trader address" }, "valueUsd": { "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": "Filter by trade value in USD" } }, "required": [ "tokenAddress" ], "type": "object" } ], "description": "TokenDexTradesRequest containing parameters, pagination settings, and optional sorting" } }, "required": [ "request" ], "type": "object" }, "name": "token_dex_trades", "outputSchema": { "properties": { "result": { "type": "string" } }, "required": [ "result" ], "type": "object", "x-fastmcp-wrap-result": true } }, { "description": "Get comprehensive token screening data across multiple blockchain networks with advanced filtering.\n\nA maximum of 25 results per page are returned out of 1000s of tokens. Use the sorting and filtering options to narrow down the results.\nIn a mixed spot + hyperliquid request, `page` applies to both the spot and perps sections.\nA maximum of 5 chains can be specified per request (excess chains are automatically trimmed).\n\nThis tool helps with token discovery and finding trending tokens by combining different metrics: volume, liquidity, market cap,\nsmart money activity, and token age.\n\n**IMPORTANT - Hyperliquid Special Case:**\n- Hyperliquid chain queries perpetual futures (perps), not spot tokens\n- When hyperliquid is mixed with other chains, two sections of up to 25 results each are returned - one for spot tokens and one for perps.\n- For perps, only these filters are supported: volume, buyVolume, sellVolume, openInterest, netflow, nofTraders, traderType\n- Additional orderBy fields for perps: open_interest, funding (e.g. orderBy 'funding' ascending finds perps that pay longs)\n- Unsupported filters/orderBy will fallback to defaults\n\nINPUT EXAMPLES:\n# Find tokens which are going up in price.\n# Added some liquidity filter to remove spam and low quality tokens.\n```\n{\n \"chains\": [\"ethereum\", \"solana\", \"bnb\", \"base\"],\n \"timeframe\": \"24h\",\n \"liquidity\": {\"from\": 100000},\n \"nofTraders\": {\"from\": 10},\n \"orderBy\": \"price_change\",\n \"orderByDirection\": \"desc\"\n}\n```\n# Find top stablecoins by market cap\n```\n{\n \"chains\": [\"ethereum\", \"solana\", \"bnb\", \"base\"],\n \"timeframe\": \"7d\",\n \"sectors\": [\"Stablecoin\"],\n \"orderBy\": \"market_cap_usd\",\n \"orderByDirection\": \"desc\"\n}\n```\n# Find AI memecoins with high trading activity\n{\n \"chains\": [\"ethereum\", \"solana\", \"bnb\", \"base\"],\n \"timeframe\": \"7d\",\n \"sectors\": [\"AI Meme\"],\n \"liquidity\": {\"from\": 100000},\n \"volume\": {\"from\": 1000000}\n}\n# Find DeFi lending tokens\n{\n \"chains\": [\"ethereum\", \"solana\", \"bnb\", \"base\"],\n \"timeframe\": \"24h\",\n \"sectors\": [\"DeFi Lending (Money Markets)\"],\n \"netflow\": {\"from\": 1000000}\n}\n# Find tokens which have a lot of buying activity (high nofBuyers and buyVolume)\n# Note that we added some filters to remove spam and low quality tokens. We added liquidity filter so that we only surface tokens which we can buy or sell.\n# We sort by `netflow` descending to get tokens with the most net buying activity.\n```\n{\n \"chains\": [\"ethereum\", \"solana\", \"bnb\", \"base\"],\n \"timeframe\": \"24h\",\n \"liquidity\": {\"from\": 100000},\n \"buyVolume\": {\"from\": 1000000},\n \"marketCapUsd\": {\"from\": 1000000},\n \"nofBuyers\": {\"from\": 10},\n \"orderBy\": \"netflow\",\n \"orderByDirection\": \"desc\"\n}\n```\n# Find Hyperliquid perps with high open interest and positive net flow\n```\n{\n \"chains\": [\"hyperliquid\"],\n \"timeframe\": \"7d\",\n \"openInterest\": {\"from\": 100000},\n \"volume\": {\"from\": 1000000},\n \"netflow\": {\"from\": 0},\n \"nofTraders\": {\"from\": 10},\n \"orderBy\": \"netflow\",\n \"orderByDirection\": \"desc\"\n}\n```\n\nWARNING: To avoid timeouts, it's recommended to:\n- Use 4 chains or less at a time (API tends to timeout with more chains)\n- Use shorter timeframes (e.g., 24h or 1h instead of 7d or 30d)\n\nArgs:\n\nReturns:\n Comprehensive token metrics as markdown. Returns empty string if no tokens found.\n\n Columns returned:\n - **Token Address**: Token address (e.g., 0x1234567890123456789012345678901234567890)\n - **Symbol**: Token trading symbol (e.g., ETH, BTC, DOGE)\n - **Chain**: Blockchain network (ethereum, solana, polygon, etc.)\n - **Price USD**: Current token price in USD (currency formatted)\n - **Price Change**: Price change percentage over the date range (percentage, can be negative)\n - **Market Cap**: Current market capitalization (currency formatted)\n - **Fully Diluted Valuation (FDV)**: Market cap if all tokens were circulating (currency formatted)\n - **FDV/MC Ratio**: Ratio indicating how much supply is locked/vested (numeric, >1 means locked supply)\n - **USD Volume**: Total trading volume in USD (currency formatted)\n - **Buy USD Volume**: Total buy volume in USD (currency formatted)\n - **Sell USD Volume**: Total sell volume in USD (currency formatted)\n - **Net Flow USD**: Net flow (buys minus sells) in USD (currency formatted, can be negative)\n - **DEX Liquidity**: Available liquidity for trading (currency formatted)\n - **Inflow/FDV**: Inflow as percentage of FDV (percentage formatted)\n - **Outflow/FDV**: Outflow as percentage of FDV (percentage formatted)\n - **Token Age (Days)**: Days since token was first deployed\n - **Sectors**: List of token sectors/categories\n\n Hyperliquid perps columns (smart-money mode, when `onlySmartTradersAndFunds=true`):\n - **Net Position** (`LONG $X` / `SHORT $X` / `FLAT`): current net direction. Use this when answering long/short questions.\n - **Current Longs USD** / **Current Shorts USD**: gross notional on each side; sizing only, not direction.\n - **Net Position Change**: delta over the timeframe — can be positive while Net Position is still SHORT.\n\nNotes:\n - Positive Net Flow on spot tokens indicates more buying than selling\n - High FDV/MC Ratio suggests significant locked or vested tokens\n\n**Filtering Options** (filters parameter):\n - **Numeric Ranges**: volume, liquidity, marketCapUsd, netflow, tokenAgeDays, nofTraders, nofBuyers, nofSellers, nofBuys, nofSells, buyVolume, sellVolume, fdv, fdvMcRatio, inflowFdvRatio, outflowFdvRatio\n - **Categories**: sectors (e.g. [\"AI\", \"Meme\"]), includeSmartMoneyLabels\n - **Asset class toggles** (spot chains only, default false for both): includeStablecoins, includeNativeTokens. Set true only when the user asks for stablecoins/native tokens specifically.\n - **Trader Type**: traderType (string: \"all\", \"sm\", \"whale\", \"public_figure\")\n - Use \"sm\" ONLY when user explicitly asks for \"smart money\".\n - Use \"whale\" ONLY when user specifically asks for whales or large holders.\n - Use \"public_figure\" ONLY when user asks for KOLs or popular figures.\n - Data with \"sm\", \"whale\", and \"public_figure\" is sparse — \"whale\" and \"public_figure\" are even sparser than \"sm\". Pairing any of these with other filters (volume, liquidity, netflow) is likely to return no results.\n - Only pair traderType=\"sm/whale/public_figure\" with other filters (volume, liquidity, netflow) if the user request explicitly requires it.\n - Instead of pairing this with other filters, you can rely on orderBy to sort by netflow, volume, liquidity, etc.\n\n **CRITICAL WARNING:** 'priceChange' is NOT a valid filter. You cannot filter for \"tokens up > 10%\". Use `orderBy=\"priceChange\"` instead.\n\n**Sorting Options** (orderBy field):\n Available fields (use with orderByDirection: \"asc\" or \"desc\"):\n\n - **priceUsd**: Sort by token price\n - **priceChange**: Sort by price change percentage\n - **marketCapUsd**: Sort by market capitalization\n - **volume**: Sort by total trading volume\n - **buyVolume**: Sort by buy volume\n - **sellVolume**: Sort by sell volume\n - **netflow**: Sort by net flow (buys - sells)\n - **liquidity**: Sort by DEX liquidity\n - **nofTraders**: Sort by number of traders\n\n (Note: Fields like `tokenAgeDays` or `outflowFdvRatio` are for FILTERING only, not sorting)\n\n Default: orderBy=\"netflow\", orderByDirection=\"desc\"", "inputSchema": { "additionalProperties": false, "properties": { "request": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "description": "Complete token screener request with all parameters (flattened).", "properties": { "buyVolume": { "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": "Filter by buy volume" }, "chains": { "default": [ "ethereum", "solana", "bnb", "base" ], "description": "Blockchain networks to query. Maximum of 5 chains can be specified. Supported: arbitrum, arc, avalanche, base, bitcoin, bnb, citrea, ethereum, hyperevm, hyperliquid, injective, iotaevm, linea, mantle, mantra, monad, near, optimism, plasma, polygon, robinhood, sei, solana, sonic, starknet, sui, ton, tron.", "items": { "type": "string" }, "type": "array" }, "fdv": { "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": "Filter by fully diluted valuation" }, "fdvMcRatio": { "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": "Filter by FDV/Market Cap ratio" }, "includeNativeTokens": { "default": false, "description": "Whether to include wrapped native tokens (e.g. WETH, WBNB) in results. Applies to spot chains only. Default false: the screener finds 'interesting' tokens, so set true only when the user asks for native tokens specifically.", "type": "boolean" }, "includeSmartMoneyLabels": { "description": "List of smart money labels to filter by (default: empty list). Use 'Any Smart Money' to include all smart money types. Requires traderType 'sm' (omitted/'all' auto-corrects to 'sm'; combining with 'whale' or 'public_figure' is an error).", "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" }, "includeStablecoins": { "default": false, "description": "Whether to include stablecoins (e.g. USDT, USDC, DAI) in results. Applies to spot chains only. Default false: the screener finds 'interesting' tokens, so set true only when the user asks for stablecoins specifically.", "type": "boolean" }, "inflowFdvRatio": { "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": "Filter by inflow/FDV ratio" }, "liquidity": { "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": "Filter by liquidity" }, "marketCapUsd": { "default": { "from": 1, "to": 1000000000000 }, "description": "Filter by market capitalization, only tokens with market cap > 1 USD and less than 1 trillion USD are included by default.", "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" }, "netflow": { "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": "Filter by net flow (inflows - outflows)" }, "nofBuyers": { "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": "Filter by number of buyers" }, "nofBuys": { "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": "Filter by number of buy transactions" }, "nofSellers": { "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": "Filter by number of sellers" }, "nofSells": { "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": "Filter by number of sell transactions" }, "nofTraders": { "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": "Filter by number of traders" }, "openInterest": { "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": "Filter by open interest (Exclusively for Hyperliquid perps)" }, "orderBy": { "anyOf": [ { "enum": [ "market_cap_usd", "volume", "liquidity", "nof_traders", "nof_buyers", "nof_sellers", "nof_buys", "nof_sells", "price_change", "price_usd", "netflow", "buy_volume", "sell_volume", "funding", "open_interest" ], "type": "string" }, { "type": "null" } ], "default": null, "description": "Sort field. Pass an exact value above or None for default ('netflow'). 'funding' and 'open_interest' sort Hyperliquid perps only; spot results fall back to 'netflow'." }, "orderByDirection": { "default": "DESC", "description": "Sort direction: 'ASC' or 'DESC' (case-insensitive).", "enum": [ "ASC", "DESC", "asc", "desc" ], "type": "string" }, "outflowFdvRatio": { "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": "Filter by outflow/FDV ratio" }, "page": { "default": 1, "description": "Page number, starting at 1. Each page returns up to 25 tokens.", "minimum": 1, "type": "integer" }, "perpSectors": { "anyOf": [ { "items": { "description": "Sector tags for the Hyperliquid perp screener (``category:subcategory``).\n\nDistinct from :class:`Sector` (spot on-chain taxonomy): the perp screener\nuses coarse ``Crypto:*`` / ``TradFi:*`` / ``Outcome:*`` tags.", "enum": [ "Crypto:L1", "Crypto:L2", "Crypto:DeFi", "Crypto:Meme", "Crypto:AI", "Crypto:Gaming", "TradFi:Stocks", "TradFi:Indices", "TradFi:Commodities", "TradFi:FX", "TradFi:Pre-IPO", "Outcome:Outcome" ], "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Hyperliquid perps sector filter. Only applies when 'hyperliquid' is in chains; ignored for spot. Leave empty for no filtering." }, "sectors": { "anyOf": [ { "items": { "description": "Sector options for token filtering.", "enum": [ "All Sectors", "Artificial Intelligence", "AI Agents", "AI Meme", "Bags.fm", "BRC20s/Bitcoin Ecosystem", "Data source and Oracle", "Decentralised Exchanges", "DeFi Lending (Money Markets)", "DePIN", "DeSci", "GambleFi", "GameFi", "Internet Capital Market", "L1/L2 Token & Derivatives", "LRTs", "LSTs", "Memecoins", "Metaverse", "NFTFi", "NFTs", "Crypto Payments", "Perps, Options and Derivatives", "RWAs", "Restaking", "Scaling & Connectivity", "Social Fi", "Stablecoin", "Stablecoin Issuers", "Yield Bearing", "Yield Farming Protocols" ], "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "List of sectors to filter tokens by (on-chain spot only). Leave empty for no filtering." }, "sellVolume": { "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": "Filter by sell volume" }, "timeframe": { "default": "24h", "description": "Time window for token data.", "enum": [ "5m", "10m", "1h", "6h", "24h", "7d", "30d" ], "type": "string" }, "tokenAgeDays": { "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": "Filter by token age in days" }, "traderType": { "anyOf": [ { "description": "Trader type filter for token screener.", "enum": [ "all", "sm", "whale", "public_figure", "high_winrate_hl_perps_trader" ], "type": "string" }, { "type": "null" } ], "default": null, "description": "Filter by trader cohort ('sm' = smart money). Omit or 'all' for all traders. 'high_winrate_hl_perps_trader' is Hyperliquid-perps only. includeSmartMoneyLabels only applies with 'sm'." }, "volume": { "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": "Filter by total trading volume" } }, "type": "object" } ] } }, "required": [ "request" ], "type": "object" }, "name": "token_discovery_screener", "outputSchema": { "properties": { "result": { "type": "string" } }, "required": [ "result" ], "type": "object", "x-fastmcp-wrap-result": true } }, { "description": "Get hourly token-flow history for ONE holder segment over a date range. Use `token_recent_flows_summary` instead for an on-chain snapshot across ALL wallet categories.\n\n**Note:** Using `holder_segment: smart_money` is not a good proxy for an overall market view. Use it only if user explicitly requests it, or to combine it with other non smart money data.\n\nThis is a **more granular** tool than `token_recent_flows_summary` and provides the TOTAL flows over the entire time frame broken down by segment.\n\n**Modes:**\n- `onchain_tokens` (default): Analyze on-chain tokens by contract address\n- `perps`: Analyze Hyperliquid perpetual futures by symbol (chain auto-set to \"hyperliquid\") — supports native tokens\n\n**NOTE:** Native tokens (0xeee…, So111…) cannot be queried in `onchain_tokens` mode. If a native placeholder address is supplied, this tool returns Hyperliquid perpetual-futures flows for that chain's native coin instead (e.g. hyperevm → HYPE, bnb → BNB, base → ETH) and prepends a prominent data-source warning. For native-token wallet-category flows on-chain, use `token_recent_flows_summary`.", "inputSchema": { "additionalProperties": false, "properties": { "request": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "description": "Complete request for token flows (flattened).", "properties": { "chain": { "default": "ethereum", "description": "Blockchain network. Supported: arbitrum, arc, avalanche, base, bnb, ethereum, hyperevm, injective, iotaevm, linea, mantle, mantra, monad, near, optimism, plasma, polygon, robinhood, ronin, scroll, sei, solana, sonic, sui, ton, tron, unichain, zksync", "type": "string" }, "dateRange": { "description": "Date range for flow analysis", "properties": { "from": { "description": "Start value: token (see above) or date (YYYY-MM-DD or ___-MM-DD).", "type": "string" }, "to": { "description": "End value: token (see above) or date (YYYY-MM-DD or ___-MM-DD).", "type": "string" } }, "required": [ "from", "to" ], "type": "object" }, "holder_segment": { "default": "top_100_holders", "description": "Label types for holder analysis and filtering.", "enum": [ "whale", "public_figure", "smart_money", "top_100_holders", "exchange" ], "type": "string" }, "mode": { "default": "onchain_tokens", "description": "Analysis mode: 'onchain_tokens' for on-chain tokens by contract address, 'perps' for Hyperliquid perpetual futures by symbol. If mode is omitted and token_address is a symbol (not a contract address), mode defaults to 'perps'.", "enum": [ "onchain_tokens", "perps" ], "type": "string" }, "page": { "default": 1, "description": "Page number, starting at 1", "minimum": 1, "type": "integer" }, "perPage": { "default": 10, "description": "Number of records per page, from 1 to 1000", "maximum": 1000, "minimum": 1, "type": "integer" }, "tokenAddress": { "type": "string" } }, "required": [ "tokenAddress" ], "type": "object" } ], "description": "TokenFlowsRequest containing parameters and pagination settings" } }, "required": [ "request" ], "type": "object" }, "name": "token_flows", "outputSchema": { "description": "Structured result of `token_flows`.", "properties": { "chain": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Chain" }, "date_from": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Date From" }, "date_to": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Date To" }, "holder_segment": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Holder Segment" }, "message": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Notice or error text when the tool returns no data rows.", "title": "Message" }, "mode": { "anyOf": [ { "enum": [ "onchain_tokens", "perps" ], "type": "string" }, { "type": "null" } ], "default": null, "title": "Mode" }, "pagination": { "anyOf": [ { "description": "Page position of the returned rows.", "properties": { "is_last_page": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": null, "title": "Is Last Page" }, "page": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Page" }, "per_page": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Per Page" } }, "title": "Pagination", "type": "object" }, { "type": "null" } ], "default": null }, "rows": { "items": { "description": "One time bucket of tracked holdings for the requested holder segment.", "properties": { "date": { "description": "Bucket timestamp (UTC).", "title": "Date", "type": "string" }, "holders_count": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "description": "Holders in the segment.", "title": "Holders Count" }, "price_usd": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Token price in USD.", "title": "Price Usd" }, "token_amount": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Tracked balance in tokens (perps: total position size).", "title": "Token Amount" }, "total_inflows_count": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Inflows in the bucket (perps: longs).", "title": "Total Inflows Count" }, "total_outflows_count": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Outflows in the bucket (perps: shorts).", "title": "Total Outflows Count" }, "value_usd": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Tracked balance in USD.", "title": "Value Usd" } }, "required": [ "date" ], "title": "TokenFlowRow", "type": "object" }, "title": "Rows", "type": "array" }, "token_address": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Token Address" } }, "title": "TokenFlowsOutput", "type": "object" } }, { "description": "Get token information — spot on-chain details or Hyperliquid perpetual futures stats.\n\nOn-chain tokens mode (default):\nReturns token details (name, symbol, market cap, FDV, supply, deployment date, socials)\nand spot trading metrics (volume, buys/sells, buyers/sellers, holders, liquidity).\n\nPerps mode:\nReturns Hyperliquid perp stats — mark price, funding, open interest,\nbuy/sell pressure, trader participation.\n\nReturns:\n Token information as markdown.\n\n On-chain tokens fields:\n - **Market Cap / FDV**: Market capitalization and fully diluted valuation\n - **Circulating / Total Supply**: Token supply metrics\n - **Deployed**: When the token was deployed\n - **Volume (Total / Buy / Sell)**: Trading volume in USD\n - **Buys / Sells**: Number of buy/sell transactions\n - **Unique Buyers / Sellers**: Distinct trading addresses\n - **Total Holders**: Number of token holders\n - **Liquidity**: Available liquidity in USD\n\n Perps fields:\n - **Mark Price**: Current perp mark price\n - **Price Change**: Change vs previous price\n - **Max Leverage**: Maximum leverage offered for the perp on Hyperliquid (e.g. \"40x\")\n - **Funding Rate (hourly/annualized)**: Current funding rate\n - **Open Interest**: Total current open interest in USD\n - **Volume (Total / Buy / Sell)**: Perp volume in USD\n - **Net Flow (Buy - Sell)**: Buy/sell pressure in USD\n - **Traders**: Number of traders\n\nExample:\n On-chain tokens (default mode):\n ```\n {\n \"mode\": \"onchain_tokens\",\n \"chain\": \"ethereum\",\n \"tokenAddress\": \"0xa0b86a33e6b6c4b3add000b44b3a1234567890ab\",\n \"timeframe\": \"1d\"\n }\n ```\n\n Hyperliquid perps:\n ```\n {\n \"mode\": \"perps\",\n \"tokenAddress\": \"BTC\",\n \"timeframe\": \"7d\"\n }\n ```\n\nNotes:\n - On-chain tokens mode uses contract addresses\n - Perps mode uses token symbols (e.g. BTC, ETH, HYPE)\n - Both modes use the same `timeframe` parameter", "inputSchema": { "additionalProperties": false, "properties": { "request": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "description": "Request for token info — spot (on-chain token details) or perps (Hyperliquid stats).", "properties": { "chain": { "default": "ethereum", "description": "Blockchain network. Supported: arbitrum, arc, avalanche, base, bnb, ethereum, hyperevm, injective, iotaevm, linea, mantle, mantra, monad, near, optimism, plasma, polygon, robinhood, ronin, scroll, sei, solana, sonic, sui, ton, tron, unichain, zksync", "type": "string" }, "mode": { "default": "onchain_tokens", "description": "Analysis mode: 'onchain_tokens' for on-chain token information, 'perps' for Hyperliquid perpetual futures stats 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" }, "timeframe": { "default": "1d", "description": "Timeframe for token metrics (5m, 1h, 6h, 12h, 1d, 7d)", "enum": [ "5m", "1h", "6h", "12h", "1d", "7d" ], "type": "string" }, "tokenAddress": { "type": "string" } }, "required": [ "tokenAddress" ], "type": "object" } ] } }, "required": [ "request" ], "type": "object" }, "name": "token_info", "outputSchema": { "properties": { "result": { "type": "string" } }, "required": [ "result" ], "type": "object", "x-fastmcp-wrap-result": true } }, { "description": "Get Jupiter DCA (dollar-cost-averaging) orders opened against a Solana token, with deposit size, amount spent so far, amount accumulated and order status.\nUse this to see scheduled buying or selling pressure that has not hit the market yet; use token_dex_trades for trades already executed. Solana tokens only.", "inputSchema": { "additionalProperties": false, "properties": { "request": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "description": "Request for Jupiter DCA orders on a Solana token (flattened).", "properties": { "depositUsdValue": { "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": "Filter by USD value of the DCA deposit" }, "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": "Restrict to traders holding these smart money labels" }, "page": { "default": 1, "type": "integer" }, "status": { "anyOf": [ { "enum": [ "Active", "Closed" ], "type": "string" }, { "type": "null" } ], "default": null, "description": "Filter by DCA order status" }, "tokenAddress": { "description": "Token address on Solana", "type": "string" }, "traderAddress": { "anyOf": [ { "type": "string" }, { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Filter by trader address" } }, "required": [ "tokenAddress" ], "type": "object" } ] } }, "required": [ "request" ], "type": "object" }, "name": "token_jup_dca", "outputSchema": { "properties": { "result": { "type": "string" } }, "required": [ "result" ], "type": "object", "x-fastmcp-wrap-result": true } }, { "description": "Get OHLCV (Open, High, Low, Close, Volume) price data for a token with automatic interval resolution.\n\nSupports EVM chains and Solana for on-chain tokens, AND Hyperliquid perpetual futures.\nFor Hyperliquid perps, pass `chain=\"hyperliquid\"` and use the perp symbol as `tokenAddress` (e.g. \"BTC\", \"HYPE\" for native perps; \"XYZ:ORDI\" for XYZ-namespaced perps — prefix is normalized automatically).\n\n**YOU MUST USE THIS** over `general_search` to get prices. **`general_search` prices are delayed and often incorrect.**\nTo get **LATEST** price set from to '5MIN_AGO' and to to 'NOW'.\n\n\nResolution is automatically calculated based on the date range\n- < 6 hours: 5 minutes\n- 6 hours - 1 day: 15 minutes\n- 1-3 days: 30 minutes\n- 3-7 days: 60 minutes (1 hour)\n- 7-90 days: Daily\n- 90+ days: Weekly\n\nColumns returned:\n- **Interval Start**: Timestamp of the start of the interval (datetime: YYYY-MM-DD HH:MM:SS)\n- **Open**: Opening price of the interval\n- **High**: Highest price of the interval\n- **Low**: Lowest price of the interval\n- **Close**: Closing price of the interval\n- **Volume USD**: Volume in USD of the interval\n\nAdditional columns (when includeMarketCap=true):\n- **Open Market Cap**: Opening market cap in USD\n- **Close Market Cap**: Closing market cap in USD\n- **High Market Cap**: Highest market cap in USD\n- **Low Market Cap**: Lowest market cap in USD\n\nExample Usage:\n Get OHLCV for WETH over the past week (auto-resolution):\n ```\n {\n \"chain\": \"ethereum\",\n \"tokenAddress\": \"0xba5ddd1f9d7f570dc94a51479a000e3bce967196\",\n \"date\": {\n \"from\": \"7D_AGO\",\n \"to\": \"NOW\"\n }\n }\n ```\n\n Get OHLCV for WETH over 30 days (will use daily resolution):\n ```\n {\n \"chain\": \"ethereum\",\n \"tokenAddress\": \"0xba5ddd1f9d7f570dc94a51479a000e3bce967196\",\n \"date\": {\n \"from\": \"30D_AGO\",\n \"to\": \"NOW\"\n }\n }\n ```\n Get OHLCV for WETH for last 20 minutes (will use 5 minute resolution):\n ```\n {\n \"chain\": \"ethereum\",\n \"tokenAddress\": \"0xba5ddd1f9d7f570dc94a51479a000e3bce967196\",\n \"date\": {\n \"from\": \"20MIN_AGO\",\n \"to\": \"NOW\"\n }\n }\n ```\n\n Get OHLCV for the BTC Hyperliquid perp over 7 days:\n ```\n {\n \"chain\": \"hyperliquid\",\n \"tokenAddress\": \"BTC\",\n \"date\": {\n \"from\": \"7D_AGO\",\n \"to\": \"NOW\"\n }\n }\n ```", "inputSchema": { "additionalProperties": false, "properties": { "request": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "description": "Unified request model for TGM OHLCV endpoint (flattened).\n\nResolution is automatically calculated based on the date range to keep\nresponses at approximately 100 rows, preventing context overflow.", "properties": { "chain": { "type": "string" }, "date": { "description": "Date range for OHLCV data with 'from' and 'to' fields", "properties": { "from": { "description": "Start value: token (see above) or date (YYYY-MM-DD or ___-MM-DD).", "type": "string" }, "to": { "description": "End value: token (see above) or date (YYYY-MM-DD or ___-MM-DD).", "type": "string" } }, "required": [ "from", "to" ], "type": "object" }, "includeMarketCap": { "default": false, "description": "Include market cap fields (openMcap, closeMcap, highMcap, lowMcap). Default: false for cleaner output", "type": "boolean" }, "tokenAddress": { "type": "string" } }, "required": [ "chain", "tokenAddress", "date" ], "type": "object" } ] } }, "required": [ "request" ], "type": "object" }, "name": "token_ohlcv", "outputSchema": { "properties": { "result": { "type": "string" } }, "required": [ "result" ], "type": "object", "x-fastmcp-wrap-result": true } }, { "description": "Upto 25 results (per page) of trader PnL for a token. Use the sorting and filtering options to narrow down the results.\n\n**Modes:**\n- `onchain_tokens` (default): Analyze on-chain tokens by contract address\n- `perps`: Analyze Hyperliquid perpetual futures by symbol (chain auto-set to \"hyperliquid\") — supports native tokens\n\n**NOTE:** This tool does not support native tokens (so11111111111111111111111111111111111111112, 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee) in `onchain_tokens` mode. Native tokens (by symbol - SOL, ETH, ARB etc) ARE fully supported in `perps` mode.\n\nReturns:\n Trader performance rankings as markdown. Returns empty string if no trading data found.\n\n Columns returned:\n - **Address**: Trader's wallet address\n - **Label**: Nansen label of the trader\n - **Total PnL**: Combined realized and unrealized PnL (currency formatted, can be negative)\n - **Total ROI**: Total return on investment as percentage (percentage formatted)\n - **Realized PnL**: Profit/loss from completed trades (currency formatted, can be negative)\n - **Realized ROI**: Return on investment from realized trades only (percentage formatted)\n - **Unrealized PnL**: Current profit/loss on open positions (currency formatted, can be negative)\n - **Unrealized ROI**: Return on investment from unrealized positions only (percentage formatted)\n - **Token Holdings**: Current token quantity held (numeric formatted)\n - **Holdings USD**: Current USD value of token holdings (currency formatted)\n - **Token Price**: Current price per token (price formatted)\n - **Peak Token Holdings**: Maximum token quantity ever held in the date range (numeric formatted)\n - **Peak Holdings USD**: Maximum USD value ever held in the date range (currency formatted)\n - **Still Holding %**: Percentage of peak holdings still held (percentage formatted)\n - **Total Trades**: Number of trades executed by this address\n - **Net Flow**: Net money flow - negative means net seller (currency formatted, can be negative)\n\n**Sorting** Options\nYou can **ONLY** sort by pnl_usd_total, roi_percent_total, pnl_usd_realised, roi_percent_realised,\npnl_usd_unrealised, roi_percent_unrealised, holding_amount, max_balance_held, nof_trades,\nstill_holding_balance_ratio, netflow_amount\n\n**Filtering** Options:\n 📋 List filters: trader_address, trader_address_label\n 📊 Numeric range filters: pnl_usd_realised, pnl_usd_unrealised, holding_amount, holding_usd,\n nof_trades, still_holding_balance_ratio, max_balance_held, max_balance_held_usd\n\nExamples:\n # On-chain tokens (default mode)\n ```\n {\n \"mode\": \"onchain_tokens\",\n \"chain\": \"ethereum\",\n \"tokenAddress\": \"0xa0b86a33e6ba3e5b9e4b1b1b1b1b1b1b1b1b1b1b\",\n \"dateRange\": {\"from\": \"30D_AGO\", \"to\": \"NOW\"},\n \"orderBy\": \"pnl_usd_total\",\n \"order_by_direction\": \"desc\"\n }\n ```\n\n # Hyperliquid perpetual futures\n ```\n {\n \"mode\": \"perps\",\n \"tokenAddress\": \"ETH\",\n \"dateRange\": {\"from\": \"7D_AGO\", \"to\": \"NOW\"}\n }\n ```\n\n # Advanced filtering: Find profitable active traders with significant holdings\n ```\n {\n \"chain\": \"ethereum\",\n \"tokenAddress\": \"0xa0b86a33e6ba3e5b9e4b1b1b1b1b1b1b1b1b1b1b\",\n \"dateRange\": {\"from\": \"30D_AGO\", \"to\": \"NOW\"},\n \"pnlUsdTotal\": {\"from\": 1000, \"to\": 999999999},\n \"nofTrades\": {\"from\": 5, \"to\": 100},\n \"holdingUsd\": {\"from\": 10000, \"to\": 999999999},\n \"stillHoldingBalanceRatio\": {\"from\": 0.1, \"to\": 1.0},\n \"orderBy\": \"roi_percent_total\",\n \"order_by_direction\": \"desc\"\n }\n ```\n\nNotes:\n - Ranked by total PnL performance by default\n - Useful for identifying successful traders and copying strategies\n - Both ascending and descending sorts provide valuable insights (winners vs losers)\n - ONLY RETURNS TOP 25 RESULTS for the sort order. Hence the result is NEVER complete.\n - Make sure the sort order is relevant to your analysis as otherwise you will miss data.\n\n** This tool does not support hyperevm as chain **", "inputSchema": { "additionalProperties": false, "properties": { "request": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "description": "Complete request for token PnL leaderboard (flattened).", "properties": { "boughtAmount": { "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": "Filter by total amount of tokens bought" }, "boughtUsd": { "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": "Filter by total USD value of tokens bought" }, "chain": { "default": "ethereum", "description": "Blockchain network. Supported: arbitrum, arc, avalanche, base, bnb, ethereum, hyperevm, injective, iotaevm, linea, mantle, mantra, monad, near, optimism, plasma, polygon, robinhood, ronin, scroll, sei, solana, sonic, sui, ton, tron, unichain, zksync", "type": "string" }, "dateRange": { "description": "Date range for PnL analysis", "properties": { "from": { "description": "Start value: token (see above) or date (YYYY-MM-DD or ___-MM-DD).", "type": "string" }, "to": { "description": "End value: token (see above) or date (YYYY-MM-DD or ___-MM-DD).", "type": "string" } }, "required": [ "from", "to" ], "type": "object" }, "fullName": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Filter by specific trader labels/names" }, "holdingAmount": { "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": "Filter by current token holdings amount" }, "holdingUsd": { "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": "Filter by current USD value of holdings" }, "maxBalanceHeld": { "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": "Filter by maximum token balance ever held" }, "maxBalanceHeldUsd": { "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": "Filter by maximum USD value ever held" }, "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" }, "netflowAmountUsd": { "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": "Filter by net flow (negative = net seller)" }, "nofBuys": { "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": "Filter by number of buy transactions" }, "nofSells": { "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": "Filter by number of sell transactions" }, "nofTrades": { "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": "Filter by number of trades" }, "orderBy": { "anyOf": [ { "enum": [ "pnl_usd_realised", "pnl_usd_unrealised", "pnl_usd_total", "roi_percent_total", "roi_percent_realised", "roi_percent_unrealised", "holding_amount", "max_balance_held", "still_holding_balance_ratio", "netflow_amount", "nof_trades" ], "type": "string" }, { "type": "null" } ], "default": null, "description": "Sort field. Pass an exact value above or None for default ('pnl_usd_realised'). Native-balance fields are preferred over USD twins." }, "order_by_direction": { "default": "DESC", "enum": [ "ASC", "DESC", "asc", "desc" ], "type": "string" }, "page": { "default": 1, "type": "integer" }, "pnlUsdRealised": { "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": "Filter by realized PnL (completed trades)" }, "pnlUsdTotal": { "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": "Filter by total PnL (combined realized and unrealized)" }, "pnlUsdUnrealised": { "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": "Filter by unrealized PnL (current positions)" }, "roiPercentRealised": { "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": "Filter by realized ROI percentage" }, "roiPercentTotal": { "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": "Filter by total ROI percentage" }, "roiPercentUnrealised": { "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": "Filter by unrealized ROI percentage" }, "soldAmount": { "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": "Filter by total amount of tokens sold" }, "soldUsd": { "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": "Filter by total USD value of tokens sold" }, "stillHoldingBalanceRatio": { "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": "Filter by percentage of peak holdings still held" }, "tokenAddress": { "type": "string" }, "traderAddress": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Filter by specific trader addresses" } }, "required": [ "tokenAddress" ], "type": "object" } ] } }, "required": [ "request" ], "type": "object" }, "name": "token_pnl_leaderboard", "outputSchema": { "properties": { "result": { "type": "string" } }, "required": [ "result" ], "type": "object", "x-fastmcp-wrap-result": true } }, { "description": "Get Nansen Score Indicators for a token - quantitative risk and reward signals.\n\nUse this tool when assessing a token's risk/reward profile, evaluating buy/sell decisions,\nor when the user needs quantitative data to make trading decisions.\n\nReturns:\n Token risk/reward indicators as markdown with interpretation guidance.\n\n Token info:\n - **Market Cap**: Current market cap in USD\n - **Market Cap Group**: largecap (>$1B), midcap ($100M-$1B), or lowcap (<$100M)\n - **Is Stablecoin**: Whether token is a stablecoin (some indicators don't apply to stablecoins)\n\n Fields returned per indicator:\n - **Score**: Signal classification (bullish/neutral/bearish for reward; low/medium/high for risk)\n - **Signal**: Raw numeric value of the indicator\n - **Percentile**: Rank vs same market cap group (0-100%)\n - **Last Trigger**: Date when signal was last calculated\n\n Indicator types:\n - **Reward Indicators**: price-momentum, funding-rate, chain-fees, chain-tvl, protocol-fees, trading-range\n - **Risk Indicators**: btc-reflexivity, liquidity-risk, token-supply-inflation, concentration-risk, cex-flows\n\n\nNotes:\n - Not all indicators available for every token/chain combination\n - Percentile compares against same market cap group (largecap >$1B, midcap $100M-$1B, lowcap <$100M)", "inputSchema": { "additionalProperties": false, "properties": { "request": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "description": "Request model for Nansen Score Indicators endpoint (flattened).", "properties": { "chain": { "default": "ethereum", "description": "Blockchain chain (ethereum, solana, base, bnb, polygon, arbitrum, etc.). On-chain tokens only — Hyperliquid perps NOT supported.", "type": "string" }, "tokenAddress": { "description": "Token contract address", "type": "string" } }, "required": [ "tokenAddress" ], "type": "object" } ] } }, "required": [ "request" ], "type": "object" }, "name": "token_quant_scores", "outputSchema": { "properties": { "result": { "type": "string" } }, "required": [ "result" ], "type": "object", "x-fastmcp-wrap-result": true } }, { "description": "Get an on-chain flow snapshot across **ALL** wallet categories in one call. This tool supports native ETH on Ethereum and native SOL on Solana, and is the correct choice for standard lookbacks such as 1d.\n\nReturns **TOTAL** token flows per segment:\n 1. Public Figures\n 2. Top PnL Traders\n 3. Whales\n 4. Smart Traders\n 5. Exchanges\n 6. Fresh Wallets\n\nInflow and outflow of tokens between the segments is CRITICAL in identifying token price trends.\n\nThe values provided are **aggregated over the specific lookback period (last 5min, 1d, 7d etc) specified**. If you have SPECIFIC date ranges in mind, use `token_flows` instead.\n\n**NOTE** Use `token_flows` for more granular data as it can filter between exact dates and provides HOURLY breakdowns.\n\nReturns:\n Categorized token flow analysis as markdown.\n\n For each segment, returns:\n - Flow amount in USD\n - Ratio compared to average flow\n - Number of wallets\n\n Format: \"{Segment} wallet flow of {amount} ({ratio}x average, from {count} wallets)\"\n\nNotes:\n - Positive flow = net buying, negative flow = net selling\n - For Exchange Flow, positive means more inflow to exchanges, negative means more outflow from exchanges\n - Categorizes market participants by their historical behavior and characteristics\n\nNOTE: Bitcoin is not supported. DO NOT use this tool for bitcoin.\n\n**Modes:**\n- `onchain_tokens` (default): On-chain token flow intelligence across cohorts\n- `perps`: Hyperliquid perpetual futures — returns position intelligence (current aggregate long/short/total USD by cohort: Smart Money, Whales, Public Figures). Native tokens (SOL, ETH, BTC etc) are fully supported in perps mode.", "inputSchema": { "additionalProperties": false, "properties": { "request": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "description": "Complete request for token recent flows summary (flattened).", "properties": { "chain": { "default": "ethereum", "description": "Blockchain network. Supported: arbitrum, arc, avalanche, base, bnb, ethereum, hyperevm, injective, iotaevm, linea, mantle, mantra, monad, near, optimism, plasma, polygon, robinhood, ronin, scroll, sei, solana, sonic, sui, ton, tron, unichain, zksync", "type": "string" }, "lookbackPeriod": { "default": "1d", "description": "Lookback period for analysis", "enum": [ "5m", "1h", "6h", "12h", "1d", "7d" ], "type": "string" }, "mode": { "default": "onchain_tokens", "description": "Analysis mode: 'onchain_tokens' for on-chain tokens, 'perps' for Hyperliquid perpetual futures by symbol. If mode is omitted and token_address is a symbol (not a contract address), mode defaults to 'perps'.", "enum": [ "onchain_tokens", "perps" ], "type": "string" }, "tokenAddress": { "type": "string" } }, "required": [ "tokenAddress" ], "type": "object" } ] } }, "required": [ "request" ], "type": "object" }, "name": "token_recent_flows_summary", "outputSchema": { "properties": { "result": { "type": "string" } }, "required": [ "result" ], "type": "object", "x-fastmcp-wrap-result": true } }, { "description": "List valid token sectors for token discovery filters.", "inputSchema": { "additionalProperties": false, "properties": {}, "type": "object" }, "name": "token_sectors", "outputSchema": { "properties": { "result": { "type": "string" } }, "required": [ "result" ], "type": "object", "x-fastmcp-wrap-result": true } }, { "description": "Get a technical-analysis snapshot for a token: SMA(20/50/200), EMA(12/26), RSI(14), MACD(12,26,9), Bollinger Bands(20, 2σ), ATR(14), and rolling VWAP(20), computed from the last 260 closed candles at an explicit timeframe.\n\nSupports EVM chains and Solana for on-chain tokens, AND Hyperliquid perpetual futures.\nFor Hyperliquid perps, pass `chain=\"hyperliquid\"` and use the perp symbol as `tokenAddress` (e.g. \"BTC\", \"HYPE\" for native perps; \"XYZ:ORDI\" for XYZ-namespaced perps — prefix is normalized automatically).\n\n**YOU MUST USE THIS** for technical analysis instead of computing indicators from raw `token_ohlcv` candles — it uses far more history (260 closed candles) and charting-platform conventions (SMA-seeded EMA, Wilder RSI/ATR, population-σ Bollinger).\n\nTimeframes (explicit, no auto-resolution):\n- 5m / 15m / 30m / 1h / 4h: intraday and short-horizon analysis\n- 1d (default): swing/position horizon\n- 1w: long-term trend\n\nOutput: a snapshot header (candles used, date range, last close, 5-candle price change) plus one row per indicator, each with a 5-candle trend delta so you can read direction, not just level:\n- **SMA 20/50/200**: values, price vs each, MA slopes\n- **EMA 12/26**: values, spread %, widening/narrowing\n- **RSI(14)**: level, prior candle, 5-candle change\n- **MACD(12,26,9)**: line/signal/histogram, rising/falling, candles since signal cross\n- **Bollinger(20,2σ)**: bands, %B, bandwidth and its change\n- **ATR(14)**: value and % of price (volatility), rising/falling\n- **VWAP(20)**: value, price vs VWAP\n\nIndicators without enough closed-candle history render as n/a (e.g. SMA200 on young tokens); the candle count used is always reported. VWAP is n/a on Hyperliquid 5m-1h timeframes (volume is NULL in those views) — use 4h or 1d for Hyperliquid VWAP.\n\nExample Usage:\n Daily technical snapshot for WETH:\n ```\n {\n \"chain\": \"ethereum\",\n \"tokenAddress\": \"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\",\n \"timeframe\": \"1d\"\n }\n ```\n\n 4-hour snapshot for the BTC Hyperliquid perp:\n ```\n {\n \"chain\": \"hyperliquid\",\n \"tokenAddress\": \"BTC\",\n \"timeframe\": \"4h\"\n }\n ```", "inputSchema": { "additionalProperties": false, "properties": { "request": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "description": "Request for the token_technical_indicators tool (explicit timeframe,\nalways computed up to now — no date range).", "properties": { "chain": { "type": "string" }, "timeframe": { "default": "1d", "description": "Candle timeframe for the indicator computation: 5m, 15m, 30m, 1h, 4h, 1d, or 1w. Default: 1d.", "enum": [ "5m", "15m", "30m", "1h", "4h", "1d", "1w" ], "type": "string" }, "tokenAddress": { "type": "string" } }, "required": [ "chain", "tokenAddress" ], "type": "object" } ] } }, "required": [ "request" ], "type": "object" }, "name": "token_technical_indicators", "outputSchema": { "properties": { "result": { "type": "string" } }, "required": [ "result" ], "type": "object", "x-fastmcp-wrap-result": true } }, { "description": "Get 25 token transfers (per page) for a specific token based on the sort order.\nDefault is most recent transfers first.\n\n**NOTE:** This tool does not support native tokens (so11111111111111111111111111111111111111112, 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee).\n\nColumns returned:\n- **Time**: Timestamp when the transfer occurred (block_timestamp: ISO 8601 format)\n- **From Label**: Source address label (from_address_label: sender of tokens)\n- **To Label**: Destination address label (to_address_label: receiver of tokens)\n- **From Address**: Raw source address (from_address: hex address)\n- **To Address**: Raw destination address (to_address: hex address)\n- **Amount**: Quantity of tokens transferred (transfer_amount: numeric)\n- **Value USD**: USD value of the transfer at time of transaction (transfer_value_usd: currency formatted)\n- **Type**: Transfer category (transaction_type: DEX, CEX, transfer, etc.)\n- **Tx Hash**: Blockchain transaction hash for verification (transaction_hash)\n\nSorting Options (all fields support \"asc\"/\"desc\"):\n Available for sorting: timestamp, amount\n\nExamples:\n # Basic request (most recent transfers first)\n ```\n {\n \"chain\": \"ethereum\",\n \"tokenAddress\": \"0xa0b86a33e6b6c4b3add000b44b3a1234567890ab\",\n \"dateRange\": {\"from\": \"24H_AGO\", \"to\": \"NOW\"},\n \"orderBy\": \"timestamp\",\n \"order_by_direction\": \"desc\"\n }\n ```\n\n # Smart money only filter (largest transfers first)\n ```\n {\n \"chain\": \"ethereum\",\n \"tokenAddress\": \"0xa0b86a33e6b6c4b3add000b44b3a1234567890ab\",\n \"dateRange\": {\"from\": \"7D_AGO\", \"to\": \"NOW\"},\n \"transferOriginCategories\": [\"all_transfers\"],\n \"onlySmartTradersAndFunds\": true,\n \"orderBy\": \"amount\",\n \"order_by_direction\": \"desc\"\n }\n ```\n\n # Filter by DEX only with minimum transfer value (USD)\n ```\n {\n \"chain\": \"ethereum\",\n \"tokenAddress\": \"0xa0b86a33e6b6c4b3add000b44b3a1234567890ab\",\n \"dateRange\": {\"from\": \"24H_AGO\", \"to\": \"NOW\"},\n \"transferOriginCategories\": [\"dex\"],\n \"transferValueUsd\": {\"from\": 1000}\n }\n ```\n\n # Filter transfers sent FROM a specific wallet\n ```\n {\n \"chain\": \"base\",\n \"tokenAddress\": \"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913\",\n \"dateRange\": {\"from\": \"2025-03-12\", \"to\": \"2025-03-12\"},\n \"fromAddress\": \"0x2b060b9c89B8aD04e5E1fD40F1f327e41DD32c72\",\n \"orderBy\": \"timestamp\",\n \"order_by_direction\": \"desc\"\n }\n ```\n\n**Available Filters:**\n\nAddress Filters:\n- **fromAddress** (str or list[str], optional): Filter by sender address(es)\n Example: \"0x2b060b9c89B8aD04e5E1fD40F1f327e41DD32c72\"\n Example: [\"0xaddr1\", \"0xaddr2\"]\n- **toAddress** (str or list[str], optional): Filter by recipient address(es)\n Use fromAddress/toAddress when looking for a specific wallet's transfers.\n\nTransfer Origin Categories:\n- **transferOriginCategories** (list[str]): List of transfer types to include\n Possible values: ['dex', 'cex', 'non_exchange_transfers', 'all_transfers']\n Default: ['all_transfers']\n Examples:\n - ['dex'] - only DEX transfers\n - ['cex'] - only CEX transfers\n - ['dex', 'cex'] - both DEX and CEX\n - ['non_exchange_transfers'] - only non-exchange transfers\n - ['all_transfers'] - all types (default)\n\nSmart Money Filter:\n- **onlySmartTradersAndFunds** (bool): Only show smart money transfers (default: false)\n When true, filters to show **only** transfers involving profitable addresses\n\nNumeric Range Filter:\n- **transferValueUsd** (object, optional): Filter by USD value of transfer\n Format: {\"from\": X, \"to\": Y} or {\"from\": X} or {\"to\": Y}\n - Specify only `from` for minimum bound (no maximum)\n - Specify only `to` for maximum bound (no minimum)\n - Specify both for a bounded range\n Example: {\"from\": 1000} - only transfers worth at least $1,000 USD\n Example: {\"to\": 50000} - only transfers up to $50,000 USD\n Example: {\"from\": 1000, \"to\": 50000} - transfers between $1,000 and $50,000 USD\n Note: This filters by the USD value of the transfer at time of transaction\n\nNotes:\n - Use fromAddress/toAddress to find transfers for a specific wallet\n - Use transferOriginCategories to control which transfer origins are included\n - Smart Money filter shows **only** transfers involving profitable addresses (definition of *Smart Money*)\n - transferValueUsd filters by USD value at time of transaction", "inputSchema": { "additionalProperties": false, "properties": { "request": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "description": "Complete request for token transfers (flattened).", "properties": { "chain": { "type": "string" }, "dateRange": { "description": "Date range for transfer analysis. Max window: 365 days — longer ranges are clamped to the most recent year and the effective range is reported in the response. Prefer relative tokens (1H_AGO, 24H_AGO, 7D_AGO, 30D_AGO, 1Y_AGO).", "properties": { "from": { "description": "Start value: token (see above) or date (YYYY-MM-DD or ___-MM-DD).", "type": "string" }, "to": { "description": "End value: token (see above) or date (YYYY-MM-DD or ___-MM-DD).", "type": "string" } }, "required": [ "from", "to" ], "type": "object" }, "fromAddress": { "anyOf": [ { "type": "string" }, { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Filter by sender address(es)" }, "onlySmartTradersAndFunds": { "default": false, "description": "Whether to include only smart money transfers.", "type": "boolean" }, "orderBy": { "anyOf": [ { "enum": [ "timestamp", "amount" ], "type": "string" }, { "type": "null" } ], "default": null, "description": "Sort field. Pass an exact value above or None for default ('amount')." }, "order_by_direction": { "default": "DESC", "enum": [ "ASC", "DESC", "asc", "desc" ], "type": "string" }, "page": { "default": 1, "type": "integer" }, "toAddress": { "anyOf": [ { "type": "string" }, { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Filter by recipient address(es)" }, "tokenAddress": { "type": "string" }, "transferOriginCategories": { "default": [ "all_transfers" ], "description": "List of transfer types to include. Possible values: ['dex', 'cex', 'non_exchange_transfers', 'all_transfers']", "items": { "type": "string" }, "type": "array" }, "transferValueUsd": { "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": "Range of USD values for transfer analysis" } }, "required": [ "chain", "tokenAddress" ], "type": "object" } ] } }, "required": [ "request" ], "type": "object" }, "name": "token_transfers", "outputSchema": { "properties": { "result": { "type": "string" } }, "required": [ "result" ], "type": "object", "x-fastmcp-wrap-result": true } }, { "description": "Get TOTAL amount of tokens bought/sold by address for a token on DEX (Decentralised Exchanges) ONLY.\n\nUse this tool to find out WHO is buying or selling a token (on DEX) AND then you can check if they are liquidating profits or accumulating more.\n\nReturns:\n Aggregated buyer/seller activity as markdown. Returns empty string if no trading data found.\n\n Columns returned:\n - **Address**: Trader's wallet address\n - **Label**: Nansen label of the address\n - **Bought Token Volume**: Total quantity of tokens purchased\n - **Sold Token Volume**: Total quantity of tokens sold\n - **Gross Token Volume**: Combined buy and sell volume in tokens\n - **Bought Volume USD**: USD value of all token purchases\n - **Sold Volume USD**: USD value of all token sales\n - **Gross Volume USD**: Combined USD trading volume\n\nSorting Options:\n You can sort asc or desc by bought_volume_usd or sold_volume_usd\n\nNotes:\n - buy_or_sell parameter filters for \"BUY\" (net buyers) or \"SELL\" (net sellers)\n - Aggregates all trading activity within the specified time range", "inputSchema": { "additionalProperties": false, "properties": { "request": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "description": "Complete request for token who bought/sold (flattened).", "properties": { "buy_or_sell": { "description": "Transaction type for buyers or sellers analysis", "enum": [ "BUY", "SELL" ], "type": "string" }, "chain": { "type": "string" }, "include_labels": { "description": "Filter based on a particular set of segments based on label, default is empty which includes all segments", "items": { "description": "Wallet labels for holder analysis and filtering.", "enum": [ "Whale", "Public Figure", "Exchange", "Fund", "30D Smart Trader", "90D Smart Trader", "180D Smart Trader", "All Time Smart Trader" ], "type": "string" }, "type": "array" }, "min_trade_volume_usd": { "default": 10, "type": "number" }, "orderBy": { "anyOf": [ { "enum": [ "token_trade_volume", "bought_token_volume", "sold_token_volume" ], "type": "string" }, { "type": "null" } ], "default": null, "description": "Sort field. Pass an exact value above or None for default ('token_trade_volume'). USD volume fields are disabled; native token volume is preferred." }, "order_by_direction": { "default": "DESC", "enum": [ "ASC", "DESC", "asc", "desc" ], "type": "string" }, "page": { "default": 1, "type": "integer" }, "time_range": { "description": "Date range for analysis", "properties": { "from": { "description": "Start value: token (see above) or date (YYYY-MM-DD or ___-MM-DD).", "type": "string" }, "to": { "description": "End value: token (see above) or date (YYYY-MM-DD or ___-MM-DD).", "type": "string" } }, "required": [ "from", "to" ], "type": "object" }, "tokenAddress": { "type": "string" } }, "required": [ "chain", "tokenAddress", "buy_or_sell" ], "type": "object" } ] } }, "required": [ "request" ], "type": "object" }, "name": "token_who_bought_sold", "outputSchema": { "description": "Structured result of `token_who_bought_sold`.", "properties": { "buy_or_sell": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Buy Or Sell" }, "chain": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Chain" }, "date_from": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Date From" }, "date_to": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Date To" }, "message": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Notice or error text when the tool returns no data rows.", "title": "Message" }, "pagination": { "anyOf": [ { "description": "Page position of the returned rows.", "properties": { "is_last_page": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": null, "title": "Is Last Page" }, "page": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Page" }, "per_page": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Per Page" } }, "title": "Pagination", "type": "object" }, { "type": "null" } ], "default": null }, "rows": { "items": { "description": "Aggregated DEX buy and sell volume of one address for the token.", "properties": { "address": { "title": "Address", "type": "string" }, "address_label": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Address Label" }, "bought_token_volume": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Bought Token Volume" }, "bought_volume_usd": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Bought Volume Usd" }, "sold_token_volume": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Sold Token Volume" }, "sold_volume_usd": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Sold Volume Usd" }, "token_trade_volume": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Gross token volume (bought + sold).", "title": "Token Trade Volume" }, "trade_volume_usd": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Gross USD volume (bought + sold).", "title": "Trade Volume Usd" } }, "required": [ "address" ], "title": "TokenTraderVolumeRow", "type": "object" }, "title": "Rows", "type": "array" }, "token_address": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Token Address" } }, "title": "TokenWhoBoughtSoldOutput", "type": "object" } }, { "description": "Get comprehensive transaction details including token transfers.", "inputSchema": { "additionalProperties": false, "properties": { "chain": { "default": "all", "type": "string" }, "transaction_hash": { "type": "string" } }, "required": [ "transaction_hash" ], "type": "object" }, "name": "transaction_lookup", "outputSchema": { "properties": { "result": { "type": "string" } }, "required": [ "result" ], "type": "object", "x-fastmcp-wrap-result": true } }, { "description": "Get PnL stats for a specific token traded by the input address during a specific date range.\nUse this tool for analysing the performance of the wallet for the specific token over a time period.\n\nChain: pass 'hyperliquid' for a perp coin — there `tokenAddress` is the perp\nSYMBOL (e.g. 'BTC', 'HYPE', 'xyz:CL'), not a contract address. Every other\nchain expects a token contract address.", "inputSchema": { "additionalProperties": false, "properties": { "request": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "description": "Complete request for wallet PnL for token (flattened).", "properties": { "chain": { "default": "evm", "description": "Blockchain to query. Use 'hyperliquid' for a Hyperliquid perp coin — then tokenAddress is the perp SYMBOL (e.g. 'BTC', 'HYPE', 'xyz:CL'), not a contract address, and the wallet must be an EVM address. Every other chain expects a token contract address.", "type": "string" }, "dateRange": { "description": "Date range for PnL analysis", "properties": { "from": { "description": "Start value: token (see above) or date (YYYY-MM-DD or ___-MM-DD).", "type": "string" }, "to": { "description": "End value: token (see above) or date (YYYY-MM-DD or ___-MM-DD).", "type": "string" } }, "required": [ "from", "to" ], "type": "object" }, "showRealized": { "description": "Set to true for realized PnL (completed/closed trades), false for current position analysis (unrealized PnL + active holdings). Ignored on chain='hyperliquid', which always reports both.", "type": "boolean" }, "tokenAddress": { "description": "Token address to generate PnL stats for", "type": "string" }, "walletAddress": { "description": "The wallet address to analyze", "type": "string" } }, "required": [ "walletAddress", "tokenAddress", "dateRange", "showRealized" ], "type": "object" } ] } }, "required": [ "request" ], "type": "object" }, "name": "wallet_pnl_for_token", "outputSchema": { "properties": { "result": { "type": "string" } }, "required": [ "result" ], "type": "object", "x-fastmcp-wrap-result": true } }, { "description": "Get aggregate stats of overall realized PnL for the input address.\nFor Hyperliquid perp traders (chain='hyperliquid'), includes realized PnL\nfrom fills plus a current unrealized snapshot of open positions.\nFor chain='all'/'evm' on an EVM address, reports spot/on-chain and\nHyperliquid perp results as separate sections (never summed).\nFor a single named chain, this tool covers realized PnL only.\nUse this tool for analysing the performance of the wallet over a time period.", "inputSchema": { "additionalProperties": false, "properties": { "request": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "description": "Complete request for wallet PnL summary (flattened).", "properties": { "chain": { "default": "evm", "description": "Blockchain to query. Use 'hyperliquid' for Hyperliquid perp traders only (realized PnL from fills + current unrealized snapshot). 'evm'/'all' on an EVM address reports spot/on-chain and Hyperliquid perp results in separate sections. Or pass a specific chain name for that chain's spot PnL alone.", "type": "string" }, "dateRange": { "description": "Date range for PnL summary analysis", "properties": { "from": { "description": "Start value: token (see above) or date (YYYY-MM-DD or ___-MM-DD).", "type": "string" }, "to": { "description": "End value: token (see above) or date (YYYY-MM-DD or ___-MM-DD).", "type": "string" } }, "required": [ "from", "to" ], "type": "object" }, "walletAddress": { "description": "The wallet address to analyze", "type": "string" } }, "required": [ "walletAddress", "dateRange" ], "type": "object" } ] } }, "required": [ "request" ], "type": "object" }, "name": "wallet_pnl_summary", "outputSchema": { "properties": { "result": { "type": "string" } }, "required": [ "result" ], "type": "object", "x-fastmcp-wrap-result": true } } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:a860a36e161107cf020908550de84b7459321cf685d4be5814b75b47fb694387 | sha256sum