Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Changed the definition of "token_discovery_screener"
⟨146 unchanged words⟩ sellVolume, openInterest, netflow, nofTraders, traderType - Perps support orderBy='price_change' for every traderType. Prices use completed 5-minute buckets at the timeframe boundaries. - Additional orderBy fields for perps: open_interest, funding ⟨841 unchanged words⟩
⟨1055 unchanged words⟩ perps only; spot results fall back to 'netflow'. 'price_change' sorts Hyperliquid perps across all trader types."},"orderByDirection":{"default":"DESC", ⟨529 unchanged words⟩
Changed the definition of "token_transfers"
⟨8 unchanged words⟩ specific token based on the sort order. Default: the last 24 hours, largest transfers first (orderBy "amount", "desc"). Direction rules (fromAddress = the sender, toAddress = the receiver): - "Transfers of X", "X's transfers", "track X", and "what ismostXrecentdoing" do not name a direction. For these, make two calls with the same address: one with fromAddress, one with toAddress. Sort both by amount. Each call then shows different transactions: the largest sent and the largest received. - Use only fromAddress when the user asks what X sent (outflows, withdrawals, "sent to", "moved to an exchange"). - Use only toAddress when the user asks what X received (inflows, deposits, "where did X get"). - Do not put the same address in fromAddress and toAddress of one call. The filters combine with AND, so the call returns only transfersfirst.from the wallet to itself (usually none). - If the user names no wallet, do not add an address filter. **NOTE:** This tool does not support native
Changed the definition of "address_dex_trades", "address_historical_balances", "prediction_market_address_trades" and 3 more
⟨103 unchanged words⟩ the trades (defaults to last 7 days). Use ALL_TIME for full history (start 2009-01-03).","properties":{"from":{"description": ⟨215 unchanged words⟩
⟨71 unchanged words⟩ used together with address."},"lookbackDays":{"anyOf":[{"enum":[1,7,30,90,120,365,730],"type":"integer"},{"const":"ALL_TIME"}],"default":1,"description":"Number of daysDays to look back for historicalbalances","enum":[
Changed the definition of "address_related_addresses", "token_flows" and "token_who_bought_sold"
{"description":"Structured result of `address_related_addresses`.","properties":{"resultaddress":{"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":["result
Added "address_first_funder", "entity_name_search" and "token_jup_dca" (47 tools before, 50 now)
Finding the first funder — Get the first address that ever funded an EVM wallet, with the funding transaction hash, chain and timestamp. Use 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.
Searching entity names — Search Nansen's entity names by a partial name and get back the exact entity names that match. Use 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.
Checking Jupiter DCA orders — Get Jupiter DCA (dollar-cost-averaging) orders opened against a Solana token, with deposit size, amount spent so far, amount accumulated and order status. Use 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.
Added "address_counterparties_batch" (46 tools before, 47 now)
Comparing wallet connections — Get the top counterparties of up to 10 wallet addresses in one call. Every wallet gets its own counterparty list. The lists are NOT added together: the answer has one table for each wallet. Use this tool to compare wallets — counterparties that two wallets share, a group of wallets that sends to the same CEX deposit address, or one fund with many wallets. For one wallet, or for an entity name, use address_counterparties. Limits: - Maximum 10 distinct wallet addresses for each call. Repeated addresses are removed. - Maximum 90 days for the date range. A wider range is rejected — make mo…
Changed the definition of "address_labels", "smart_traders_and_funds_dex_trades", "smart_traders_and_funds_netflow" and 9 more
⟨41 unchanged words⟩ ","enum":["all","arbitrum","arc","avalanche","base","bnb","ethereum"," ⟨54 unchanged words⟩
⟨42 unchanged words⟩ query all supported chains. Supported chains: arbitrum, arc, avalanche, base, bnb, ethereum, hyperevm, iotaevm ⟨226 unchanged words⟩
Changed the definition of "address_counterparties", "address_dex_trades", "address_historical_balances" and 43 more
before
—after
{"destructiveHint":false,"openWorldHint":true,"readOnlyHint":true}before
—after
{"destructiveHint":false,"openWorldHint":true,"readOnlyHint":true}Certificate changed, valid to 2026-12-12
Changed the definition of "prediction_market_address_pnl", "prediction_market_address_summary", "prediction_market_pnl_leaderboard" and 1 more
Prediction market PnL breakdown for a Polygonwallet.wallet, market by market. **When to use:** - Wallet-level Polymarket track record with per-market cost and proceeds. **Key fields:** -Market-by-market`Total PnLwhenUSD` = redemption + unrealized value + sell proceeds − buy cost, for that market only. - `Net Buy Cost USD` is what theAPIwalletprovidespaidit.for shares. -Blank`Net
Certificate recorded, valid to 2026-10-18
Authorization not required
First tool surface recorded: 46 tools (server version 3.2.4)
Showing the latest 13 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
⟨106 unchanged words⟩ null"}],"default":null,"description":"FilterWallet(s)bythatsenderSENT the tokens. Use alone only when the user asks what a wallet sent. 'Transfers of X' names no direction: then make a second call with toAddress. Do not put the same address(es)in toAddress: the filters combine with AND."},"onlySmartTradersAndFunds":{"default":false,"description ⟨25 unchanged words⟩ exact value above or None for default ('amount', largest first). Use 'timestamp' only when the user asks for the latest transfers or a time order."},"order_by_direction":{"default":"DESC", ⟨22 unchanged words⟩ null"}],"default":null,"description":"FilterWallet(s)bythatrecipientRECEIVED the tokens. Use alone only when the user asks what a wallet received. 'Transfers of X' names no direction: then make a second call with fromAddress. Do not put the same address(es)in fromAddress: the filters combine with AND."},"tokenAddress":{"type":"string"} ⟨93 unchanged words⟩
⟨31 unchanged words⟩ 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.\nWeekLAST_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 ⟨86 unchanged words⟩
⟨22 unchanged words⟩ 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.\nWeekLAST_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 ⟨152 unchanged words⟩
⟨21 unchanged words⟩ 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.\nWeekLAST_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 ⟨107 unchanged words⟩
⟨49 unchanged words⟩ 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.\nWeekLAST_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 ⟨230 unchanged words⟩
{"description":"Structured result of `token_flows`.","properties":{"resultchain":{"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":["resultdate"],"title":"TokenFlowRow","type":"object"},"x-fastmcp-wrap-resulttitle":true"Rows","type":"array"},"token_address":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Token Address"}},"title":"TokenFlowsOutput","type":"object"}
{"description":"Structured result of `token_who_bought_sold`.","properties":{"resultbuy_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":["resultaddress"],"title":"TokenTraderVolumeRow","type":"object"},"x-fastmcp-wrap-resulttitle":true"Rows","type":"array"},"token_address":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Token Address"}},"title":"TokenWhoBoughtSoldOutput","type":"object"}
⟨41 unchanged words⟩ query all supported chains. Supported chains: arbitrum, arc, avalanche, base, bnb, ethereum, hyperevm, iotaevm ⟨222 unchanged words⟩
⟨42 unchanged words⟩ query all supported chains. Supported chains: arbitrum, arc, avalanche, base, bnb, ethereum, hyperevm, iotaevm ⟨139 unchanged words⟩
⟨41 unchanged words⟩ query all supported chains. Supported chains: arbitrum, arc, avalanche, base, bnb, ethereum, hyperevm, iotaevm ⟨162 unchanged words⟩
⟨39 unchanged words⟩ ,"description":"Blockchain network. Supported: arbitrum, arc, avalanche, base, bnb, ethereum, hyperevm, injective ⟨456 unchanged words⟩
⟨46 unchanged words⟩ ,"description":"Blockchain network. Supported: arbitrum, arc, avalanche, base, bnb, ethereum, hyperevm, injective ⟨317 unchanged words⟩
⟨93 unchanged words⟩ 5 chains can be specified. Supported: arbitrum, arc, avalanche, base, bitcoin, bnb, citrea, ethereum ⟨1488 unchanged words⟩
⟨21 unchanged words⟩ ,"description":"Blockchain network. Supported: arbitrum, arc, avalanche, base, bnb, ethereum, hyperevm, injective ⟨176 unchanged words⟩
⟨28 unchanged words⟩ ,"description":"Blockchain network. Supported: arbitrum, arc, avalanche, base, bnb, ethereum, hyperevm, injective ⟨97 unchanged words⟩
⟨149 unchanged words⟩ ,"description":"Blockchain network. Supported: arbitrum, arc, avalanche, base, bnb, ethereum, hyperevm, injective ⟨1270 unchanged words⟩
⟨23 unchanged words⟩ ,"description":"Blockchain network. Supported: arbitrum, arc, avalanche, base, bnb, ethereum, hyperevm, injective ⟨89 unchanged words⟩
before
—after
{"destructiveHint":false,"openWorldHint":true,"readOnlyHint":true}before
—after
{"destructiveHint":false,"openWorldHint":true,"readOnlyHint":true}before
—after
{"destructiveHint":false,"openWorldHint":true,"readOnlyHint":true}before
—after
{"destructiveHint":false,"openWorldHint":true,"readOnlyHint":true}before
—after
{"destructiveHint":false,"openWorldHint":true,"readOnlyHint":true}before
—after
{"destructiveHint":false,"openWorldHint":true,"readOnlyHint":true}before
—after
{"destructiveHint":false,"openWorldHint":true,"readOnlyHint":true}before
—after
{"destructiveHint":false,"openWorldHint":true,"readOnlyHint":true}before
—after
{"destructiveHint":false,"openWorldHint":true,"readOnlyHint":true}before
—after
{"destructiveHint":false,"openWorldHint":true,"readOnlyHint":true}before
—after
{"destructiveHint":false,"openWorldHint":true,"readOnlyHint":true}before
—after
{"destructiveHint":false,"openWorldHint":true,"readOnlyHint":true}before
—after
{"destructiveHint":false,"openWorldHint":true,"readOnlyHint":true}before
—after
{"destructiveHint":false,"openWorldHint":true,"readOnlyHint":true}before
—after
{"destructiveHint":false,"openWorldHint":true,"readOnlyHint":true}before
—after
{"destructiveHint":false,"openWorldHint":true,"readOnlyHint":true}before
—after
{"destructiveHint":false,"openWorldHint":true,"readOnlyHint":true}before
—after
{"destructiveHint":false,"openWorldHint":true,"readOnlyHint":true}before
—after
{"destructiveHint":false,"openWorldHint":true,"readOnlyHint":true}before
—after
{"destructiveHint":false,"openWorldHint":true,"readOnlyHint":true}before
—after
{"destructiveHint":false,"openWorldHint":true,"readOnlyHint":true}before
—after
{"destructiveHint":false,"openWorldHint":true,"readOnlyHint":true}before
—after
{"destructiveHint":false,"openWorldHint":true,"readOnlyHint":true}before
—after
{"destructiveHint":false,"openWorldHint":true,"readOnlyHint":true}before
—after
{"destructiveHint":false,"openWorldHint":true,"readOnlyHint":true}before
—after
{"destructiveHint":false,"openWorldHint":true,"readOnlyHint":true}before
—after
{"destructiveHint":false,"openWorldHint":true,"readOnlyHint":true}before
—after
{"destructiveHint":false,"openWorldHint":true,"readOnlyHint":true}before
—after
{"destructiveHint":false,"openWorldHint":true,"readOnlyHint":true}before
—after
{"destructiveHint":false,"openWorldHint":true,"readOnlyHint":true}before
—after
{"destructiveHint":false,"openWorldHint":true,"readOnlyHint":true}before
—after
{"destructiveHint":false,"openWorldHint":true,"readOnlyHint":true}before
—after
{"destructiveHint":false,"openWorldHint":true,"readOnlyHint":true}before
—after
{"destructiveHint":false,"openWorldHint":true,"readOnlyHint":true}before
—after
{"destructiveHint":false,"openWorldHint":true,"readOnlyHint":true}before
—after
{"destructiveHint":false,"openWorldHint":true,"readOnlyHint":true}before
—after
{"destructiveHint":false,"openWorldHint":true,"readOnlyHint":true}before
—after
{"destructiveHint":false,"openWorldHint":true,"readOnlyHint":true}before
—after
{"destructiveHint":false,"openWorldHint":true,"readOnlyHint":true}before
—after
{"destructiveHint":false,"openWorldHint":true,"readOnlyHint":true}before
—after
{"destructiveHint":false,"openWorldHint":true,"readOnlyHint":true}before
—after
{"destructiveHint":false,"openWorldHint":true,"readOnlyHint":true}before
—after
{"destructiveHint":false,"openWorldHint":true,"readOnlyHint":true}before
—after
{"destructiveHint":false,"openWorldHint":true,"readOnlyHint":true}⟨43 unchanged words⟩ is active on Polymarket. **Key fields:** -Aggregate`Marketsvolume,Traded`trade/marketandcounts,`MarketswinWon`rate,areROI,lifetimeandcounts; `Win Rate` is won / traded. - `Total PnLwhereUSD` = realized + unrealized. - `First Seen` and `Wallet Age (Days)` show how long the wallet has beenAPIactiveprovidesonthem.Polymarket. **Pitfalls:** -BlankThePnLAPI gives no trade count, volume, or ROI here. Do not state them. For per-market cost and proceeds use `prediction_market_address_pnl`. - Blank PnL fields mean unavailable data, not zero.
⟨11 unchanged words⟩ Only for profitability claims. **Key fields:** - `Total PnL USD` = redemption + unrealized value + sell proceeds − buy cost, for this market only. - `Net Buy Cost USD` is what the wallet paid for shares. - `Net Sell Proceeds USD` is what it received for shares sold before resolution. - `Redemption Value USD` is the payout collected after the market settled. - `Unrealized Value USD` is the marked value of shares still held. - `Side Held` reflects current side exposure where the API provides it. **Pitfalls:** - The API gives no ROI, volume, or trade count here. Do not state them. - If PnL fields are blank, say ⟨21 unchanged words⟩
⟨9 unchanged words⟩ :** - `Position Size (Shares)` is the share quantityheldstillinheld. - `Buy Cost USD` and `Sell Proceeds USD` are the cash paid and received for thismarket.outcome token. -`Position`Unrealized Value USD` iscurrentthe marked value,notoffinalsharespayoutstillatheld;resolution. - `Cost`RedemptionBasisValue USD`andis`Unrealizedthe payout collected after settlement. - `Position PnL USD`applyapplies to the displayed rowonly — not thewallet's total PM activity. **Pitfalls:** - Each row is one outcome token of one wallet. A wallet holding both sides appears twice. **Prerequisites:** If `marketId` is unknown, call `prediction_market_lookup` first.