{"version":1,"x402Version":2,"description":"EmblemAI — onchain AI assistant with 200+ payment-gated crypto tools. Pay per tool call via x402.","instructions":"1. GET /api/tools/discover to list all tools with x402 metadata and inputSchema.\n2. GET /api/tools/pricing/{token} to get per-tool prices. Supported tokens: .\n3. POST https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/{toolName} without PAYMENT-SIGNATURE to receive 402 with multi-token PaymentRequirements.\n4. Sign the payment locally, then POST again with PAYMENT-SIGNATURE header to execute and settle.","resources":["POST /api/tools/execute/unified/wallet","POST /api/tools/execute/unified/getAllBalances","POST /api/tools/execute/unified/birdeyeTradeData","POST /api/tools/execute/unified/birdeyeTrendingTokens","POST /api/tools/execute/unified/searchEvmTokensBirdeye","POST /api/tools/execute/unified/getLeaderboard","POST /api/tools/execute/unified/findPositionById","POST /api/tools/execute/unified/getAllPositions","POST /api/tools/execute/unified/cancelPosition","POST /api/tools/execute/unified/updatePosition","POST /api/tools/execute/unified/deleteConditionalOrder","POST /api/tools/execute/unified/listPositions","POST /api/tools/execute/unified/closeAllPositions","POST /api/tools/execute/unified/tokenMetadataInfo","POST /api/tools/execute/unified/getChangeNowSupportedCurrencies","POST /api/tools/execute/unified/getChangeNowSwapQuote","POST /api/tools/execute/unified/swapUsingChangeNow","POST /api/tools/execute/unified/getChangeNowTransactionStatus","POST /api/tools/execute/unified/setSlippageSettings","POST /api/tools/execute/unified/displayRecommendedSolanaTokensToBuy","POST /api/tools/execute/unified/displayRecommendedEVMTokensToBuy","POST /api/tools/execute/unified/displayRecommendedHederaTokensToBuy","POST /api/tools/execute/unified/getCoinglassEthereumEtfList","POST /api/tools/execute/unified/getCoinglassEthereumETFNetAssetsHistory","POST /api/tools/execute/unified/getCoinglassGrayscaleHoldings","POST /api/tools/execute/unified/getCoinglassBitcoinEtfList","POST /api/tools/execute/unified/getCoinglassBitcoinETFNetAssetsHistory","POST /api/tools/execute/unified/getCoinglassFutureBasis","POST /api/tools/execute/unified/getCoinglassFuturesWhaleIndex","POST /api/tools/execute/unified/getCoinglassCGDIIndex","POST /api/tools/execute/unified/getCoinglassCDRIIndex","POST /api/tools/execute/unified/getCoinglassPremiumIndex","POST /api/tools/execute/unified/getCoinglassBitfinexMarginData","POST /api/tools/execute/unified/getCoinglassBorrowInterestRate","POST /api/tools/execute/unified/getCoinglassExchangeAssets","POST /api/tools/execute/unified/getCoinglassExchangeBalanceList","POST /api/tools/execute/unified/getCoinglassOnChainTransfers","POST /api/tools/execute/unified/getCoinglassHyperliquidWhaleAlert","POST /api/tools/execute/unified/getCoinglassHyperliquidWhalePosition","POST /api/tools/execute/unified/getCoinglassOptionsInfo","POST /api/tools/execute/unified/getCoinglassOpenInterestHistory","POST /api/tools/execute/unified/websearch","POST /api/tools/execute/unified/firecrawlExtract","POST /api/tools/execute/unified/solanaBalances","POST /api/tools/execute/unified/solanaTransfer","POST /api/tools/execute/unified/findSolanaSwapToken","POST /api/tools/execute/unified/splBuyIntent","POST /api/tools/execute/unified/solanaGetTokenPairPrice","POST /api/tools/execute/unified/solanaGetTokenPrices","POST /api/tools/execute/unified/rugcheck","POST /api/tools/execute/unified/getPumpFunTokens","POST /api/tools/execute/unified/deployPumpFunToken","POST /api/tools/execute/unified/createLaunchLabToken","POST /api/tools/execute/unified/discoverLaunchLabTokens","POST /api/tools/execute/unified/findSolanaGems","POST /api/tools/execute/unified/createSolanaConditionalTradePosition","POST /api/tools/execute/unified/hederaNativeSend","POST /api/tools/execute/unified/hederaERC20TokenSend","POST /api/tools/execute/unified/hederaGetBalances","POST /api/tools/execute/unified/hederaContractIdToEvmAddress","POST /api/tools/execute/unified/hederaAccountIdToEvmAddress","POST /api/tools/execute/unified/hederaFindTokens","POST /api/tools/execute/unified/hederaTokensSwapQuote","POST /api/tools/execute/unified/hederaTokensSwap","POST /api/tools/execute/unified/hederaFindMemeCoins","POST /api/tools/execute/unified/hederaMemejobBuyToken","POST /api/tools/execute/unified/hederaMemeJobSellToken","POST /api/tools/execute/unified/createHederaConditionalTradePosition","POST /api/tools/execute/unified/ethNativeSend","POST /api/tools/execute/unified/ethSendERC20Token","POST /api/tools/execute/unified/ethSendNFT","POST /api/tools/execute/unified/ethGetBalances","POST /api/tools/execute/unified/ethSwapQuote","POST /api/tools/execute/unified/ethSwap","POST /api/tools/execute/unified/createEthereumConditionalTradePosition","POST /api/tools/execute/unified/bnbNativeSend","POST /api/tools/execute/unified/bscSendERC20Token","POST /api/tools/execute/unified/bscGetBalances","POST /api/tools/execute/unified/bscSwapQuote","POST /api/tools/execute/unified/bscSwap","POST /api/tools/execute/unified/bscfindMemeCoinsViaFourMeme","POST /api/tools/execute/unified/bscBuyFourMemeToken","POST /api/tools/execute/unified/bscSellFourMemeToken","POST /api/tools/execute/unified/isFourMemeToken","POST /api/tools/execute/unified/createBscConditionalTradePosition","POST /api/tools/execute/unified/polygonNativeSend","POST /api/tools/execute/unified/polygonSendERC20Token","POST /api/tools/execute/unified/polygonGetBalances","POST /api/tools/execute/unified/polygonSwapQuote","POST /api/tools/execute/unified/polygonSwap","POST /api/tools/execute/unified/createPolygonConditionalTradePosition","POST /api/tools/execute/unified/baseNativeSend","POST /api/tools/execute/unified/baseSendERC20Token","POST /api/tools/execute/unified/baseSendNFT","POST /api/tools/execute/unified/baseGetBalances","POST /api/tools/execute/unified/baseSwapQuote","POST /api/tools/execute/unified/baseSwap","POST /api/tools/execute/unified/baseFindClankerTokens","POST /api/tools/execute/unified/createBaseConditionalTradePosition","POST /api/tools/execute/unified/nansen_smart_money_holdings","POST /api/tools/execute/unified/nansen_smart_money_flows","POST /api/tools/execute/unified/nansen_smart_money_trades","POST /api/tools/execute/unified/nansen_pnl_leaderboard","POST /api/tools/execute/unified/nansen_who_bought_sold","POST /api/tools/execute/unified/nansen_wallet_profiler","POST /api/tools/execute/unified/nansen_perp_positions","POST /api/tools/execute/unified/nansen_defi_portfolio","POST /api/tools/execute/unified/nansen_token_screener","POST /api/tools/execute/unified/getPolyMarketEvents","POST /api/tools/execute/unified/getPolyMarketTags","POST /api/tools/execute/unified/getPolyMarketEventsByTag","POST /api/tools/execute/unified/searchPolyMarketEvents","POST /api/tools/execute/unified/getPolyMarketEvent","POST /api/tools/execute/unified/getPolyMarketUserPositions","POST /api/tools/execute/unified/placePolyMarketOrder","POST /api/tools/execute/unified/redeemPolyMarketPosition","POST /api/tools/execute/unified/getUtxoRunes","POST /api/tools/execute/unified/getOwnedInscriptionIds","POST /api/tools/execute/unified/getInscriptionsByAddress","POST /api/tools/execute/unified/getRuneBalances","POST /api/tools/execute/unified/getRareSats","POST /api/tools/execute/unified/getInscriptionActivity","POST /api/tools/execute/unified/getRunesActivity","POST /api/tools/execute/unified/getBRC20Activity","POST /api/tools/execute/unified/getInscriptionInfo","POST /api/tools/execute/unified/getInscriptionTraits","POST /api/tools/execute/unified/getLatestInscriptions","POST /api/tools/execute/unified/inscriptionTransferActivity","POST /api/tools/execute/unified/getLatestRunes","POST /api/tools/execute/unified/getRuneInfo","POST /api/tools/execute/unified/getRuneMarketInfo","POST /api/tools/execute/unified/checkRuneUnlock","POST /api/tools/execute/unified/getBitcoinCollections","POST /api/tools/execute/unified/getCollectionInfo","POST /api/tools/execute/unified/getCollectionInscriptions","POST /api/tools/execute/unified/getCollectionMarketInfo","POST /api/tools/execute/unified/listAlkanes","POST /api/tools/execute/unified/getAlkaneInfo","POST /api/tools/execute/unified/getAlkaneAddressBalance","POST /api/tools/execute/unified/getAlkaneAddressUTXOs","POST /api/tools/execute/unified/listBRC20Tokens","POST /api/tools/execute/unified/getBRC20TokenInfo","POST /api/tools/execute/unified/rareSatsForUTXO","POST /api/tools/execute/unified/getSatRangesForUTXO","POST /api/tools/execute/unified/getStamp","POST /api/tools/execute/unified/searchStamps","POST /api/tools/execute/unified/getRecentStamps","POST /api/tools/execute/unified/getSRC20Token","POST /api/tools/execute/unified/searchSRC20Tokens","POST /api/tools/execute/unified/getStampsByAddress","POST /api/tools/execute/unified/getTopRunesByMarketCap","POST /api/tools/execute/unified/getTopRunesByVolume","POST /api/tools/execute/unified/getTopBRC20ByMarketCap","POST /api/tools/execute/unified/getTopBRC20ByVolume","POST /api/tools/execute/unified/getTrendingCoins","POST /api/tools/execute/unified/searchCryptoByName","POST /api/tools/execute/unified/getCryptoPrice","POST /api/tools/execute/unified/getCollectionVolume","POST /api/tools/execute/unified/getTopCollectionsByVolume","POST /api/tools/execute/unified/getTopCollectionsByFloor","POST /api/tools/execute/unified/getMagicEdenRunePrice","POST /api/tools/execute/unified/getBTCBalances","POST /api/tools/execute/unified/transferBTC","POST /api/tools/execute/unified/sendRunes","POST /api/tools/execute/unified/sendInscription","POST /api/tools/execute/unified/getXCPBalances","POST /api/tools/execute/unified/sendXCP","POST /api/tools/execute/unified/openseaListNFT","POST /api/tools/execute/unified/openseaCreateNFTOffer","POST /api/tools/execute/unified/openseaFulfillNFTOrder","POST /api/tools/execute/unified/openseaCancelNFTOrder","POST /api/tools/execute/unified/openseaTransferNFT","POST /api/tools/execute/unified/openseaGetNFTListings","POST /api/tools/execute/unified/openseaGetNFTOffers","POST /api/tools/execute/unified/openseaGetMyNFTs","POST /api/tools/execute/unified/openseaGetTrendingCollections","POST /api/tools/execute/unified/openseaGetCollectionStats","POST /api/tools/execute/unified/openseaGetCollectionActivity","POST /api/tools/execute/unified/openseaGetBestListings","POST /api/tools/execute/unified/emblemListMyVaults","POST /api/tools/execute/unified/emblemGetVaultDetails","POST /api/tools/execute/unified/emblemCreateVault","POST /api/tools/execute/unified/emblemMintVault","POST /api/tools/execute/unified/emblemRevealKeys","POST /api/tools/execute/unified/emblemRefreshBalance","POST /api/tools/execute/unified/emblemDeleteVault","POST /api/tools/execute/unified/emblemListCollections","POST /api/tools/execute/unified/emblemGetCollectionAssets","POST /api/tools/execute/unified/emblemResolveAsset","POST /api/tools/execute/unified/emblemGetDepositAddress","POST /api/tools/execute/unified/emblemQuickVault"],"routes":[{"resourceKey":"POST /api/tools/execute/unified/wallet","method":"POST","path":"/api/tools/execute/unified/wallet","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/wallet","summary":"Get the connected wallet and vault info across all networks","authRequired":true,"inputSchema":{"type":"object","properties":{}}},{"resourceKey":"POST /api/tools/execute/unified/getAllBalances","method":"POST","path":"/api/tools/execute/unified/getAllBalances","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/getAllBalances","summary":"Get balances across all supported networks (Solana, Ethereum, BSC, Polygon, Base, Hedera, Bitcoin). Uses the connected addresses from context. Returns per-network results and a requestedAt timestamp.","authRequired":true,"inputSchema":{"type":"object","properties":{}}},{"resourceKey":"POST /api/tools/execute/unified/birdeyeTradeData","method":"POST","path":"/api/tools/execute/unified/birdeyeTradeData","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/birdeyeTradeData","summary":"Get detailed trade data for a specific token from Birdeye. Supported chains: solana, ethereum, arbitrum, avalanche, bsc, optimism, polygon, base, zksync, sui. NOT supported: Hedera (use hederaTokensSwapQuote instead).","authRequired":false,"inputSchema":{"type":"object","properties":{"chain":{"type":"string","enum":["solana","ethereum","arbitrum","avalanche","bsc","optimism","polygon","base","zksync","sui"],"default":"solana","description":"Chain to fetch token data from. NOT supported: hedera"},"address":{"type":"string","description":"Token address to fetch trade data for"}},"required":["address"]}},{"resourceKey":"POST /api/tools/execute/unified/birdeyeTrendingTokens","method":"POST","path":"/api/tools/execute/unified/birdeyeTrendingTokens","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/birdeyeTrendingTokens","summary":"Get trending tokens from Birdeye with real-time price and market data. Supports multiple chains and sorting options.","authRequired":false,"inputSchema":{"type":"object","properties":{"chain":{"type":"string","enum":["solana","ethereum","arbitrum","avalanche","bsc","optimism","polygon","base","zksync","sui"],"description":"Chain to fetch trending tokens from (e.g., solana, ethereum)"},"sortBy":{"type":"string","enum":["rank"],"description":"Field to sort by. Currently only supports \"rank\""},"sortType":{"type":"string","enum":["asc","desc"],"description":"Sort direction: \"asc\" for ascending, \"desc\" for descending"},"offset":{"type":"number","minimum":0,"description":"Number of items to skip"},"limit":{"type":"number","minimum":1,"maximum":5,"description":"Number of trending tokens to fetch (MAX 5)"}}}},{"resourceKey":"POST /api/tools/execute/unified/searchEvmTokensBirdeye","method":"POST","path":"/api/tools/execute/unified/searchEvmTokensBirdeye","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/searchEvmTokensBirdeye","summary":"Search for evm tokens on Birdeye. Supports multiple chains like eth, polygon, bsc, base, etc.","authRequired":false,"inputSchema":{"type":"object","properties":{"chainId":{"type":"number","enum":[1,56,137,8453],"description":"Chain ID to search tokens on"},"query":{"type":"string","description":"Search query"}},"required":["chainId","query"]}},{"resourceKey":"POST /api/tools/execute/unified/getLeaderboard","method":"POST","path":"/api/tools/execute/unified/getLeaderboard","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/getLeaderboard","summary":"Emblem ecosystem trading leaderboard","authRequired":false,"inputSchema":{"type":"object","properties":{"page":{"type":"number","default":1,"description":"The page number of the leaderboard"},"pageSize":{"type":"number","default":20,"description":"The page size of the leaderboard"},"orderBy":{"type":"string","enum":["volume","transactions","referrals","aura","pnl"],"default":"volume","description":"The order by of the leaderboard"},"query":{"type":"string","description":"The query of the leaderboard"}}}},{"resourceKey":"POST /api/tools/execute/unified/findPositionById","method":"POST","path":"/api/tools/execute/unified/findPositionById","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/findPositionById","summary":"\nFind a conditional trade position by ID across ALL networks.\nUse this when you have a position ID but don't know which network it's on.\n","authRequired":true,"inputSchema":{"type":"object","properties":{"positionId":{"type":"string","description":"The position ID to find"}},"required":["positionId"]}},{"resourceKey":"POST /api/tools/execute/unified/getAllPositions","method":"POST","path":"/api/tools/execute/unified/getAllPositions","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/getAllPositions","summary":"\nGet ALL conditional trade positions across ALL networks\n(Solana, Ethereum, BSC, Polygon, Hedera) in a single call.\nOptionally filter by position status: OPEN, CLOSED, CANCELLED, FAILED.\n","authRequired":true,"inputSchema":{"type":"object","properties":{"status":{"type":"string","enum":["OPEN","CLOSED","CANCELLED","FAILED"],"description":"Optional: Filter by position status"}}}},{"resourceKey":"POST /api/tools/execute/unified/cancelPosition","method":"POST","path":"/api/tools/execute/unified/cancelPosition","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/cancelPosition","summary":"Cancel a conditional trade position on any supported network. If network is not provided, the position is looked up across all networks automatically.","authRequired":true,"inputSchema":{"type":"object","properties":{"positionId":{"type":"string","description":"The position ID to cancel"},"network":{"type":"string","enum":["solana","ethereum","bsc","polygon","hedera","base"],"description":"Network the position is on. If omitted, auto-detected via cross-chain lookup."}},"required":["positionId"]}},{"resourceKey":"POST /api/tools/execute/unified/updatePosition","method":"POST","path":"/api/tools/execute/unified/updatePosition","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/updatePosition","summary":"Update an existing conditional trade position on any supported network: entry price, stop-loss, and/or take-profit. If network is not provided, the position is looked up across all networks automatically.\n\nUSE THIS TOOL when user wants to:\n- Change the entry price of a pending LIMIT order\n- Add SL/TP to a position that doesn't have them\n- Change/replace existing SL/TP values\n- REMOVE existing SL/TP (pass null)\n\nBEHAVIOR:\n- entryPrice: Updates the pending entry order's trigger price (only for LIMIT orders not yet filled)\n- stopLoss/takeProfit: value provided = ADDS or REPLACES; null = REMOVES; omitted = unchanged\n- PENDING positions: saves config (exit orders created when entry fills)\n- OPEN positions: creates/deletes exit orders immediately\n- Cannot update CLOSED/CANCELLED positions\n\nWORKFLOW: 1) getAllPositions to find positionId, 2) Call this tool with positionId and updates","authRequired":true,"inputSchema":{"type":"object","properties":{"positionId":{"type":"string","description":"The position ID to update. Get this from getAllPositions first."},"network":{"type":"string","enum":["solana","ethereum","bsc","polygon","hedera","base"],"description":"Network the position is on. If omitted, auto-detected via cross-chain lookup."},"entryPrice":{"type":"string","description":"New entry trigger price as a decimal string (e.g. '0.000000876'). Only for pending LIMIT orders. Use priceFormatted from calculateAdjustedPrice."},"stopLossPrice":{"type":["string","null"],"description":"Stop-loss price as a decimal string. Pass null to REMOVE existing SL. Omit to leave unchanged."},"stopLossTriggerToken":{"type":"string","description":"Token address to monitor for SL trigger. Required if setting stopLossPrice."},"stopLossDirection":{"type":"string","enum":["ABOVE","BELOW"],"description":"SL trigger direction. Required if setting stopLossPrice."},"takeProfitPrice":{"type":["string","null"],"description":"Take-profit price as a decimal string. Pass null to REMOVE existing TP. Omit to leave unchanged."},"takeProfitTriggerToken":{"type":"string","description":"Token address to monitor for TP trigger. Required if setting takeProfitPrice."},"takeProfitDirection":{"type":"string","enum":["ABOVE","BELOW"],"description":"TP trigger direction. Required if setting takeProfitPrice."}},"required":["positionId"]}},{"resourceKey":"POST /api/tools/execute/unified/deleteConditionalOrder","method":"POST","path":"/api/tools/execute/unified/deleteConditionalOrder","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/deleteConditionalOrder","summary":"Delete (cancel) an existing conditional order OR execute it immediately on any supported network.\n\nIMPORTANT: Only PENDING orders can be deleted/executed. Executed orders cannot be modified.\nCRITICAL: Always ask the user to choose between 'cancel' or 'execute early' before proceeding!\n\nTWO ACTIONS AVAILABLE:\n- executeEarly=false (default): CANCELS the order permanently\n- executeEarly=true: EXECUTES the order immediately at current market price\n\nIf network is not provided, the order is located via cross-chain position search.\n\nWORKFLOW:\n1) getAllPositions to get orderId from position.orders\n2) ASK user: cancel vs execute early\n3) Call this tool with orderId and executeEarly parameter","authRequired":true,"inputSchema":{"type":"object","properties":{"orderId":{"type":"string","description":"The unique ID of the order to delete/cancel. Get this from listing positions/orders first."},"network":{"type":"string","enum":["solana","ethereum","bsc","polygon","hedera","base"],"description":"Network the order is on. If omitted, auto-detected via cross-chain position search."},"executeEarly":{"type":"boolean","description":"If true, execute the order immediately at market price instead of cancelling it. Defaults to false (cancel)."}},"required":["orderId"]}},{"resourceKey":"POST /api/tools/execute/unified/listPositions","method":"POST","path":"/api/tools/execute/unified/listPositions","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/listPositions","summary":"List conditional trade positions. If network is provided, lists positions for that specific network. If no network is provided, lists ALL positions across all supported networks (Solana, Ethereum, BSC, Polygon, Hedera, Base).","authRequired":true,"inputSchema":{"type":"object","properties":{"network":{"type":"string","enum":["solana","ethereum","bsc","polygon","hedera","base"],"description":"Specific network to list positions for. If omitted, lists across all networks."},"status":{"type":"string","enum":["OPEN","CLOSED","CANCELLED","FAILED"],"description":"Optional: Filter by position status"}}}},{"resourceKey":"POST /api/tools/execute/unified/closeAllPositions","method":"POST","path":"/api/tools/execute/unified/closeAllPositions","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/closeAllPositions","summary":"Close ALL conditional trade positions on a specified network. WARNING: This will cancel ALL positions on the specified network. Always confirm with the user before executing. Network is REQUIRED for safety -- this prevents accidentally closing positions across all networks.","authRequired":true,"inputSchema":{"type":"object","properties":{"network":{"type":"string","enum":["solana","ethereum","bsc","polygon","hedera","base"],"description":"The network to close all positions on. REQUIRED for safety."}},"required":["network"]}},{"resourceKey":"POST /api/tools/execute/unified/tokenMetadataInfo","method":"POST","path":"/api/tools/execute/unified/tokenMetadataInfo","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/tokenMetadataInfo","summary":"Get a token metadata and price info.","authRequired":false,"inputSchema":{"type":"object","properties":{"address":{"type":"string","description":"The token address"},"network":{"type":"string","enum":["solana","ethereum","arbitrum","avalanche","bsc","optimism","polygon","base","zksync","sui"],"description":"The network of the token"}},"required":["address","network"]}},{"resourceKey":"POST /api/tools/execute/unified/getChangeNowSupportedCurrencies","method":"POST","path":"/api/tools/execute/unified/getChangeNowSupportedCurrencies","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/getChangeNowSupportedCurrencies","summary":"Get supported currencies for cross-chain swaps","authRequired":false,"inputSchema":{"type":"object","properties":{"networks":{"type":"array","items":{"type":"string","enum":["sol","eth","bsc","matic","base","hbar","btc"]},"description":"Networks to filter currencies by"},"query":{"type":"string","description":"Search query for currency name/ticker"}},"required":["networks"]}},{"resourceKey":"POST /api/tools/execute/unified/getChangeNowSwapQuote","method":"POST","path":"/api/tools/execute/unified/getChangeNowSwapQuote","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/getChangeNowSwapQuote","summary":"Get a swap quote for cross-chain exchange. Tickers must be supported by ChangeNow.","authRequired":false,"inputSchema":{"type":"object","properties":{"fromTicker":{"type":"string","description":"Source currency ticker (e.g., 'eth')"},"toTicker":{"type":"string","description":"Destination currency ticker (e.g., 'sol')"},"fromAmount":{"type":"number","description":"Amount of source currency (e.g., 1 for 1 ETH)"}},"required":["fromTicker","toTicker","fromAmount"]}},{"resourceKey":"POST /api/tools/execute/unified/swapUsingChangeNow","method":"POST","path":"/api/tools/execute/unified/swapUsingChangeNow","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/swapUsingChangeNow","summary":"Execute a cross-chain swap via ChangeNow. Automatically sends funds and initiates the exchange.","authRequired":true,"inputSchema":{"type":"object","properties":{"fromCurrency":{"type":"string","description":"Source currency ticker"},"toCurrency":{"type":"string","description":"Destination currency ticker"},"fromNetwork":{"type":"string","enum":["sol","eth","bsc","matic","base","hbar","btc"],"description":"Source network"},"toNetwork":{"type":"string","enum":["sol","eth","bsc","matic","base","hbar","btc"],"description":"Destination network"},"fromAmount":{"type":"number","description":"Amount to swap"},"fromCurrencyTokenContract":{"type":["string","null"],"description":"From currency token contract address or null"}},"required":["fromCurrency","toCurrency","fromNetwork","toNetwork","fromAmount","fromCurrencyTokenContract"]}},{"resourceKey":"POST /api/tools/execute/unified/getChangeNowTransactionStatus","method":"POST","path":"/api/tools/execute/unified/getChangeNowTransactionStatus","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/getChangeNowTransactionStatus","summary":"Check the status of a ChangeNow cross-chain swap","authRequired":false,"inputSchema":{"type":"object","properties":{"transactionId":{"type":"string","description":"ChangeNow transaction ID"}},"required":["transactionId"]}},{"resourceKey":"POST /api/tools/execute/unified/setSlippageSettings","method":"POST","path":"/api/tools/execute/unified/setSlippageSettings","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/setSlippageSettings","summary":"Set the slippage settings for the wallet","authRequired":true,"inputSchema":{"type":"object","properties":{"swapSlippage":{"type":"number"},"pumpSlippage":{"type":"number"}},"required":["swapSlippage","pumpSlippage"]}},{"resourceKey":"POST /api/tools/execute/unified/displayRecommendedSolanaTokensToBuy","method":"POST","path":"/api/tools/execute/unified/displayRecommendedSolanaTokensToBuy","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/displayRecommendedSolanaTokensToBuy","summary":"Call this tool to display the recommended tokens to buy after you finish analysis and show it to user. Not for all tokens, only for tokens that are recommended by you.","authRequired":true,"inputSchema":{"type":"object","properties":{"tokens":{"type":"array","items":{"type":"object","properties":{"address":{"type":"string","description":"The mint address of the token"},"decimals":{"type":"number","description":"The decimals of the token"},"name":{"type":"string","description":"The name of the token"},"symbol":{"type":"string","description":"The symbol of the token"},"marketcap":{"type":"number","description":"The marketcap of the token"}},"required":["address","decimals","name","symbol","marketcap"],"additionalProperties":false}}},"required":["tokens"]}},{"resourceKey":"POST /api/tools/execute/unified/displayRecommendedEVMTokensToBuy","method":"POST","path":"/api/tools/execute/unified/displayRecommendedEVMTokensToBuy","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/displayRecommendedEVMTokensToBuy","summary":"Call this tool to display the recommended EVM tokens (Ethereum or BSC) to buy after you finish analysis and show it to user. Not for all tokens, only for tokens that are recommended by you.","authRequired":true,"inputSchema":{"type":"object","properties":{"chainId":{"type":"number","description":"The EVM chain ID (1 for Ethereum, 56 for BSC)"},"tokens":{"type":"array","items":{"type":"object","properties":{"address":{"type":"string","description":"The contract address of the token"},"decimals":{"type":"number","description":"The decimals of the token"},"name":{"type":"string","description":"The name of the token"},"symbol":{"type":"string","description":"The symbol of the token"},"marketcap":{"type":"number","description":"The marketcap of the token in USD"}},"required":["address","decimals","name","symbol","marketcap"],"additionalProperties":false}}},"required":["chainId","tokens"]}},{"resourceKey":"POST /api/tools/execute/unified/displayRecommendedHederaTokensToBuy","method":"POST","path":"/api/tools/execute/unified/displayRecommendedHederaTokensToBuy","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/displayRecommendedHederaTokensToBuy","summary":"Call this tool to display the recommended Hedera tokens to buy after you finish analysis and show it to user. Not for all tokens, only for tokens that are recommended by you.","authRequired":true,"inputSchema":{"type":"object","properties":{"tokens":{"type":"array","items":{"type":"object","properties":{"tokenId":{"type":"string","description":"The Hedera token ID (e.g., 0.0.456858)"},"decimals":{"type":"number","description":"The decimals of the token"},"name":{"type":"string","description":"The name of the token"},"symbol":{"type":"string","description":"The symbol of the token"},"marketcap":{"type":"number","description":"The marketcap of the token in USD"}},"required":["tokenId","decimals","name","symbol","marketcap"],"additionalProperties":false}}},"required":["tokens"]}},{"resourceKey":"POST /api/tools/execute/unified/getCoinglassEthereumEtfList","method":"POST","path":"/api/tools/execute/unified/getCoinglassEthereumEtfList","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/getCoinglassEthereumEtfList","summary":"Get the list of Ethereum ETFs with pagination","authRequired":false,"inputSchema":{"type":"object","properties":{"page":{"type":"number","default":1,"description":"Page number (starts from 1)"},"limit":{"type":"number","default":5,"description":"Number of items per page"}}}},{"resourceKey":"POST /api/tools/execute/unified/getCoinglassEthereumETFNetAssetsHistory","method":"POST","path":"/api/tools/execute/unified/getCoinglassEthereumETFNetAssetsHistory","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/getCoinglassEthereumETFNetAssetsHistory","summary":"Historical net assets data for Ethereum-based Exchange-Traded Funds (ETFs)","authRequired":false,"inputSchema":{"type":"object","properties":{"page":{"type":"number","default":1,"description":"Page number (starts from 1)"},"limit":{"type":"number","default":5,"description":"Number of items per page"}}}},{"resourceKey":"POST /api/tools/execute/unified/getCoinglassGrayscaleHoldings","method":"POST","path":"/api/tools/execute/unified/getCoinglassGrayscaleHoldings","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/getCoinglassGrayscaleHoldings","summary":"Provides a list of holdings managed by Grayscale Investments","authRequired":false,"inputSchema":{"type":"object","properties":{"page":{"type":"number","default":1,"description":"Page number (starts from 1)"},"limit":{"type":"number","default":5,"description":"Number of items per page"}}}},{"resourceKey":"POST /api/tools/execute/unified/getCoinglassBitcoinEtfList","method":"POST","path":"/api/tools/execute/unified/getCoinglassBitcoinEtfList","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/getCoinglassBitcoinEtfList","summary":"Provides a list of Bitcoin-based Exchange-Traded Funds (ETFs)","authRequired":false,"inputSchema":{"type":"object","properties":{"page":{"type":"number","default":1,"description":"Page number (starts from 1)"},"limit":{"type":"number","default":5,"description":"Number of items per page"}}}},{"resourceKey":"POST /api/tools/execute/unified/getCoinglassBitcoinETFNetAssetsHistory","method":"POST","path":"/api/tools/execute/unified/getCoinglassBitcoinETFNetAssetsHistory","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/getCoinglassBitcoinETFNetAssetsHistory","summary":"Historical net assets data for Bitcoin-based Exchange-Traded Funds (ETFs)","authRequired":false,"inputSchema":{"type":"object","properties":{"page":{"type":"number","default":1,"description":"Page number (starts from 1)"},"limit":{"type":"number","default":5,"description":"Number of items per page"}}}},{"resourceKey":"POST /api/tools/execute/unified/getCoinglassFutureBasis","method":"POST","path":"/api/tools/execute/unified/getCoinglassFutureBasis","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/getCoinglassFutureBasis","summary":"Provides historical futures basis data, including open and close basis rates and annualized percentage changes","authRequired":false,"inputSchema":{"type":"object","properties":{"symbol":{"type":"string","description":"The symbol of the cryptocurrency"},"exchange":{"type":"string","description":"The exchange of the cryptocurrency"},"interval":{"type":"string","description":"The interval of the cryptocurrency"},"page":{"type":"number","default":1,"description":"Page number (starts from 1)"},"limit":{"type":"number","default":5,"description":"Number of items per page"}},"required":["symbol","exchange","interval"]}},{"resourceKey":"POST /api/tools/execute/unified/getCoinglassFuturesWhaleIndex","method":"POST","path":"/api/tools/execute/unified/getCoinglassFuturesWhaleIndex","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/getCoinglassFuturesWhaleIndex","summary":"Provides a list of futures whale index data","authRequired":false,"inputSchema":{"type":"object","properties":{"page":{"type":"number","default":1,"description":"Page number (starts from 1)"},"limit":{"type":"number","default":5,"description":"Number of items per page"}}}},{"resourceKey":"POST /api/tools/execute/unified/getCoinglassCGDIIndex","method":"POST","path":"/api/tools/execute/unified/getCoinglassCGDIIndex","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/getCoinglassCGDIIndex","summary":"Provides historical CGDI (CoinGlass Derivatives Index) data","authRequired":false,"inputSchema":{"type":"object","properties":{"page":{"type":"number","default":1,"description":"Page number (starts from 1)"},"limit":{"type":"number","default":5,"description":"Number of items per page"}}}},{"resourceKey":"POST /api/tools/execute/unified/getCoinglassCDRIIndex","method":"POST","path":"/api/tools/execute/unified/getCoinglassCDRIIndex","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/getCoinglassCDRIIndex","summary":"Provides historical CDRI (CoinGlass Derivatives Risk Index) data","authRequired":false,"inputSchema":{"type":"object","properties":{"page":{"type":"number","default":1,"description":"Page number (starts from 1)"},"limit":{"type":"number","default":5,"description":"Number of items per page"}}}},{"resourceKey":"POST /api/tools/execute/unified/getCoinglassPremiumIndex","method":"POST","path":"/api/tools/execute/unified/getCoinglassPremiumIndex","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/getCoinglassPremiumIndex","summary":"Provides the Coinbase Bitcoin Premium Index, indicating price difference between Coinbase Pro and Binance","authRequired":false,"inputSchema":{"type":"object","properties":{"page":{"type":"number","default":1,"description":"Page number (starts from 1)"},"limit":{"type":"number","default":5,"description":"Number of items per page"}}}},{"resourceKey":"POST /api/tools/execute/unified/getCoinglassBitfinexMarginData","method":"POST","path":"/api/tools/execute/unified/getCoinglassBitfinexMarginData","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/getCoinglassBitfinexMarginData","summary":"Provides data on margin long and short positions from Bitfinex","authRequired":false,"inputSchema":{"type":"object","properties":{"symbol":{"type":"string","description":"The symbol of the cryptocurrency. example BTC"},"page":{"type":"number","default":1,"description":"Page number"},"limit":{"type":"number","default":5,"description":"Number of items per page"}},"required":["symbol"]}},{"resourceKey":"POST /api/tools/execute/unified/getCoinglassBorrowInterestRate","method":"POST","path":"/api/tools/execute/unified/getCoinglassBorrowInterestRate","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/getCoinglassBorrowInterestRate","summary":"Provides daily borrowing interest rates for cryptocurrencies","authRequired":false,"inputSchema":{"type":"object","properties":{"symbol":{"type":"string","description":"The symbol of the cryptocurrency. example BTC"},"exchange":{"type":"string","description":"The exchange of the cryptocurrency. example binance"},"interval":{"type":"string","default":"h1","description":"example: 1m, 3m, 5m, 15m, 30m, 1h, 4h, 6h, 8h, 12h, 1d, 1w."}},"required":["symbol","exchange"]}},{"resourceKey":"POST /api/tools/execute/unified/getCoinglassExchangeAssets","method":"POST","path":"/api/tools/execute/unified/getCoinglassExchangeAssets","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/getCoinglassExchangeAssets","summary":"Provides asset holdings data for exchange wallets, including address, balance, USD value, and price info","authRequired":false,"inputSchema":{"type":"object","properties":{"exchange":{"type":"string","description":"The exchange of the cryptocurrency. example binance"},"page":{"type":"number","default":1,"description":"Page number"},"limit":{"type":"number","default":5,"description":"Number of items per page"}},"required":["exchange"]}},{"resourceKey":"POST /api/tools/execute/unified/getCoinglassExchangeBalanceList","method":"POST","path":"/api/tools/execute/unified/getCoinglassExchangeBalanceList","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/getCoinglassExchangeBalanceList","summary":"Provides a list of exchange balances for a given symbol","authRequired":false,"inputSchema":{"type":"object","properties":{"symbol":{"type":"string","description":"The symbol of the cryptocurrency"},"page":{"type":"number","default":1,"description":"Page number"},"limit":{"type":"number","default":5,"description":"Number of items per page"}},"required":["symbol"]}},{"resourceKey":"POST /api/tools/execute/unified/getCoinglassOnChainTransfers","method":"POST","path":"/api/tools/execute/unified/getCoinglassOnChainTransfers","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/getCoinglassOnChainTransfers","summary":"Provides on-chain transfer records (ERC-20) for exchanges","authRequired":false,"inputSchema":{"type":"object","properties":{"page":{"type":"number","default":1,"description":"Page number (starts from 1)"},"limit":{"type":"number","default":5,"description":"Number of items per page"}}}},{"resourceKey":"POST /api/tools/execute/unified/getCoinglassHyperliquidWhaleAlert","method":"POST","path":"/api/tools/execute/unified/getCoinglassHyperliquidWhaleAlert","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/getCoinglassHyperliquidWhaleAlert","summary":"Provides real-time whale alerts on Hyperliquid, highlighting positions with notional value over $1M","authRequired":false,"inputSchema":{"type":"object","properties":{"page":{"type":"number","default":1,"description":"Page number (starts from 1)"},"limit":{"type":"number","default":5,"description":"Number of items per page"}}}},{"resourceKey":"POST /api/tools/execute/unified/getCoinglassHyperliquidWhalePosition","method":"POST","path":"/api/tools/execute/unified/getCoinglassHyperliquidWhalePosition","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/getCoinglassHyperliquidWhalePosition","summary":"Provides real-time whale position data on Hyperliquid","authRequired":false,"inputSchema":{"type":"object","properties":{"page":{"type":"number","default":1,"description":"Page number (starts from 1)"},"limit":{"type":"number","default":5,"description":"Number of items per page"}}}},{"resourceKey":"POST /api/tools/execute/unified/getCoinglassOptionsInfo","method":"POST","path":"/api/tools/execute/unified/getCoinglassOptionsInfo","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/getCoinglassOptionsInfo","summary":"Provides detailed information about open interest and trading volume for options across exchanges","authRequired":false,"inputSchema":{"type":"object","properties":{"symbol":{"type":"string","description":"The symbol of the cryptocurrency. example: BTC"},"page":{"type":"number","default":1,"description":"Page number"},"limit":{"type":"number","default":5,"description":"Number of items per page"}},"required":["symbol"]}},{"resourceKey":"POST /api/tools/execute/unified/getCoinglassOpenInterestHistory","method":"POST","path":"/api/tools/execute/unified/getCoinglassOpenInterestHistory","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/getCoinglassOpenInterestHistory","summary":"Provides historical open interest data for options across different exchanges","authRequired":false,"inputSchema":{"type":"object","properties":{"symbol":{"type":"string","description":"The symbol of the cryptocurrency. example: BTC"},"page":{"type":"number","default":1,"description":"Page number"},"limit":{"type":"number","default":5,"description":"Number of items per page"}},"required":["symbol"]}},{"resourceKey":"POST /api/tools/execute/unified/websearch","method":"POST","path":"/api/tools/execute/unified/websearch","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/websearch","summary":"Search the web for current news, information, and announcements. Use this for real-time market insights and breaking news.Do NOT use it for real-time price data for prices and swaps, use quote tools instead.","authRequired":false,"inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"The search query"}},"required":["query"]}},{"resourceKey":"POST /api/tools/execute/unified/firecrawlExtract","method":"POST","path":"/api/tools/execute/unified/firecrawlExtract","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/firecrawlExtract","summary":"Investigate or Extract structured data from web pages or urls using Firecrawl","authRequired":false,"inputSchema":{"type":"object","properties":{"url":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"prompt":{"type":"string"},"enableWebSearch":{"type":"boolean"},"options":{"type":"object","properties":{"retries":{"type":"number"}},"additionalProperties":false}},"required":["url"]}},{"resourceKey":"POST /api/tools/execute/unified/solanaBalances","method":"POST","path":"/api/tools/execute/unified/solanaBalances","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/solanaBalances","summary":"Get wallet balances on Solana","authRequired":true,"inputSchema":{"type":"object","properties":{}}},{"resourceKey":"POST /api/tools/execute/unified/solanaTransfer","method":"POST","path":"/api/tools/execute/unified/solanaTransfer","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/solanaTransfer","summary":"Transfer SOL or tokens. Always confirm with user before executing.","authRequired":true,"inputSchema":{"type":"object","properties":{"toWalletAddress":{"type":"string","description":"Destination wallet address"},"amount":{"type":"number","description":"Amount to transfer (human-readable)"},"tokenAddress":{"type":"string","description":"Token address, or 'SOL' for native"}},"required":["toWalletAddress","amount","tokenAddress"]}},{"resourceKey":"POST /api/tools/execute/unified/findSolanaSwapToken","method":"POST","path":"/api/tools/execute/unified/findSolanaSwapToken","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/findSolanaSwapToken","summary":"Find a Solana token by name or symbol. Use when splBuyIntent reports ambiguous token symbol.","authRequired":false,"inputSchema":{"type":"object","properties":{"tokenName":{"type":"string","description":"Token name or symbol to search"}},"required":["tokenName"]}},{"resourceKey":"POST /api/tools/execute/unified/splBuyIntent","method":"POST","path":"/api/tools/execute/unified/splBuyIntent","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/splBuyIntent","summary":"Get a quote or execute a swap for any SPL token. Supports flexible amount formats: \"1000\" (exact token qty), \"5 sol\" (spend SOL), \"$250\" (spend USD). Defaults to spending SOL. Handles token lookup, amount conversion, and routing automatically. PREFERRED over solanaSwapQuote/solanaSwap for most trading requests.","authRequired":true,"inputSchema":{"type":"object","properties":{"mode":{"type":"string","enum":["quote","swap"],"description":"quote = get price estimate only, swap = execute the trade"},"token":{"type":"string","description":"Token to buy - name, symbol, or mint address (CA). Examples: 'BONK', 'Jupiter', 'DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263'"},"amount_text":{"type":"string","description":"Amount in flexible format: \"1000\" or \"1.5m\" (exact token qty), \"5 sol\" (spend SOL), \"$250\" or \"$1k\" (spend USD)"},"spend_token":{"type":"string","description":"Token to spend (defaults to SOL). Use for token-to-token swaps like USDC->BONK."}},"required":["mode","token","amount_text"]}},{"resourceKey":"POST /api/tools/execute/unified/solanaGetTokenPairPrice","method":"POST","path":"/api/tools/execute/unified/solanaGetTokenPairPrice","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/solanaGetTokenPairPrice","summary":"Get price of a token pair","authRequired":false,"inputSchema":{"type":"object","properties":{"inputMint":{"type":"string","description":"Token being bought"},"outputMint":{"type":"string","description":"Token being sold"}},"required":["inputMint","outputMint"]}},{"resourceKey":"POST /api/tools/execute/unified/solanaGetTokenPrices","method":"POST","path":"/api/tools/execute/unified/solanaGetTokenPrices","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/solanaGetTokenPrices","summary":"Get prices for multiple tokens","authRequired":false,"inputSchema":{"type":"object","properties":{"tokenMints":{"type":"array","items":{"type":"string"},"description":"Token mint addresses"}},"required":["tokenMints"]}},{"resourceKey":"POST /api/tools/execute/unified/rugcheck","method":"POST","path":"/api/tools/execute/unified/rugcheck","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/rugcheck","summary":"Check if token is a rug/scam. score_normalised: 0=safe, 100=risky.","authRequired":false,"inputSchema":{"type":"object","properties":{"tokenMint":{"type":"string","description":"Token mint address"}},"required":["tokenMint"]}},{"resourceKey":"POST /api/tools/execute/unified/getPumpFunTokens","method":"POST","path":"/api/tools/execute/unified/getPumpFunTokens","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/getPumpFunTokens","summary":"Query PumpFun tokens (new, graduating, graduated)","authRequired":false,"inputSchema":{"type":"object","properties":{"type":{"type":"string","enum":["newly_created","about_to_graduate","graduated"],"description":"Type of tokens to query"},"orderBy":{"type":"string","enum":["curvePercent+desc","createdAt+desc"],"description":"Order by"},"chain":{"type":"string","enum":["sol"],"default":"sol"},"context":{"type":"string","enum":["meme"],"default":"meme"},"limit":{"type":"number","default":5},"marketCap_gte":{"type":"number","default":30000,"description":"market cap greater than value"},"marketCap_lte":{"type":"number","description":"market cap less than {value}"},"liquidUsd_gte":{"type":"number"},"liquidUsd_lte":{"type":"number"},"volume_gte":{"type":"number","default":5000,"description":"volume greater than value"},"volume_lte":{"type":"number","description":"volume less than value"},"devHoldPercent_gte":{"type":"number","description":"dev hold percent greater than value"},"devHoldPercent_lte":{"type":"number","description":"dev hold percent less than value"},"insiderHoldPercent_gte":{"type":"number"},"insiderHoldPercent_lte":{"type":"number"},"holderCount_gte":{"type":"number","default":30},"holderCount_lte":{"type":"number"},"buyCount_gte":{"type":"number"},"buyCount_lte":{"type":"number"},"sellCount_gte":{"type":"number"},"sellCount_lte":{"type":"number"},"tradeCount_gte":{"type":"number"},"tradeCount_lte":{"type":"number"},"sniperWalletCount_gte":{"type":"number"},"sniperWalletCount_lte":{"type":"number"}},"required":["type"]}},{"resourceKey":"POST /api/tools/execute/unified/deployPumpFunToken","method":"POST","path":"/api/tools/execute/unified/deployPumpFunToken","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/deployPumpFunToken","summary":"Deploy a new PumpFun token on solana","authRequired":true,"inputSchema":{"type":"object","properties":{"name":{"type":"string","description":"name of the token"},"symbol":{"type":"string","description":"symbol of the token"},"description":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string"}]},{"type":"null"}],"description":"description of the token"},"twitter":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string"}]},{"type":"null"}],"description":"twitter of the token"},"telegram":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string"}]},{"type":"null"}],"description":"telegram of the token"},"website":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string"}]},{"type":"null"}],"description":"website of the token"},"fileUrl":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string"}]},{"type":"null"}]},"file":{"anyOf":[{"anyOf":[{"not":{}},{}]},{"type":"null"}],"description":"image file of the token as blob"},"initialBuyInSol":{"type":"number","description":"initial sol amount to buy"}},"required":["name","symbol"]}},{"resourceKey":"POST /api/tools/execute/unified/createLaunchLabToken","method":"POST","path":"/api/tools/execute/unified/createLaunchLabToken","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/createLaunchLabToken","summary":"Create a LaunchLab token. Use provided image URL, not random links.","authRequired":true,"inputSchema":{"type":"object","properties":{"name":{"type":"string"},"symbol":{"type":"string"},"description":{"type":"string"},"twitter":{"type":"string","default":""},"website":{"type":"string","default":""},"telegram":{"type":"string","default":""},"file":{},"fileUrl":{"type":"string"},"solRaised":{"type":"number","minimum":35,"default":85},"bondingCurve":{"type":"number","minimum":51,"maximum":80,"default":80},"poolMigration":{"type":"number","minimum":20,"maximum":49,"default":20},"tokenSupply":{"type":"string","enum":["100000000","1000000000","10000000000"],"default":"1000000000"}},"required":["name","symbol","description"]}},{"resourceKey":"POST /api/tools/execute/unified/discoverLaunchLabTokens","method":"POST","path":"/api/tools/execute/unified/discoverLaunchLabTokens","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/discoverLaunchLabTokens","summary":"Get LaunchLab / bonk.fun tokens. Pass size=5, paginate with nextPageId.","authRequired":false,"inputSchema":{"type":"object","properties":{"sort":{"type":"string","enum":["marketCap","new","lastTrade"]},"size":{"type":"number","default":5},"mintType":{"type":"string","enum":["default"],"default":"default"},"includeNsfw":{"type":"boolean","default":true},"platformId":{"type":"string","default":"PlatformWhiteList"},"nextPageId":{"type":"string"}},"required":["sort"]}},{"resourceKey":"POST /api/tools/execute/unified/findSolanaGems","method":"POST","path":"/api/tools/execute/unified/findSolanaGems","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/findSolanaGems","summary":"Discover trending Solana tokens or tokenized stocks. category='tokens': memecoins, DeFi tokens, SPL tokens (trending, popular, top traded, organic, new). category='stocks': tokenized equities on Solana (PreStocks, xStocks, rStocks) with real stock prices. Use for: 'trending tokens', 'find gems', 'top traded memecoins', 'show stocks on solana', 'TSLA stock token'. NOT for: specific token lookup (use findSolanaSwapToken), PumpFun queries (use getPumpFunTokens).","authRequired":true,"inputSchema":{"type":"object","properties":{"category":{"type":"string","enum":["tokens","stocks"],"description":"'tokens' for crypto tokens/memecoins, 'stocks' for tokenized equities"},"sortBy":{"type":"string","enum":["trending","popular","topTraded","organic","new"],"default":"trending","description":"Sort/ranking method (only applies to category='tokens', ignored for stocks)"},"timeframe":{"type":"string","enum":["5m","1h","6h","24h"],"default":"24h","description":"Timeframe for volume and price change stats"},"limit":{"type":"number","minimum":1,"maximum":20,"default":5,"description":"Max results to return (default 5)"},"minLiquidity":{"type":"number","description":"Min liquidity in USD"},"maxLiquidity":{"type":"number","description":"Max liquidity in USD"},"minMcap":{"type":"number","description":"Min market cap in USD"},"maxMcap":{"type":"number","description":"Max market cap in USD"},"minVolume":{"type":"number","description":"Min volume in USD for the given timeframe"},"maxVolume":{"type":"number","description":"Max volume in USD for the given timeframe"},"minNetVolume":{"type":"number","description":"Min net volume (buy - sell) in USD"},"maxNetVolume":{"type":"number","description":"Max net volume (buy - sell) in USD"},"minNumNetBuyers":{"type":"number","description":"Min net buyers (buyers - sellers)"},"maxNumNetBuyers":{"type":"number","description":"Max net buyers (buyers - sellers)"},"minHolderCount":{"type":"number","description":"Min number of holders"},"maxHolderCount":{"type":"number","description":"Max number of holders"}},"required":["category"]}},{"resourceKey":"POST /api/tools/execute/unified/createSolanaConditionalTradePosition","method":"POST","path":"/api/tools/execute/unified/createSolanaConditionalTradePosition","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/createSolanaConditionalTradePosition","summary":"Create a Solana conditional trade (limit order, stop-loss, take-profit). MANDATORY: Get fresh price with solanaSwapQuote, use calculateAdjustedPrice for targets, check balances.","authRequired":true,"inputSchema":{"type":"object","properties":{"buyToken":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","description":"The Solana token address to buy (receive). Use So11111111111111111111111111111111111111112 for native SOL."},"sellToken":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","description":"The Solana token address to sell (spend). Use So11111111111111111111111111111111111111112 for native SOL."},"buyQuantity":{"type":"number","exclusiveMinimum":0,"description":"The amount of buy token to acquire. Mutually exclusive with sellQuantity - exactly one must be specified."},"sellQuantity":{"type":"number","exclusiveMinimum":0,"description":"The amount of sell token to spend. Mutually exclusive with buyQuantity - exactly one must be specified."},"type":{"type":"string","enum":["LIMIT","MARKET"],"default":"LIMIT","description":"Order type: LIMIT (price-triggered) or MARKET (execute immediately)"},"triggerType":{"type":"string","const":"PRICE_BASED","default":"PRICE_BASED","description":"Trigger type (currently only PRICE_BASED is supported)"},"entryPrice":{"type":"string","description":"USD price as a decimal string (e.g. '0.000000876', NOT scientific notation like 8.76e-7). Required for LIMIT orders. Use the priceFormatted value from calculateAdjustedPrice."},"entryTriggerToken":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","description":"Token address to monitor for entry price trigger."},"entryDirection":{"type":"string","enum":["ABOVE","BELOW"],"description":"Trigger direction for entry: BELOW for limit buy, ABOVE for limit sell"},"takeProfitPrice":{"type":["string","null"],"description":"Take profit USD price as a decimal string (e.g. '0.000000876'). Use priceFormatted from calculateAdjustedPrice. Omit if not setting take profit."},"takeProfitDirection":{"anyOf":[{"type":"string","enum":["ABOVE","BELOW"]},{"type":"null"}],"description":"Trigger direction for take profit. Omit if not setting take profit."},"takeProfitTriggerToken":{"anyOf":[{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},{"type":"null"}],"description":"Token address to monitor for take profit trigger. Omit if not setting take profit."},"stopLossPrice":{"type":["string","null"],"description":"Stop loss USD price as a decimal string (e.g. '0.0000001095'). Use priceFormatted from calculateAdjustedPrice. Omit if not setting stop loss."},"stopLossDirection":{"anyOf":[{"type":"string","enum":["ABOVE","BELOW"]},{"type":"null"}],"description":"Trigger direction for stop loss. Omit if not setting stop loss."},"stopLossTriggerToken":{"anyOf":[{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},{"type":"null"}],"description":"Token address to monitor for stop loss trigger. Omit if not setting stop loss."},"expiresAt":{"type":"string","description":"ISO date string for order expiration"}},"required":["buyToken","sellToken","entryTriggerToken","entryDirection"]}},{"resourceKey":"POST /api/tools/execute/unified/hederaNativeSend","method":"POST","path":"/api/tools/execute/unified/hederaNativeSend","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/hederaNativeSend","summary":"Send HBAR to a Hedera address","authRequired":true,"inputSchema":{"type":"object","properties":{"to":{"description":"The Hedera EVM address to send HBAR to"},"amount":{"type":"string","description":"Amount of HBAR to send (e.g., '1' or '3.5')"}},"required":["amount"]}},{"resourceKey":"POST /api/tools/execute/unified/hederaERC20TokenSend","method":"POST","path":"/api/tools/execute/unified/hederaERC20TokenSend","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/hederaERC20TokenSend","summary":"Send an ERC20 token on Hedera","authRequired":true,"inputSchema":{"type":"object","properties":{"to":{"description":"Recipient Hedera EVM address"},"amount":{"type":"string","description":"Amount of token to send"},"token":{"description":"Token contract address"}},"required":["amount"]}},{"resourceKey":"POST /api/tools/execute/unified/hederaGetBalances","method":"POST","path":"/api/tools/execute/unified/hederaGetBalances","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/hederaGetBalances","summary":"Get wallet balances on Hedera. CRITICAL: Use 'balanceUnits' for trades (exact), not 'balance' (rounded for display).","authRequired":true,"inputSchema":{"type":"object","properties":{}}},{"resourceKey":"POST /api/tools/execute/unified/hederaContractIdToEvmAddress","method":"POST","path":"/api/tools/execute/unified/hederaContractIdToEvmAddress","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/hederaContractIdToEvmAddress","summary":"Convert a Hedera contract ID to EVM address","authRequired":false,"inputSchema":{"type":"object","properties":{"contractId":{"type":"string","description":"Hedera contract ID (e.g., 0.0.731861)"}},"required":["contractId"]}},{"resourceKey":"POST /api/tools/execute/unified/hederaAccountIdToEvmAddress","method":"POST","path":"/api/tools/execute/unified/hederaAccountIdToEvmAddress","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/hederaAccountIdToEvmAddress","summary":"Convert a Hedera account ID to EVM address","authRequired":false,"inputSchema":{"type":"object","properties":{"address":{"type":"string","description":"Hedera account ID (e.g., 0.0.3949424)"}},"required":["address"]}},{"resourceKey":"POST /api/tools/execute/unified/hederaFindTokens","method":"POST","path":"/api/tools/execute/unified/hederaFindTokens","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/hederaFindTokens","summary":"Find/discover tokens on Hedera by name or symbol","authRequired":false,"inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Search query for token name/symbol"}}}},{"resourceKey":"POST /api/tools/execute/unified/hederaTokensSwapQuote","method":"POST","path":"/api/tools/execute/unified/hederaTokensSwapQuote","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/hederaTokensSwapQuote","summary":"Get current USD price and swap quote for Hedera tokens. ALWAYS fetch fresh - crypto prices change every second. Supports exact input (spend X) and exact output (receive Y) modes.","authRequired":false,"inputSchema":{"type":"object","properties":{"fromTokenId":{"type":"string","description":"Token to swap from (0.0.000000 for HBAR)"},"toTokenId":{"type":"string","description":"Token to swap to"},"fromTokenDecimals":{"type":"number","description":"Decimals of from token"},"toTokenDecimals":{"type":"number","description":"Decimals of to token"},"amount":{"type":"string","description":"Amount to swap (for exact input mode)"},"exactOutputAmount":{"type":"string","description":"Exact output amount (for exact output mode)"},"isExactOutput":{"type":"boolean","default":false,"description":"True for exact output mode"}},"required":["fromTokenId","toTokenId","fromTokenDecimals","toTokenDecimals"]}},{"resourceKey":"POST /api/tools/execute/unified/hederaTokensSwap","method":"POST","path":"/api/tools/execute/unified/hederaTokensSwap","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/hederaTokensSwap","summary":"Execute token swap on Hedera. Handles HBAR/WHBAR conversion automatically.","authRequired":true,"inputSchema":{"type":"object","properties":{"fromTokenId":{"type":"string","description":"Token to swap from"},"toTokenId":{"type":"string","description":"Token to swap to"},"amount":{"type":"string","description":"Amount to swap"},"useNative":{"type":"boolean","default":false,"description":"True if swapping FROM native HBAR"}},"required":["fromTokenId","toTokenId","amount"]}},{"resourceKey":"POST /api/tools/execute/unified/hederaFindMemeCoins","method":"POST","path":"/api/tools/execute/unified/hederaFindMemeCoins","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/hederaFindMemeCoins","summary":"Find memecoins from MemeJob on Hedera","authRequired":false,"inputSchema":{"type":"object","properties":{"page":{"type":"number","default":0,"description":"Page number (starts from 0)"},"limit":{"type":"number","default":10,"description":"Results per page"},"orderBy":{"type":"string","enum":["market-cap","creation-time","last-activity","nearest-promoted"],"default":"market-cap"},"orderDirection":{"type":"string","enum":["asc","desc"],"default":"desc"}}}},{"resourceKey":"POST /api/tools/execute/unified/hederaMemejobBuyToken","method":"POST","path":"/api/tools/execute/unified/hederaMemejobBuyToken","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/hederaMemejobBuyToken","summary":"Buy a token from MemeJob","authRequired":true,"inputSchema":{"type":"object","properties":{"tokenId":{"type":"string","description":"Token EVM address to buy"},"amount":{"type":"string","description":"Amount to buy"}},"required":["tokenId","amount"]}},{"resourceKey":"POST /api/tools/execute/unified/hederaMemeJobSellToken","method":"POST","path":"/api/tools/execute/unified/hederaMemeJobSellToken","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/hederaMemeJobSellToken","summary":"Sell a token on MemeJob","authRequired":true,"inputSchema":{"type":"object","properties":{"tokenId":{"type":"string","description":"Token EVM address to sell"},"amount":{"type":"string","description":"Amount to sell"}},"required":["tokenId","amount"]}},{"resourceKey":"POST /api/tools/execute/unified/createHederaConditionalTradePosition","method":"POST","path":"/api/tools/execute/unified/createHederaConditionalTradePosition","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/createHederaConditionalTradePosition","summary":"Create a Hedera conditional trade (limit order, stop-loss, take-profit). MANDATORY: Follow the workflow in instructions - get fresh price, use calculateAdjustedPrice, check balances.","authRequired":true,"inputSchema":{"type":"object","properties":{"buyToken":{"type":"string","pattern":"^0\\.0\\.\\d+$","description":"The Hedera token ID to buy (format: 0.0.xxxxx)"},"sellToken":{"type":"string","pattern":"^0\\.0\\.\\d+$","description":"The Hedera token ID to sell (format: 0.0.xxxxx)"},"buyQuantity":{"type":"number","exclusiveMinimum":0,"description":"Amount of buy token to acquire (e.g., 10 SAUCE). Use this when you want to specify how much to buy."},"sellQuantity":{"type":"number","exclusiveMinimum":0,"description":"Amount of sell token to spend (e.g., 10 HBAR). Use this when you want to specify how much to sell."},"type":{"type":"string","enum":["MARKET","LIMIT"],"description":"Order type: MARKET (execute immediately) or LIMIT (execute when price triggers)"},"triggerType":{"type":"string","const":"PRICE_BASED","default":"PRICE_BASED","description":"Trigger type (currently only PRICE_BASED is supported)"},"entryPrice":{"type":"string","description":"Entry USD price as a decimal string (e.g. '0.000000876', NOT scientific notation). Required for LIMIT orders. Use priceFormatted from calculateAdjustedPrice."},"entryTriggerToken":{"type":"string","pattern":"^0\\.0\\.\\d+$","description":"Token to monitor for entry trigger (format: 0.0.xxxxx)"},"entryDirection":{"type":"string","enum":["ABOVE","BELOW"],"description":"Entry trigger direction: ABOVE (trigger when price goes above) or BELOW (trigger when price goes below)"},"stopLossPrice":{"type":"string","description":"Stop loss USD price as a decimal string (e.g. '0.0000001095'). Use priceFormatted from calculateAdjustedPrice. Omit if not setting stop loss."},"stopLossTriggerToken":{"type":"string","pattern":"^0\\.0\\.\\d+$","description":"Token to monitor for stop loss trigger (format: 0.0.xxxxx)"},"stopLossDirection":{"type":"string","enum":["ABOVE","BELOW"],"description":"Stop loss trigger direction: ABOVE or BELOW"},"takeProfitPrice":{"type":"string","description":"Take profit USD price as a decimal string (e.g. '0.000000876'). Use priceFormatted from calculateAdjustedPrice. Omit if not setting take profit."},"takeProfitTriggerToken":{"type":"string","pattern":"^0\\.0\\.\\d+$","description":"Token to monitor for take profit trigger (format: 0.0.xxxxx)"},"takeProfitDirection":{"type":"string","enum":["ABOVE","BELOW"],"description":"Take profit trigger direction: ABOVE or BELOW"}},"required":["buyToken","sellToken","type","entryTriggerToken","entryDirection"]}},{"resourceKey":"POST /api/tools/execute/unified/ethNativeSend","method":"POST","path":"/api/tools/execute/unified/ethNativeSend","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/ethNativeSend","summary":"Send ETH to an address on Ethereum","authRequired":true,"inputSchema":{"type":"object","properties":{"to":{"description":"The Ethereum address to send the ETH to"},"amount":{"type":"string","description":"The amount of ETH to send"}},"required":["amount"]}},{"resourceKey":"POST /api/tools/execute/unified/ethSendERC20Token","method":"POST","path":"/api/tools/execute/unified/ethSendERC20Token","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/ethSendERC20Token","summary":"Send an ERC20 token to an address on Ethereum","authRequired":true,"inputSchema":{"type":"object","properties":{"to":{"description":"The Ethereum address to send the token to"},"amount":{"type":"string","description":"The amount of token to send"},"token":{"description":"The token address to send"}},"required":["amount"]}},{"resourceKey":"POST /api/tools/execute/unified/ethSendNFT","method":"POST","path":"/api/tools/execute/unified/ethSendNFT","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/ethSendNFT","summary":"Send an NFT to an address on Ethereum","authRequired":true,"inputSchema":{"type":"object","properties":{"to":{"description":"The Ethereum address to send the NFT to"},"tokenAddress":{"description":"The token address to send"},"tokenId":{"type":"string","description":"The token ID to send"},"tokenStandard":{"type":"string","enum":["ERC721","ERC1155"],"description":"The token standard"},"quantity":{"type":"number","description":"The quantity of NFTs to send in case of ERC1155"},"chainId":{"type":"number","enum":[1,56,137,8453],"description":"The chain ID (1=Ethereum, 56=BSC, 137=Polygon, 8453=Base)"}},"required":["tokenId","tokenStandard","chainId"]}},{"resourceKey":"POST /api/tools/execute/unified/ethGetBalances","method":"POST","path":"/api/tools/execute/unified/ethGetBalances","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/ethGetBalances","summary":"Get wallet balances on Ethereum. CRITICAL: Use 'balance' for trades (exact units), NOT 'humanReadableBalance' (rounded for display).","authRequired":true,"inputSchema":{"type":"object","properties":{}}},{"resourceKey":"POST /api/tools/execute/unified/ethSwapQuote","method":"POST","path":"/api/tools/execute/unified/ethSwapQuote","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/ethSwapQuote","summary":"Get current USD price and swap quote for Ethereum tokens. ALWAYS fetch fresh prices - crypto is volatile. Use 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE for native ETH.","authRequired":false,"inputSchema":{"type":"object","properties":{"fromTokenAddress":{"type":"string","description":"Token address to swap from"},"toTokenAddress":{"type":"string","description":"Token address to swap to"},"amount":{"type":"string","description":"Amount to swap (human readable)"}},"required":["fromTokenAddress","toTokenAddress","amount"]}},{"resourceKey":"POST /api/tools/execute/unified/ethSwap","method":"POST","path":"/api/tools/execute/unified/ethSwap","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/ethSwap","summary":"Swap tokens on Ethereum. Uses best available provider (Uniswap X or 0x).","authRequired":true,"inputSchema":{"type":"object","properties":{"buyTokenAddress":{"type":"string","description":"Token address to swap to"},"sellTokenAddress":{"type":"string","description":"Token address to swap from"},"amount":{"type":"string","description":"Amount to swap (human readable)"}},"required":["buyTokenAddress","sellTokenAddress","amount"]}},{"resourceKey":"POST /api/tools/execute/unified/createEthereumConditionalTradePosition","method":"POST","path":"/api/tools/execute/unified/createEthereumConditionalTradePosition","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/createEthereumConditionalTradePosition","summary":"Create an Ethereum conditional trade (limit order, stop-loss, take-profit). MANDATORY: Get fresh price with ethSwapQuote, use calculateAdjustedPrice for targets, check balances.","authRequired":true,"inputSchema":{"type":"object","properties":{"buyToken":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The Ethereum token address to buy (format: 0x...)"},"sellToken":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The Ethereum token address to sell (format: 0x...)"},"buyQuantity":{"type":"number","exclusiveMinimum":0,"description":"Amount of buy token to acquire (e.g., 10 UNI). Use this when you want to specify how much to buy."},"sellQuantity":{"type":"number","exclusiveMinimum":0,"description":"Amount of sell token to spend (e.g., 1 ETH). Use this when you want to specify how much to sell."},"type":{"type":"string","enum":["MARKET","LIMIT"],"description":"Order type: MARKET (execute immediately) or LIMIT (execute when price triggers)"},"triggerType":{"type":"string","const":"PRICE_BASED","default":"PRICE_BASED","description":"Trigger type (currently only PRICE_BASED is supported)"},"entryPrice":{"type":"string","description":"Entry USD price as a decimal string (e.g. '0.000000876', NOT scientific notation). Required for LIMIT orders. Use priceFormatted from calculateAdjustedPrice."},"entryTriggerToken":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"Token to monitor for entry trigger (format: 0x...)"},"entryDirection":{"type":"string","enum":["ABOVE","BELOW"],"description":"Entry trigger direction: ABOVE (trigger when price goes above) or BELOW (trigger when price goes below)"},"stopLossPrice":{"type":["string","null"],"description":"Stop loss USD price as a decimal string (e.g. '0.0000001095'). Use priceFormatted from calculateAdjustedPrice. Omit if not setting stop loss."},"stopLossTriggerToken":{"anyOf":[{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},{"type":"null"}],"description":"Token to monitor for stop loss trigger. Omit if not setting stop loss."},"stopLossDirection":{"anyOf":[{"type":"string","enum":["ABOVE","BELOW"]},{"type":"null"}],"description":"Stop loss trigger direction: ABOVE or BELOW. Omit if not setting stop loss."},"takeProfitPrice":{"type":["string","null"],"description":"Take profit USD price as a decimal string (e.g. '0.000000876'). Use priceFormatted from calculateAdjustedPrice. Omit if not setting take profit."},"takeProfitTriggerToken":{"anyOf":[{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},{"type":"null"}],"description":"Token to monitor for take profit trigger. Omit if not setting take profit."},"takeProfitDirection":{"anyOf":[{"type":"string","enum":["ABOVE","BELOW"]},{"type":"null"}],"description":"Take profit trigger direction: ABOVE or BELOW. Omit if not setting take profit."}},"required":["buyToken","sellToken","type","entryTriggerToken","entryDirection"]}},{"resourceKey":"POST /api/tools/execute/unified/bnbNativeSend","method":"POST","path":"/api/tools/execute/unified/bnbNativeSend","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/bnbNativeSend","summary":"Send BNB to an address on BSC","authRequired":true,"inputSchema":{"type":"object","properties":{"to":{"description":"The BSC address to send the BNB to"},"amount":{"type":"string","description":"The amount of BNB to send"}},"required":["amount"]}},{"resourceKey":"POST /api/tools/execute/unified/bscSendERC20Token","method":"POST","path":"/api/tools/execute/unified/bscSendERC20Token","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/bscSendERC20Token","summary":"Send an ERC20 token to an address on BSC","authRequired":true,"inputSchema":{"type":"object","properties":{"to":{"description":"The BSC address to send the token to"},"amount":{"type":"string","description":"The amount of token to send"},"token":{"description":"The token address to send"}},"required":["amount"]}},{"resourceKey":"POST /api/tools/execute/unified/bscGetBalances","method":"POST","path":"/api/tools/execute/unified/bscGetBalances","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/bscGetBalances","summary":"Get wallet balances on BSC","authRequired":true,"inputSchema":{"type":"object","properties":{}}},{"resourceKey":"POST /api/tools/execute/unified/bscSwapQuote","method":"POST","path":"/api/tools/execute/unified/bscSwapQuote","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/bscSwapQuote","summary":"Get swap quote for BSC tokens. Uses Uniswap X or 0x. Use 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE for native BNB.","authRequired":false,"inputSchema":{"type":"object","properties":{"fromTokenAddress":{"type":"string","description":"Token address to swap from"},"toTokenAddress":{"type":"string","description":"Token address to swap to"},"amount":{"type":"string","description":"Amount to swap (human readable)"}},"required":["fromTokenAddress","toTokenAddress","amount"]}},{"resourceKey":"POST /api/tools/execute/unified/bscSwap","method":"POST","path":"/api/tools/execute/unified/bscSwap","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/bscSwap","summary":"Swap tokens on BSC. Uses best available provider (Uniswap X or 0x).","authRequired":true,"inputSchema":{"type":"object","properties":{"buyTokenAddress":{"type":"string","description":"Token address to swap to"},"sellTokenAddress":{"type":"string","description":"Token address to swap from"},"amount":{"type":"string","description":"Amount to swap (human readable)"}},"required":["buyTokenAddress","sellTokenAddress","amount"]}},{"resourceKey":"POST /api/tools/execute/unified/bscfindMemeCoinsViaFourMeme","method":"POST","path":"/api/tools/execute/unified/bscfindMemeCoinsViaFourMeme","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/bscfindMemeCoinsViaFourMeme","summary":"Find meme coins on BSC via FourMeme. Market cap is in BNB, price in USD.","authRequired":false,"inputSchema":{"type":"object","properties":{"orderBy":{"type":"string","enum":["TimeDesc","Hot","ProgressDesc"],"default":"Hot"},"tokenName":{"type":"string"},"listedPancake":{"type":"boolean"},"pageIndex":{"type":"number","default":1},"pageSize":{"type":"number","default":30},"symbol":{"type":"string"},"labels":{"type":"string","enum":["AI","Defi","Games","Meme","Infra","DeSci","Social","Depin","Charity","Others"]}}}},{"resourceKey":"POST /api/tools/execute/unified/bscBuyFourMemeToken","method":"POST","path":"/api/tools/execute/unified/bscBuyFourMemeToken","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/bscBuyFourMemeToken","summary":"Buy a token from FourMeme on BSC","authRequired":true,"inputSchema":{"type":"object","properties":{"tokenAddress":{"description":"The token address to buy"},"bnbAmount":{"type":"string","description":"The amount of BNB to spend"}},"required":["bnbAmount"]}},{"resourceKey":"POST /api/tools/execute/unified/bscSellFourMemeToken","method":"POST","path":"/api/tools/execute/unified/bscSellFourMemeToken","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/bscSellFourMemeToken","summary":"Sell a token on FourMeme (BSC)","authRequired":true,"inputSchema":{"type":"object","properties":{"tokenAddress":{"description":"The token address to sell"},"tokenAmount":{"type":"string","description":"The amount of token to sell"}},"required":["tokenAmount"]}},{"resourceKey":"POST /api/tools/execute/unified/isFourMemeToken","method":"POST","path":"/api/tools/execute/unified/isFourMemeToken","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/isFourMemeToken","summary":"Check if a token is a FourMeme token on BSC","authRequired":false,"inputSchema":{"type":"object","properties":{"tokenAddress":{"description":"The token address to check"}}}},{"resourceKey":"POST /api/tools/execute/unified/createBscConditionalTradePosition","method":"POST","path":"/api/tools/execute/unified/createBscConditionalTradePosition","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/createBscConditionalTradePosition","summary":"Create a BSC conditional trade (limit order, stop-loss, take-profit). MANDATORY: Get fresh price with bscSwapQuote, use calculateAdjustedPrice for targets, check balances.","authRequired":true,"inputSchema":{"type":"object","properties":{"buyToken":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The BSC token address to buy (format: 0x...)"},"sellToken":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The BSC token address to sell (format: 0x...)"},"buyQuantity":{"type":"number","exclusiveMinimum":0,"description":"Amount of buy token to acquire (e.g., 10 CAKE). Use this when you want to specify how much to buy."},"sellQuantity":{"type":"number","exclusiveMinimum":0,"description":"Amount of sell token to spend (e.g., 1 BNB). Use this when you want to specify how much to sell."},"type":{"type":"string","enum":["MARKET","LIMIT"],"description":"Order type: MARKET (execute immediately) or LIMIT (execute when price triggers)"},"triggerType":{"type":"string","const":"PRICE_BASED","default":"PRICE_BASED","description":"Trigger type (currently only PRICE_BASED is supported)"},"entryPrice":{"type":"string","description":"Entry USD price as a decimal string (e.g. '0.000000876', NOT scientific notation). Required for LIMIT orders. Use priceFormatted from calculateAdjustedPrice."},"entryTriggerToken":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"Token to monitor for entry trigger (format: 0x...)"},"entryDirection":{"type":"string","enum":["ABOVE","BELOW"],"description":"Entry trigger direction: ABOVE (trigger when price goes above) or BELOW (trigger when price goes below)"},"stopLossPrice":{"type":["string","null"],"description":"Stop loss USD price as a decimal string (e.g. '0.0000001095'). Use priceFormatted from calculateAdjustedPrice. Omit if not setting stop loss."},"stopLossTriggerToken":{"anyOf":[{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},{"type":"null"}],"description":"Token to monitor for stop loss trigger. Omit if not setting stop loss."},"stopLossDirection":{"anyOf":[{"type":"string","enum":["ABOVE","BELOW"]},{"type":"null"}],"description":"Stop loss trigger direction: ABOVE or BELOW. Omit if not setting stop loss."},"takeProfitPrice":{"type":["string","null"],"description":"Take profit USD price as a decimal string (e.g. '0.000000876'). Use priceFormatted from calculateAdjustedPrice. Omit if not setting take profit."},"takeProfitTriggerToken":{"anyOf":[{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},{"type":"null"}],"description":"Token to monitor for take profit trigger. Omit if not setting take profit."},"takeProfitDirection":{"anyOf":[{"type":"string","enum":["ABOVE","BELOW"]},{"type":"null"}],"description":"Take profit trigger direction: ABOVE or BELOW. Omit if not setting take profit."}},"required":["buyToken","sellToken","type","entryTriggerToken","entryDirection"]}},{"resourceKey":"POST /api/tools/execute/unified/polygonNativeSend","method":"POST","path":"/api/tools/execute/unified/polygonNativeSend","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/polygonNativeSend","summary":"Send MATIC to an address on Polygon","authRequired":true,"inputSchema":{"type":"object","properties":{"to":{"description":"The Polygon address to send the MATIC to"},"amount":{"type":"string","description":"The amount of MATIC to send"}},"required":["amount"]}},{"resourceKey":"POST /api/tools/execute/unified/polygonSendERC20Token","method":"POST","path":"/api/tools/execute/unified/polygonSendERC20Token","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/polygonSendERC20Token","summary":"Send an ERC20 token to an address on Polygon","authRequired":true,"inputSchema":{"type":"object","properties":{"to":{"description":"The Polygon address to send the token to"},"amount":{"type":"string","description":"The amount of token to send"},"token":{"description":"The token address to send"}},"required":["amount"]}},{"resourceKey":"POST /api/tools/execute/unified/polygonGetBalances","method":"POST","path":"/api/tools/execute/unified/polygonGetBalances","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/polygonGetBalances","summary":"Get wallet balances on Polygon","authRequired":true,"inputSchema":{"type":"object","properties":{}}},{"resourceKey":"POST /api/tools/execute/unified/polygonSwapQuote","method":"POST","path":"/api/tools/execute/unified/polygonSwapQuote","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/polygonSwapQuote","summary":"Get swap quote for Polygon tokens. Uses Uniswap X or 0x. Use 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE for native MATIC.","authRequired":false,"inputSchema":{"type":"object","properties":{"fromTokenAddress":{"type":"string","description":"Token address to swap from"},"toTokenAddress":{"type":"string","description":"Token address to swap to"},"amount":{"type":"string","description":"Amount to swap (human readable)"}},"required":["fromTokenAddress","toTokenAddress","amount"]}},{"resourceKey":"POST /api/tools/execute/unified/polygonSwap","method":"POST","path":"/api/tools/execute/unified/polygonSwap","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/polygonSwap","summary":"Swap tokens on Polygon. Uses best available provider (Uniswap X or 0x).","authRequired":true,"inputSchema":{"type":"object","properties":{"buyTokenAddress":{"type":"string","description":"Token address to swap to"},"sellTokenAddress":{"type":"string","description":"Token address to swap from"},"amount":{"type":"string","description":"Amount to swap (human readable)"}},"required":["buyTokenAddress","sellTokenAddress","amount"]}},{"resourceKey":"POST /api/tools/execute/unified/createPolygonConditionalTradePosition","method":"POST","path":"/api/tools/execute/unified/createPolygonConditionalTradePosition","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/createPolygonConditionalTradePosition","summary":"Create a Polygon conditional trade (limit order, stop-loss, take-profit). MANDATORY: Get fresh price with polygonSwapQuote, use calculateAdjustedPrice for targets, check balances.","authRequired":true,"inputSchema":{"type":"object","properties":{"buyToken":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The Polygon token address to buy (receive). Use 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE for native MATIC."},"sellToken":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The Polygon token address to sell (spend). Use 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE for native MATIC."},"buyQuantity":{"type":"number","exclusiveMinimum":0,"description":"The amount of buy token to acquire. Mutually exclusive with sellQuantity - exactly one must be specified."},"sellQuantity":{"type":"number","exclusiveMinimum":0,"description":"The amount of sell token to spend. Mutually exclusive with buyQuantity - exactly one must be specified."},"type":{"type":"string","enum":["MARKET","LIMIT"],"description":"Order type: MARKET (execute immediately) or LIMIT (execute when price triggers)"},"triggerType":{"type":"string","const":"PRICE_BASED","default":"PRICE_BASED","description":"Trigger type (currently only PRICE_BASED is supported)"},"entryPrice":{"type":"string","description":"USD price as a decimal string (e.g. '0.000000876', NOT scientific notation like 8.76e-7). Required for LIMIT orders. Use the priceFormatted value from calculateAdjustedPrice."},"entryTriggerToken":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"Token address to monitor for entry price trigger."},"entryDirection":{"type":"string","enum":["ABOVE","BELOW"],"description":"Entry trigger direction: ABOVE (trigger when price goes above) or BELOW (trigger when price goes below)"},"takeProfitPrice":{"type":["string","null"],"description":"Take profit USD price as a decimal string (e.g. '0.000000876'). Use priceFormatted from calculateAdjustedPrice. Omit if not setting take profit."},"takeProfitDirection":{"type":"string","enum":["ABOVE","BELOW"],"description":"Take profit trigger direction: ABOVE or BELOW"},"takeProfitTriggerToken":{"anyOf":[{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},{"type":"null"}],"description":"Token address to monitor for take profit trigger. Omit if not setting take profit."},"stopLossPrice":{"type":["string","null"],"description":"Stop loss USD price as a decimal string (e.g. '0.0000001095'). Use priceFormatted from calculateAdjustedPrice. Omit if not setting stop loss."},"stopLossDirection":{"type":"string","enum":["ABOVE","BELOW"],"description":"Stop loss trigger direction: ABOVE or BELOW"},"stopLossTriggerToken":{"anyOf":[{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},{"type":"null"}],"description":"Token address to monitor for stop loss trigger. Omit if not setting stop loss."},"expiresAt":{"type":"string","description":"ISO date string for order expiration"}},"required":["buyToken","sellToken","type","entryTriggerToken","entryDirection"]}},{"resourceKey":"POST /api/tools/execute/unified/baseNativeSend","method":"POST","path":"/api/tools/execute/unified/baseNativeSend","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/baseNativeSend","summary":"Send ETH to an address on Base","authRequired":true,"inputSchema":{"type":"object","properties":{"to":{"description":"The Base address to send the ETH to"},"amount":{"type":"string","description":"The amount of ETH to send"}},"required":["amount"]}},{"resourceKey":"POST /api/tools/execute/unified/baseSendERC20Token","method":"POST","path":"/api/tools/execute/unified/baseSendERC20Token","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/baseSendERC20Token","summary":"Send an ERC20 token to an address on Base","authRequired":true,"inputSchema":{"type":"object","properties":{"to":{"description":"The Base address to send the token to"},"amount":{"type":"string","description":"The amount of token to send"},"token":{"description":"The token address to send"}},"required":["amount"]}},{"resourceKey":"POST /api/tools/execute/unified/baseSendNFT","method":"POST","path":"/api/tools/execute/unified/baseSendNFT","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/baseSendNFT","summary":"Send an NFT to an address on Base","authRequired":true,"inputSchema":{"type":"object","properties":{"to":{"description":"The Base address to send the NFT to"},"tokenAddress":{"description":"The token address to send"},"tokenId":{"type":"string","description":"The token ID to send"},"tokenStandard":{"type":"string","enum":["ERC721","ERC1155"],"description":"The token standard"},"quantity":{"type":"number","description":"The quantity of NFTs to send in case of ERC1155"}},"required":["tokenId","tokenStandard"]}},{"resourceKey":"POST /api/tools/execute/unified/baseGetBalances","method":"POST","path":"/api/tools/execute/unified/baseGetBalances","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/baseGetBalances","summary":"Get wallet balances on Base. CRITICAL: Use 'balance' for trades (exact units), NOT 'humanReadableBalance' (rounded for display).","authRequired":true,"inputSchema":{"type":"object","properties":{}}},{"resourceKey":"POST /api/tools/execute/unified/baseSwapQuote","method":"POST","path":"/api/tools/execute/unified/baseSwapQuote","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/baseSwapQuote","summary":"Get current USD price and swap quote for Base tokens. ALWAYS fetch fresh prices - crypto is volatile. Use 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE for native ETH.","authRequired":false,"inputSchema":{"type":"object","properties":{"fromTokenAddress":{"type":"string","description":"Token address to swap from"},"toTokenAddress":{"type":"string","description":"Token address to swap to"},"amount":{"type":"string","description":"Amount to swap (human readable)"}},"required":["fromTokenAddress","toTokenAddress","amount"]}},{"resourceKey":"POST /api/tools/execute/unified/baseSwap","method":"POST","path":"/api/tools/execute/unified/baseSwap","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/baseSwap","summary":"Swap tokens on Base. Uses best available provider (Uniswap X or 0x).","authRequired":true,"inputSchema":{"type":"object","properties":{"buyTokenAddress":{"type":"string","description":"Token address to swap to"},"sellTokenAddress":{"type":"string","description":"Token address to swap from"},"amount":{"type":"string","description":"Amount to swap (human readable)"}},"required":["buyTokenAddress","sellTokenAddress","amount"]}},{"resourceKey":"POST /api/tools/execute/unified/baseFindClankerTokens","method":"POST","path":"/api/tools/execute/unified/baseFindClankerTokens","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/baseFindClankerTokens","summary":"Find meme tokens on Base via Clanker (clanker.world). Returns tokens with price, market cap, 24h volume, and price changes. Use 'q' param to search by name/symbol. Sort by market-cap or created-at. To buy/sell Clanker tokens, use baseSwap — they are regular ERC20s on Base.","authRequired":false,"inputSchema":{"type":"object","properties":{"limit":{"type":"number","default":20},"offset":{"type":"number","default":0},"sortBy":{"type":"string","enum":["market-cap","created-at"],"default":"market-cap"},"sort":{"type":"string","enum":["asc","desc"],"default":"desc"},"chainId":{"type":"number","default":8453},"includeMarket":{"type":"boolean","default":true},"includeUser":{"type":"boolean","default":false},"q":{"type":"string"}}}},{"resourceKey":"POST /api/tools/execute/unified/createBaseConditionalTradePosition","method":"POST","path":"/api/tools/execute/unified/createBaseConditionalTradePosition","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/createBaseConditionalTradePosition","summary":"Create a Base conditional trade (limit order, stop-loss, take-profit). MANDATORY: Get fresh price with baseSwapQuote, use calculateAdjustedPrice for targets, check balances.","authRequired":true,"inputSchema":{"type":"object","properties":{"buyToken":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The Base token address to buy (receive). Use 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE for native ETH."},"sellToken":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The Base token address to sell (spend). Use 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE for native ETH."},"buyQuantity":{"type":"number","exclusiveMinimum":0,"description":"The amount of buy token to acquire. Mutually exclusive with sellQuantity - exactly one must be specified."},"sellQuantity":{"type":"number","exclusiveMinimum":0,"description":"The amount of sell token to spend. Mutually exclusive with buyQuantity - exactly one must be specified."},"type":{"type":"string","enum":["MARKET","LIMIT"],"description":"Order type: MARKET (execute immediately) or LIMIT (execute when price triggers)"},"triggerType":{"type":"string","const":"PRICE_BASED","default":"PRICE_BASED","description":"Trigger type (currently only PRICE_BASED is supported)"},"entryPrice":{"type":"string","description":"USD price as a decimal string (e.g. '0.000000876', NOT scientific notation like 8.76e-7). Required for LIMIT orders. Use the priceFormatted value from calculateAdjustedPrice."},"entryTriggerToken":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"Token address to monitor for entry price trigger."},"entryDirection":{"type":"string","enum":["ABOVE","BELOW"],"description":"Entry trigger direction: ABOVE (trigger when price goes above) or BELOW (trigger when price goes below)"},"takeProfitPrice":{"type":["string","null"],"description":"Take profit USD price as a decimal string (e.g. '0.000000876'). Use priceFormatted from calculateAdjustedPrice. Omit if not setting take profit."},"takeProfitDirection":{"type":"string","enum":["ABOVE","BELOW"],"description":"Take profit trigger direction: ABOVE or BELOW"},"takeProfitTriggerToken":{"anyOf":[{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},{"type":"null"}],"description":"Token address to monitor for take profit trigger. Omit if not setting take profit."},"stopLossPrice":{"type":["string","null"],"description":"Stop loss USD price as a decimal string (e.g. '0.0000001095'). Use priceFormatted from calculateAdjustedPrice. Omit if not setting stop loss."},"stopLossDirection":{"type":"string","enum":["ABOVE","BELOW"],"description":"Stop loss trigger direction: ABOVE or BELOW"},"stopLossTriggerToken":{"anyOf":[{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},{"type":"null"}],"description":"Token address to monitor for stop loss trigger. Omit if not setting stop loss."},"expiresAt":{"type":"string","description":"ISO date string for order expiration"}},"required":["buyToken","sellToken","type","entryTriggerToken","entryDirection"]}},{"resourceKey":"POST /api/tools/execute/unified/nansen_smart_money_holdings","method":"POST","path":"/api/tools/execute/unified/nansen_smart_money_holdings","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/nansen_smart_money_holdings","summary":"Get current token holdings aggregated across smart money wallets. Shows what funds and whales are holding.","authRequired":false,"inputSchema":{"type":"object","properties":{"chain":{"type":"string","enum":["ethereum","solana","base","arbitrum","polygon","optimism","avalanche","bnb","hyperevm","linea","mantle","monad","ronin","scroll","sei","sonic"],"description":"Chain to query"},"per_page":{"type":"number","default":50,"description":"Results per page (max 100)"}},"required":["chain"]}},{"resourceKey":"POST /api/tools/execute/unified/nansen_smart_money_flows","method":"POST","path":"/api/tools/execute/unified/nansen_smart_money_flows","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/nansen_smart_money_flows","summary":"Get net token flows from smart money addresses. Shows accumulation/distribution by funds and whales.","authRequired":false,"inputSchema":{"type":"object","properties":{"chain":{"type":"string","enum":["ethereum","solana","base","arbitrum","polygon","optimism","avalanche","bnb","hyperevm","linea","mantle","monad","ronin","scroll","sei","sonic"],"description":"Chain to query"},"per_page":{"type":"number","default":50,"description":"Results per page"}},"required":["chain"]}},{"resourceKey":"POST /api/tools/execute/unified/nansen_smart_money_trades","method":"POST","path":"/api/tools/execute/unified/nansen_smart_money_trades","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/nansen_smart_money_trades","summary":"Get recent DEX trades by smart money wallets. Spot what top traders are actively buying/selling.","authRequired":false,"inputSchema":{"type":"object","properties":{"chain":{"type":"string","enum":["ethereum","solana","base","arbitrum","polygon","optimism","avalanche","bnb","hyperevm","linea","mantle","monad","ronin","scroll","sei","sonic"],"description":"Chain to query"},"per_page":{"type":"number","default":50,"description":"Results per page"}},"required":["chain"]}},{"resourceKey":"POST /api/tools/execute/unified/nansen_pnl_leaderboard","method":"POST","path":"/api/tools/execute/unified/nansen_pnl_leaderboard","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/nansen_pnl_leaderboard","summary":"Get Nansen PnL leaderboard for a SPECIFIC TOKEN CONTRACT (not a global wallet leaderboard). Requires a token contract address. Shows which wallets profited most from trading that specific token.","authRequired":false,"inputSchema":{"type":"object","properties":{"chain":{"type":"string","enum":["ethereum","solana","base","arbitrum","polygon","optimism","avalanche","bnb","hyperevm","linea","mantle","monad","ronin","scroll","sei","sonic","near","starknet","sui","ton","tron"],"description":"Chain the token is on"},"token_address":{"type":"string","description":"Token contract address"},"date_from":{"type":"string","description":"Start date (YYYY-MM-DD)"},"date_to":{"type":"string","description":"End date (YYYY-MM-DD)"},"per_page":{"type":"number","default":50,"description":"Results per page"}},"required":["chain","token_address","date_from","date_to"]}},{"resourceKey":"POST /api/tools/execute/unified/nansen_who_bought_sold","method":"POST","path":"/api/tools/execute/unified/nansen_who_bought_sold","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/nansen_who_bought_sold","summary":"See which smart money wallets bought or sold a specific token in a date range.","authRequired":false,"inputSchema":{"type":"object","properties":{"chain":{"type":"string","enum":["ethereum","solana","base","arbitrum","polygon","optimism","avalanche","bnb","hyperevm","linea","mantle","monad","ronin","scroll","sei","sonic","near","starknet","sui","ton","tron"],"description":"Chain the token is on"},"token_address":{"type":"string","description":"Token contract address"},"date_from":{"type":"string","description":"Start date (YYYY-MM-DD)"},"date_to":{"type":"string","description":"End date (YYYY-MM-DD)"},"label_type":{"type":"string","default":"smart_money","description":"Trader label filter (smart_money, all_traders)"},"per_page":{"type":"number","default":50,"description":"Results per page"}},"required":["chain","token_address","date_from","date_to"]}},{"resourceKey":"POST /api/tools/execute/unified/nansen_wallet_profiler","method":"POST","path":"/api/tools/execute/unified/nansen_wallet_profiler","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/nansen_wallet_profiler","summary":"Profile a specific wallet — trading activity, PnL, token trades over a date range.","authRequired":false,"inputSchema":{"type":"object","properties":{"chain":{"type":"string","enum":["ethereum","solana","base","arbitrum","polygon","optimism","avalanche","bnb","hyperevm","linea","mantle","monad","ronin","scroll","sei","sonic","near","starknet","sui","ton","tron"],"description":"Chain the wallet is on"},"wallet_address":{"type":"string","description":"Wallet address to profile"},"date_from":{"type":"string","description":"Start date (YYYY-MM-DD)"},"date_to":{"type":"string","description":"End date (YYYY-MM-DD)"},"per_page":{"type":"number","default":50,"description":"Results per page"}},"required":["chain","wallet_address","date_from","date_to"]}},{"resourceKey":"POST /api/tools/execute/unified/nansen_perp_positions","method":"POST","path":"/api/tools/execute/unified/nansen_perp_positions","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/nansen_perp_positions","summary":"Get current Hyperliquid perpetual positions held by smart money for a specific token.","authRequired":false,"inputSchema":{"type":"object","properties":{"token_symbol":{"type":"string","description":"Token symbol (e.g. 'BTC', 'ETH', 'SOL')"},"label_type":{"type":"string","default":"smart_money","description":"Trader label filter (smart_money, all_traders)"},"per_page":{"type":"number","default":50,"description":"Results per page"}},"required":["token_symbol"]}},{"resourceKey":"POST /api/tools/execute/unified/nansen_defi_portfolio","method":"POST","path":"/api/tools/execute/unified/nansen_defi_portfolio","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/nansen_defi_portfolio","summary":"Get a wallet's DeFi portfolio: LP positions, lending, staking, farming across protocols.","authRequired":false,"inputSchema":{"type":"object","properties":{"chain":{"type":"string","enum":["ethereum","solana","base","arbitrum","polygon","optimism","avalanche","bnb","hyperevm","linea","mantle","monad","ronin","scroll","sei","sonic","near","starknet","sui","ton","tron"],"description":"Chain the wallet is on"},"wallet_address":{"type":"string","description":"Wallet address"},"per_page":{"type":"number","default":50,"description":"Results per page"}},"required":["chain","wallet_address"]}},{"resourceKey":"POST /api/tools/execute/unified/nansen_token_screener","method":"POST","path":"/api/tools/execute/unified/nansen_token_screener","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/nansen_token_screener","summary":"Screen tokens by volume, smart money activity, and chain. Find trending tokens that smart money is trading.","authRequired":false,"inputSchema":{"type":"object","properties":{"chains":{"type":"array","items":{"type":"string","enum":["ethereum","solana","base","arbitrum","polygon","optimism","avalanche","bnb","hyperevm","linea","mantle","monad","ronin","scroll","sei","sonic","near","starknet","sui","ton","tron"]},"minItems":1,"description":"Chains to screen across"},"timeframe":{"type":"string","default":"24h","description":"Timeframe (e.g. 24h, 7d)"},"smart_money_only":{"type":"boolean","default":false,"description":"Filter to show only smart money activity"},"per_page":{"type":"number","default":50,"description":"Results per page"}},"required":["chains"]}},{"resourceKey":"POST /api/tools/execute/unified/getPolyMarketEvents","method":"POST","path":"/api/tools/execute/unified/getPolyMarketEvents","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/getPolyMarketEvents","summary":"Get Polymarket events list. Returns compacted data optimized for efficiency.","authRequired":false,"inputSchema":{"type":"object","properties":{"limit":{"type":"number","minimum":1,"maximum":50,"default":20,"description":"Max events to return (default: 20, max: 50)"},"offset":{"type":"number","minimum":0,"default":0},"order":{"type":"string","enum":["volume","liquidity","startDate","endDate","volume24hr"],"default":"volume"},"ascending":{"type":"boolean"},"tag_id":{"type":"number","description":"Tag ID to filter by. Use getPolyMarketTags to get IDs."},"featured":{"type":"boolean"}}}},{"resourceKey":"POST /api/tools/execute/unified/getPolyMarketTags","method":"POST","path":"/api/tools/execute/unified/getPolyMarketTags","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/getPolyMarketTags","summary":"Get Polymarket categories/tags for filtering events","authRequired":false,"inputSchema":{"type":"object","properties":{}}},{"resourceKey":"POST /api/tools/execute/unified/getPolyMarketEventsByTag","method":"POST","path":"/api/tools/execute/unified/getPolyMarketEventsByTag","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/getPolyMarketEventsByTag","summary":"Get Polymarket events filtered by tag/category","authRequired":false,"inputSchema":{"type":"object","properties":{"tagId":{"type":"number","description":"Tag ID from getPolyMarketTags"},"limit":{"type":"number","minimum":1,"maximum":50,"default":20}},"required":["tagId"]}},{"resourceKey":"POST /api/tools/execute/unified/searchPolyMarketEvents","method":"POST","path":"/api/tools/execute/unified/searchPolyMarketEvents","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/searchPolyMarketEvents","summary":"Search Polymarket events by keyword. Returns compacted results.","authRequired":false,"inputSchema":{"type":"object","properties":{"q":{"type":"string","description":"Search query string"},"page":{"type":"number","default":0},"events_status":{"type":"string","enum":["active","inactive","all"],"default":"active"}},"required":["q"]}},{"resourceKey":"POST /api/tools/execute/unified/getPolyMarketEvent","method":"POST","path":"/api/tools/execute/unified/getPolyMarketEvent","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/getPolyMarketEvent","summary":"Get detailed info for a specific Polymarket event by slug","authRequired":false,"inputSchema":{"type":"object","properties":{"slug":{"type":"string","description":"Event slug (from event.slug)"}},"required":["slug"]}},{"resourceKey":"POST /api/tools/execute/unified/getPolyMarketUserPositions","method":"POST","path":"/api/tools/execute/unified/getPolyMarketUserPositions","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/getPolyMarketUserPositions","summary":"Get user's Polymarket positions","authRequired":true,"inputSchema":{"type":"object","properties":{"limit":{"type":"number","description":"The limit of positions to get","default":50},"offset":{"type":"number","description":"The offset of the positions to get","default":0},"sortBy":{"type":"string","enum":["CURRENT","INITIAL","TOKENS","CASHPNL","PERCENTPNL","TITLE","RESOLVING","PRICE","AVGPRICE"],"default":"CURRENT"},"sortOrder":{"type":"string","enum":["asc","desc"],"default":"desc"}}}},{"resourceKey":"POST /api/tools/execute/unified/placePolyMarketOrder","method":"POST","path":"/api/tools/execute/unified/placePolyMarketOrder","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/placePolyMarketOrder","summary":"Place Polymarket order","authRequired":true,"inputSchema":{"type":"object","properties":{"tokenID":{"type":"string","description":"The token ID of the outcome from the market.clobTokenIds matching the market.outcomes index"},"side":{"type":"string","enum":["BUY","SELL"]},"amount":{"type":"number","description":"For buy orders, amount in usd, example for 10 usd, 10. For sell orders amount of Shares to sell"}},"required":["tokenID","side","amount"]}},{"resourceKey":"POST /api/tools/execute/unified/redeemPolyMarketPosition","method":"POST","path":"/api/tools/execute/unified/redeemPolyMarketPosition","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/redeemPolyMarketPosition","summary":"Redeem winning Polymarket position","authRequired":true,"inputSchema":{"type":"object","properties":{"conditionId":{"type":"string","description":"Condition ID of the resolved market"}},"required":["conditionId"]}},{"resourceKey":"POST /api/tools/execute/unified/getUtxoRunes","method":"POST","path":"/api/tools/execute/unified/getUtxoRunes","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/getUtxoRunes","summary":"Get the utxo runes for a given address","authRequired":false,"inputSchema":{"type":"object","properties":{"bitcoinAddress":{"type":"string"}},"required":["bitcoinAddress"]}},{"resourceKey":"POST /api/tools/execute/unified/getOwnedInscriptionIds","method":"POST","path":"/api/tools/execute/unified/getOwnedInscriptionIds","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/getOwnedInscriptionIds","summary":"Get the inscription ids for a given address","authRequired":false,"inputSchema":{"type":"object","properties":{"bitcoinAddress":{"type":"string"}},"required":["bitcoinAddress"]}},{"resourceKey":"POST /api/tools/execute/unified/getInscriptionsByAddress","method":"POST","path":"/api/tools/execute/unified/getInscriptionsByAddress","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/getInscriptionsByAddress","summary":"Get the inscriptions for a given address","authRequired":false,"inputSchema":{"type":"object","properties":{"bitcoinAddress":{"type":"string"},"page":{"type":"number"}},"required":["bitcoinAddress"]}},{"resourceKey":"POST /api/tools/execute/unified/getRuneBalances","method":"POST","path":"/api/tools/execute/unified/getRuneBalances","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/getRuneBalances","summary":"Get the user's Rune token balances.","authRequired":false,"inputSchema":{"type":"object","properties":{"bitcoinAddress":{"type":"string","description":"The Bitcoin taproot address to check rune balances for"}},"required":["bitcoinAddress"]}},{"resourceKey":"POST /api/tools/execute/unified/getRareSats","method":"POST","path":"/api/tools/execute/unified/getRareSats","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/getRareSats","summary":"Get the rare sats for a given address","authRequired":false,"inputSchema":{"type":"object","properties":{"bitcoinAddress":{"type":"string"}},"required":["bitcoinAddress"]}},{"resourceKey":"POST /api/tools/execute/unified/getInscriptionActivity","method":"POST","path":"/api/tools/execute/unified/getInscriptionActivity","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/getInscriptionActivity","summary":"Get the inscription activity for a given address","authRequired":false,"inputSchema":{"type":"object","properties":{"bitcoinAddress":{"type":"string"},"page":{"type":"number"}},"required":["bitcoinAddress"]}},{"resourceKey":"POST /api/tools/execute/unified/getRunesActivity","method":"POST","path":"/api/tools/execute/unified/getRunesActivity","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/getRunesActivity","summary":"Get the rune activity for a given address","authRequired":false,"inputSchema":{"type":"object","properties":{"bitcoinAddress":{"type":"string"},"page":{"type":"number"}},"required":["bitcoinAddress"]}},{"resourceKey":"POST /api/tools/execute/unified/getBRC20Activity","method":"POST","path":"/api/tools/execute/unified/getBRC20Activity","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/getBRC20Activity","summary":"Get the brc20 activity for a given address","authRequired":false,"inputSchema":{"type":"object","properties":{"bitcoinAddress":{"type":"string"},"page":{"type":"number"}},"required":["bitcoinAddress"]}},{"resourceKey":"POST /api/tools/execute/unified/getInscriptionInfo","method":"POST","path":"/api/tools/execute/unified/getInscriptionInfo","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/getInscriptionInfo","summary":"Get the inscription info for a given inscription id","authRequired":false,"inputSchema":{"type":"object","properties":{"inscriptionId":{"type":"string"}},"required":["inscriptionId"]}},{"resourceKey":"POST /api/tools/execute/unified/getInscriptionTraits","method":"POST","path":"/api/tools/execute/unified/getInscriptionTraits","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/getInscriptionTraits","summary":"Get the traits for a given inscription id","authRequired":false,"inputSchema":{"type":"object","properties":{"inscriptionId":{"type":"string"}},"required":["inscriptionId"]}},{"resourceKey":"POST /api/tools/execute/unified/getLatestInscriptions","method":"POST","path":"/api/tools/execute/unified/getLatestInscriptions","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/getLatestInscriptions","summary":"Get the latest inscriptions","authRequired":false,"inputSchema":{"type":"object","properties":{"sort":{"type":"string","enum":["inscription_number_desc","inscription_number_asc"]},"after":{"type":"number"},"before":{"type":"number"}},"required":["sort"]}},{"resourceKey":"POST /api/tools/execute/unified/inscriptionTransferActivity","method":"POST","path":"/api/tools/execute/unified/inscriptionTransferActivity","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/inscriptionTransferActivity","summary":"Get the transfer activity for a given inscription id","authRequired":false,"inputSchema":{"type":"object","properties":{"inscriptionId":{"type":"string"}},"required":["inscriptionId"]}},{"resourceKey":"POST /api/tools/execute/unified/getLatestRunes","method":"POST","path":"/api/tools/execute/unified/getLatestRunes","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/getLatestRunes","summary":"List the latest Rune tokens for market discovery and browsing. Use this when user wants to see new/trending Runes, NOT for checking their personal balance.","authRequired":false,"inputSchema":{"type":"object","properties":{"sort":{"type":"string","enum":["newest","oldest"]},"after":{"type":"number"},"before":{"type":"number"}},"required":["sort"]}},{"resourceKey":"POST /api/tools/execute/unified/getRuneInfo","method":"POST","path":"/api/tools/execute/unified/getRuneInfo","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/getRuneInfo","summary":"Get the info for a given rune id","authRequired":false,"inputSchema":{"type":"object","properties":{"name":{"type":"string","description":"The name of the rune (spacers like • are automatically removed)"}},"required":["name"]}},{"resourceKey":"POST /api/tools/execute/unified/getRuneMarketInfo","method":"POST","path":"/api/tools/execute/unified/getRuneMarketInfo","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/getRuneMarketInfo","summary":"Get the market info for a given rune name: price, market cap","authRequired":false,"inputSchema":{"type":"object","properties":{"name":{"type":"string","description":"The name of the rune (spacers like • are automatically removed)"}},"required":["name"]}},{"resourceKey":"POST /api/tools/execute/unified/checkRuneUnlock","method":"POST","path":"/api/tools/execute/unified/checkRuneUnlock","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/checkRuneUnlock","summary":"Check when a specific rune name becomes available to etch.","authRequired":false,"inputSchema":{"type":"object","properties":{"name":{"type":"string","description":"The name of the rune (spacers like • are automatically removed)"}},"required":["name"]}},{"resourceKey":"POST /api/tools/execute/unified/getBitcoinCollections","method":"POST","path":"/api/tools/execute/unified/getBitcoinCollections","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/getBitcoinCollections","summary":"Get the bitcoin collections","authRequired":false,"inputSchema":{"type":"object","properties":{"page":{"type":"number"}}}},{"resourceKey":"POST /api/tools/execute/unified/getCollectionInfo","method":"POST","path":"/api/tools/execute/unified/getCollectionInfo","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/getCollectionInfo","summary":"Get the info for a given collection slug. example taproot-wizards","authRequired":false,"inputSchema":{"type":"object","properties":{"slug":{"type":"string","description":"The slug of the collection"}},"required":["slug"]}},{"resourceKey":"POST /api/tools/execute/unified/getCollectionInscriptions","method":"POST","path":"/api/tools/execute/unified/getCollectionInscriptions","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/getCollectionInscriptions","summary":"Get the inscriptions for a given collection slug","authRequired":false,"inputSchema":{"type":"object","properties":{"slug":{"type":"string","description":"The slug of the collection"}},"required":["slug"]}},{"resourceKey":"POST /api/tools/execute/unified/getCollectionMarketInfo","method":"POST","path":"/api/tools/execute/unified/getCollectionMarketInfo","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/getCollectionMarketInfo","summary":"Get market info for a Bitcoin inscription collection: floor price in sats and USD, market cap in BTC and USD. Use this when user asks about collection prices, valuations, or floor prices.","authRequired":false,"inputSchema":{"type":"object","properties":{"slug":{"type":"string","description":"The collection slug (e.g., 'bitcoin-puppets', 'nodemonkes')"}},"required":["slug"]}},{"resourceKey":"POST /api/tools/execute/unified/listAlkanes","method":"POST","path":"/api/tools/execute/unified/listAlkanes","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/listAlkanes","summary":"List the alkanes","authRequired":false,"inputSchema":{"type":"object","properties":{"page":{"type":"number"},"sort":{"type":"string","enum":["newest","oldest"]},"type":{"type":"string","enum":["TOKEN","CONTRACT","NFT_COLLECTION","NFT_ITEM"]}},"required":["sort","type"]}},{"resourceKey":"POST /api/tools/execute/unified/getAlkaneInfo","method":"POST","path":"/api/tools/execute/unified/getAlkaneInfo","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/getAlkaneInfo","summary":"Get the info for a given alkane id. example: 2:42","authRequired":false,"inputSchema":{"type":"object","properties":{"id":{"type":"string","description":"The id of the alkane"}},"required":["id"]}},{"resourceKey":"POST /api/tools/execute/unified/getAlkaneAddressBalance","method":"POST","path":"/api/tools/execute/unified/getAlkaneAddressBalance","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/getAlkaneAddressBalance","summary":"Get the alkane balance for a Bitcoin address. This includes tokens, NFTs, contracts, and any other type of alkane.","authRequired":false,"inputSchema":{"type":"object","properties":{"bitcoinAddress":{"type":"string","description":"The Bitcoin address"}},"required":["bitcoinAddress"]}},{"resourceKey":"POST /api/tools/execute/unified/getAlkaneAddressUTXOs","method":"POST","path":"/api/tools/execute/unified/getAlkaneAddressUTXOs","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/getAlkaneAddressUTXOs","summary":"Get the UTXOs for a given Bitcoin address. This includes tokens, NFTs, contracts, and any other type of alkane.","authRequired":false,"inputSchema":{"type":"object","properties":{"bitcoinAddress":{"type":"string","description":"The Bitcoin address"}},"required":["bitcoinAddress"]}},{"resourceKey":"POST /api/tools/execute/unified/listBRC20Tokens","method":"POST","path":"/api/tools/execute/unified/listBRC20Tokens","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/listBRC20Tokens","summary":"List all BRC-20 tokens in the market for discovery and browsing. Use this when user wants to see available tokens, NOT for checking their personal balance.","authRequired":false,"inputSchema":{"type":"object","properties":{"page":{"type":"number"},"sort":{"type":"string","enum":["newest","oldest"]}},"required":["sort"]}},{"resourceKey":"POST /api/tools/execute/unified/getBRC20TokenInfo","method":"POST","path":"/api/tools/execute/unified/getBRC20TokenInfo","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/getBRC20TokenInfo","summary":"Get the info for a given BRC20 token: current price, supply, market cap...","authRequired":false,"inputSchema":{"type":"object","properties":{"ticker":{"type":"string","description":"The ticker of the BRC20 token"}},"required":["ticker"]}},{"resourceKey":"POST /api/tools/execute/unified/rareSatsForUTXO","method":"POST","path":"/api/tools/execute/unified/rareSatsForUTXO","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/rareSatsForUTXO","summary":"Get the rare sats for a given UTXO","authRequired":false,"inputSchema":{"type":"object","properties":{"utxoId":{"type":"string","description":"The id of the UTXO"}},"required":["utxoId"]}},{"resourceKey":"POST /api/tools/execute/unified/getSatRangesForUTXO","method":"POST","path":"/api/tools/execute/unified/getSatRangesForUTXO","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/getSatRangesForUTXO","summary":"Get the sat ranges for a given UTXO","authRequired":false,"inputSchema":{"type":"object","properties":{"utxoId":{"type":"string","description":"The id of the UTXO"}},"required":["utxoId"]}},{"resourceKey":"POST /api/tools/execute/unified/getStamp","method":"POST","path":"/api/tools/execute/unified/getStamp","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/getStamp","summary":"Get the bitcoin stamps","authRequired":false,"inputSchema":{"type":"object","properties":{"stampId":{"type":"string","description":"The id of the stamp"}},"required":["stampId"]}},{"resourceKey":"POST /api/tools/execute/unified/searchStamps","method":"POST","path":"/api/tools/execute/unified/searchStamps","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/searchStamps","summary":"Search for stamps","authRequired":false,"inputSchema":{"type":"object","properties":{"query":{"type":"string"},"creator":{"type":"string"},"collection_id":{"type":"string"},"cpid":{"type":"string"},"is_btc_stamp":{"type":"boolean"},"is_cursed":{"type":"boolean"},"sort_order":{"type":"string","enum":["ASC","DESC"]},"page":{"type":"number"},"page_size":{"type":"number"},"limit":{"type":"number"}}}},{"resourceKey":"POST /api/tools/execute/unified/getRecentStamps","method":"POST","path":"/api/tools/execute/unified/getRecentStamps","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/getRecentStamps","summary":"Get the recent bitcoin stamps","authRequired":false,"inputSchema":{"type":"object","properties":{"limit":{"type":"number","default":10}}}},{"resourceKey":"POST /api/tools/execute/unified/getSRC20Token","method":"POST","path":"/api/tools/execute/unified/getSRC20Token","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/getSRC20Token","summary":"Get the SRC20 token","authRequired":false,"inputSchema":{"type":"object","properties":{"tick":{"type":"string","description":"The tick of the token"}},"required":["tick"]}},{"resourceKey":"POST /api/tools/execute/unified/searchSRC20Tokens","method":"POST","path":"/api/tools/execute/unified/searchSRC20Tokens","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/searchSRC20Tokens","summary":"Search for SRC20 tokens","authRequired":false,"inputSchema":{"type":"object","properties":{"query":{"type":"string"},"deployer":{"type":"string","minLength":26,"maxLength":62},"sort_by":{"type":"string","enum":["deploy_timestamp","holders","percent_minted"]},"sort_order":{"type":"string","enum":["ASC","DESC"]},"page":{"type":"integer","exclusiveMinimum":0,"maximum":10000,"default":5},"page_size":{"type":"integer","exclusiveMinimum":0,"minimum":1,"maximum":100}}}},{"resourceKey":"POST /api/tools/execute/unified/getStampsByAddress","method":"POST","path":"/api/tools/execute/unified/getStampsByAddress","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/getStampsByAddress","summary":"Get the stamps owned by an address","authRequired":false,"inputSchema":{"type":"object","properties":{"bitcoinAddress":{"type":"string","description":"The bitcoin address to get the stamps for"}},"required":["bitcoinAddress"]}},{"resourceKey":"POST /api/tools/execute/unified/getTopRunesByMarketCap","method":"POST","path":"/api/tools/execute/unified/getTopRunesByMarketCap","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/getTopRunesByMarketCap","summary":"Get Bitcoin runes ranked by market cap. Use this to find the most valuable runes by market capitalization. Returns price, market cap, 24h volume, and price change.","authRequired":false,"inputSchema":{"type":"object","properties":{"limit":{"type":"number","minimum":1,"maximum":50,"default":20,"description":"Number of runes to return (max 50)"},"minMarketCap":{"type":"number","description":"Filter for runes with market cap above this value in USD"}}}},{"resourceKey":"POST /api/tools/execute/unified/getTopRunesByVolume","method":"POST","path":"/api/tools/execute/unified/getTopRunesByVolume","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/getTopRunesByVolume","summary":"Get Bitcoin runes ranked by 24h trading volume. Use this to find the most actively traded runes. Returns price, market cap, 24h volume, and price change.","authRequired":false,"inputSchema":{"type":"object","properties":{"limit":{"type":"number","minimum":1,"maximum":50,"default":20,"description":"Number of runes to return (max 50)"},"minVolume":{"type":"number","description":"Filter for runes with 24h volume above this value in USD"}}}},{"resourceKey":"POST /api/tools/execute/unified/getTopBRC20ByMarketCap","method":"POST","path":"/api/tools/execute/unified/getTopBRC20ByMarketCap","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/getTopBRC20ByMarketCap","summary":"Get BRC-20 tokens ranked by market cap. Use this to find the most valuable BRC-20 tokens. Returns price, market cap, 24h volume, and price change.","authRequired":false,"inputSchema":{"type":"object","properties":{"limit":{"type":"number","minimum":1,"maximum":50,"default":20,"description":"Number of tokens to return (max 50)"},"minMarketCap":{"type":"number","description":"Filter for tokens with market cap above this value in USD"}}}},{"resourceKey":"POST /api/tools/execute/unified/getTopBRC20ByVolume","method":"POST","path":"/api/tools/execute/unified/getTopBRC20ByVolume","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/getTopBRC20ByVolume","summary":"Get BRC-20 tokens ranked by 24h trading volume. Use this to find the most actively traded BRC-20 tokens. Returns price, market cap, 24h volume, and price change.","authRequired":false,"inputSchema":{"type":"object","properties":{"limit":{"type":"number","minimum":1,"maximum":50,"default":20,"description":"Number of tokens to return (max 50)"},"minVolume":{"type":"number","description":"Filter for tokens with 24h volume above this value in USD"}}}},{"resourceKey":"POST /api/tools/execute/unified/getTrendingCoins","method":"POST","path":"/api/tools/execute/unified/getTrendingCoins","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/getTrendingCoins","summary":"Get currently trending cryptocurrencies on CoinGecko. Shows coins with highest search interest in the last 24 hours.","authRequired":false,"inputSchema":{"type":"object","properties":{}}},{"resourceKey":"POST /api/tools/execute/unified/searchCryptoByName","method":"POST","path":"/api/tools/execute/unified/searchCryptoByName","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/searchCryptoByName","summary":"Search for cryptocurrencies by name or symbol. Use this to find the correct token ID before getting detailed market data.","authRequired":false,"inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Search query (name or symbol)"}},"required":["query"]}},{"resourceKey":"POST /api/tools/execute/unified/getCryptoPrice","method":"POST","path":"/api/tools/execute/unified/getCryptoPrice","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/getCryptoPrice","summary":"Get the current USD price of a major cryptocurrency. Use this when the user asks about the price, value, or worth of BTC, ETH, SOL, BNB, or HBAR. This is the PRIMARY tool for answering questions like 'What's Bitcoin worth?', 'ETH price', 'How much is SOL?', or 'Tell me about Bitcoin'.","authRequired":false,"inputSchema":{"type":"object","properties":{"coinId":{"type":"string","description":"Coin symbol or name: 'btc', 'bitcoin', 'eth', 'ethereum', 'sol', 'solana', 'bnb', 'binancecoin', 'hbar', 'hedera'"}},"required":["coinId"]}},{"resourceKey":"POST /api/tools/execute/unified/getCollectionVolume","method":"POST","path":"/api/tools/execute/unified/getCollectionVolume","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/getCollectionVolume","summary":"Get trading volume and market stats for a Bitcoin ordinal collection from Magic Eden. Returns total volume, floor price, supply, owners, and listings. Use this for questions about collection trading activity or volume.","authRequired":false,"inputSchema":{"type":"object","properties":{"collectionSymbol":{"type":"string","description":"The collection symbol/slug (e.g., 'bitcoin-puppets', 'nodemonkes', 'quantum-cats')"}},"required":["collectionSymbol"]}},{"resourceKey":"POST /api/tools/execute/unified/getTopCollectionsByVolume","method":"POST","path":"/api/tools/execute/unified/getTopCollectionsByVolume","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/getTopCollectionsByVolume","summary":"Get Bitcoin ordinal collections ranked by trading volume from Magic Eden. Use this when user asks about 'inscriptions with most volume', 'top trading collections', or 'hottest ordinal collections'.","authRequired":false,"inputSchema":{"type":"object","properties":{"limit":{"type":"number","minimum":1,"maximum":50,"default":20,"description":"Number of collections to return (max 50)"}}}},{"resourceKey":"POST /api/tools/execute/unified/getTopCollectionsByFloor","method":"POST","path":"/api/tools/execute/unified/getTopCollectionsByFloor","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/getTopCollectionsByFloor","summary":"Get Bitcoin ordinal collections ranked by floor price from Magic Eden. Use this when user asks about 'most expensive collections' or 'highest floor price ordinals'.","authRequired":false,"inputSchema":{"type":"object","properties":{"limit":{"type":"number","minimum":1,"maximum":50,"default":20,"description":"Number of collections to return (max 50)"}}}},{"resourceKey":"POST /api/tools/execute/unified/getMagicEdenRunePrice","method":"POST","path":"/api/tools/execute/unified/getMagicEdenRunePrice","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/getMagicEdenRunePrice","summary":"Get rune market data from Magic Eden as an alternative data source. Use this if Ordiscan returns zero prices for a rune.","authRequired":false,"inputSchema":{"type":"object","properties":{"runeName":{"type":"string","description":"The rune name without bullet spacers (e.g., 'DOGGOTOTHEMOON')"}},"required":["runeName"]}},{"resourceKey":"POST /api/tools/execute/unified/getBTCBalances","method":"POST","path":"/api/tools/execute/unified/getBTCBalances","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/getBTCBalances","summary":"Get the balance of the bitcoin wallet for both taproot and nested segwit. It doesn't include runes, ordinals, etc.","authRequired":true,"inputSchema":{"type":"object","properties":{}}},{"resourceKey":"POST /api/tools/execute/unified/transferBTC","method":"POST","path":"/api/tools/execute/unified/transferBTC","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/transferBTC","summary":"Transfer BTC between addresses","authRequired":true,"inputSchema":{"type":"object","properties":{"toAddress":{"type":"string","description":"The Bitcoin address to send the BTC to"},"amount":{"type":"number","description":"The amount of BTC to send. example: 0.5 for 0.5 BTC"}},"required":["toAddress","amount"]}},{"resourceKey":"POST /api/tools/execute/unified/sendRunes","method":"POST","path":"/api/tools/execute/unified/sendRunes","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/sendRunes","summary":"Send runes to a given address","authRequired":true,"inputSchema":{"type":"object","properties":{"runeId":{"type":"string","description":"The rune id to send"},"toAddress":{"type":"string","description":"The Bitcoin taproot address to send the runes to"},"amount":{"type":"number","description":"The amount of runes to send. example: 1 for 1 rune"}},"required":["runeId","toAddress","amount"]}},{"resourceKey":"POST /api/tools/execute/unified/sendInscription","method":"POST","path":"/api/tools/execute/unified/sendInscription","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/sendInscription","summary":"Send an inscription to a given address","authRequired":true,"inputSchema":{"type":"object","properties":{"inscriptionId":{"type":"string","description":"The inscription id to send"},"toAddress":{"type":"string","description":"The Bitcoin taproot address to send the inscription to"}},"required":["inscriptionId","toAddress"]}},{"resourceKey":"POST /api/tools/execute/unified/getXCPBalances","method":"POST","path":"/api/tools/execute/unified/getXCPBalances","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/getXCPBalances","summary":"Get the balances of the bitcoin legacy wallet for XCP and stamps, rarepepes","authRequired":true,"inputSchema":{"type":"object","properties":{}}},{"resourceKey":"POST /api/tools/execute/unified/sendXCP","method":"POST","path":"/api/tools/execute/unified/sendXCP","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/sendXCP","summary":"Send XCP to a given address","authRequired":true,"inputSchema":{"type":"object","properties":{"toAddress":{"type":"string","description":"The XCP address to send the XCP to"},"amount":{"type":"number","description":"The amount of XCP to send"},"asset":{"type":"string","description":"The asset to send"}},"required":["toAddress","amount","asset"]}},{"resourceKey":"POST /api/tools/execute/unified/openseaListNFT","method":"POST","path":"/api/tools/execute/unified/openseaListNFT","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/openseaListNFT","summary":"List an NFT for sale on OpenSea","authRequired":true,"inputSchema":{"type":"object","properties":{"chainId":{"type":"number","enum":[1,137,8453],"description":"The chain ID (1=Ethereum, 137=Polygon, 8453=Base)"},"amountInEth":{"type":"number","description":"The listing price in ETH/native token"},"contractAddress":{"type":"string","description":"The NFT contract address"},"tokenId":{"type":"string","description":"The token ID of the NFT"}},"required":["chainId","amountInEth","contractAddress","tokenId"]}},{"resourceKey":"POST /api/tools/execute/unified/openseaCreateNFTOffer","method":"POST","path":"/api/tools/execute/unified/openseaCreateNFTOffer","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/openseaCreateNFTOffer","summary":"Create a buy offer for an NFT on OpenSea","authRequired":true,"inputSchema":{"type":"object","properties":{"chainId":{"type":"number","enum":[1,137,8453],"description":"The chain ID (1=Ethereum, 137=Polygon, 8453=Base)"},"contractAddress":{"type":"string","description":"The NFT contract address"},"tokenId":{"type":"string","description":"The token ID of the NFT"},"amountInEth":{"type":"number","description":"The offer amount in ETH/native token"},"expirationTimeUTCSeconds":{"type":"number","description":"Offer expiration time as Unix timestamp (seconds)"}},"required":["chainId","contractAddress","tokenId","amountInEth","expirationTimeUTCSeconds"]}},{"resourceKey":"POST /api/tools/execute/unified/openseaFulfillNFTOrder","method":"POST","path":"/api/tools/execute/unified/openseaFulfillNFTOrder","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/openseaFulfillNFTOrder","summary":"Buy an NFT by fulfilling an existing order on OpenSea","authRequired":true,"inputSchema":{"type":"object","properties":{"chainId":{"type":"number","enum":[1,137,8453],"description":"The chain ID (1=Ethereum, 137=Polygon, 8453=Base)"},"orderHash":{"type":"string","description":"The hash of the order to fulfill"},"tokenId":{"type":"string","description":"The token ID of the NFT"},"contractAddress":{"type":"string","description":"The NFT contract address"},"unitsToFill":{"type":"number","description":"Number of units to purchase (usually 1)"},"protocolAddress":{"type":"string","description":"The Seaport protocol address"}},"required":["chainId","orderHash","tokenId","contractAddress","unitsToFill","protocolAddress"]}},{"resourceKey":"POST /api/tools/execute/unified/openseaCancelNFTOrder","method":"POST","path":"/api/tools/execute/unified/openseaCancelNFTOrder","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/openseaCancelNFTOrder","summary":"Cancel your NFT listing or offer on OpenSea","authRequired":true,"inputSchema":{"type":"object","properties":{"chainId":{"type":"number","enum":[1,137,8453],"description":"The chain ID (1=Ethereum, 137=Polygon, 8453=Base)"},"contractAddress":{"type":"string","description":"The NFT contract address"},"tokenId":{"type":"string","description":"The token ID of the NFT"},"orderSide":{"type":"number","minimum":0,"maximum":1,"description":"Order side: 0 for BUY (offer), 1 for SELL (listing)"}},"required":["chainId","contractAddress","tokenId","orderSide"]}},{"resourceKey":"POST /api/tools/execute/unified/openseaTransferNFT","method":"POST","path":"/api/tools/execute/unified/openseaTransferNFT","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/openseaTransferNFT","summary":"Transfer an NFT to another address","authRequired":true,"inputSchema":{"type":"object","properties":{"chainId":{"type":"number","enum":[1,137,8453],"description":"The chain ID (1=Ethereum, 137=Polygon, 8453=Base)"},"contractAddress":{"type":"string","description":"The NFT contract address"},"tokenId":{"type":"string","description":"The token ID of the NFT"},"toAddress":{"type":"string","description":"The recipient wallet address"}},"required":["chainId","contractAddress","tokenId","toAddress"]}},{"resourceKey":"POST /api/tools/execute/unified/openseaGetNFTListings","method":"POST","path":"/api/tools/execute/unified/openseaGetNFTListings","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/openseaGetNFTListings","summary":"Get active sell listings for an NFT on OpenSea","authRequired":false,"inputSchema":{"type":"object","properties":{"chainId":{"type":"number","enum":[1,137,8453],"description":"The chain ID (1=Ethereum, 137=Polygon, 8453=Base)"},"contractAddress":{"type":"string","description":"The NFT contract address"},"tokenId":{"type":"string","description":"The token ID of the NFT"}},"required":["chainId","contractAddress","tokenId"]}},{"resourceKey":"POST /api/tools/execute/unified/openseaGetNFTOffers","method":"POST","path":"/api/tools/execute/unified/openseaGetNFTOffers","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/openseaGetNFTOffers","summary":"Get buy offers for an NFT on OpenSea","authRequired":false,"inputSchema":{"type":"object","properties":{"chainId":{"type":"number","enum":[1,137,8453],"description":"The chain ID (1=Ethereum, 137=Polygon, 8453=Base)"},"contractAddress":{"type":"string","description":"The NFT contract address"},"tokenId":{"type":"string","description":"The token ID of the NFT"}},"required":["chainId","contractAddress","tokenId"]}},{"resourceKey":"POST /api/tools/execute/unified/openseaGetMyNFTs","method":"POST","path":"/api/tools/execute/unified/openseaGetMyNFTs","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/openseaGetMyNFTs","summary":"Get all NFTs owned by the user on OpenSea. ALWAYS use this tool first when user asks about their NFTs or NFT collection.","authRequired":true,"inputSchema":{"type":"object","properties":{"limit":{"type":"number","default":100,"description":"Maximum number of NFTs to return"},"next":{"type":"string","description":"Pagination cursor for next page"}}}},{"resourceKey":"POST /api/tools/execute/unified/openseaGetTrendingCollections","method":"POST","path":"/api/tools/execute/unified/openseaGetTrendingCollections","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/openseaGetTrendingCollections","summary":"Find trending NFT collections by volume, market cap, or price changes. Use this for market research and discovering popular collections.","authRequired":false,"inputSchema":{"type":"object","properties":{"chainId":{"type":"number","enum":[1,137,8453],"default":1,"description":"Chain ID (1=Ethereum, 137=Polygon, etc.)"},"orderBy":{"type":"string","enum":["seven_day_volume","one_day_change","seven_day_change","market_cap"],"default":"seven_day_volume","description":"Sort collections by this metric"},"limit":{"type":"number","minimum":1,"maximum":50,"default":10,"description":"Number of collections to return"},"next":{"type":"string","description":"Pagination cursor for next page"}}}},{"resourceKey":"POST /api/tools/execute/unified/openseaGetCollectionStats","method":"POST","path":"/api/tools/execute/unified/openseaGetCollectionStats","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/openseaGetCollectionStats","summary":"Get detailed stats for an NFT collection including floor price, volume, sales, owners, and market cap. Use collection slug (e.g., 'boredapeyachtclub'), not the collection name.","authRequired":false,"inputSchema":{"type":"object","properties":{"collectionSlug":{"type":"string","description":"Collection slug (e.g., 'boredapeyachtclub', 'cryptopunks')"}},"required":["collectionSlug"]}},{"resourceKey":"POST /api/tools/execute/unified/openseaGetCollectionActivity","method":"POST","path":"/api/tools/execute/unified/openseaGetCollectionActivity","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/openseaGetCollectionActivity","summary":"Monitor recent activity for an NFT collection: sales, transfers, mints, listings, and offers. Use this to track market activity and recent trades.","authRequired":false,"inputSchema":{"type":"object","properties":{"collectionSlug":{"type":"string","description":"Collection slug (e.g., 'boredapeyachtclub')"},"eventType":{"type":"string","enum":["sale","transfer","mint","listing","offer"],"description":"Filter by event type (omit for all events)"},"limit":{"type":"number","minimum":1,"maximum":50,"default":20,"description":"Number of events to return"},"next":{"type":"string","description":"Pagination cursor for next page"}},"required":["collectionSlug"]}},{"resourceKey":"POST /api/tools/execute/unified/openseaGetBestListings","method":"POST","path":"/api/tools/execute/unified/openseaGetBestListings","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/openseaGetBestListings","summary":"Get the cheapest (best) listings for an NFT collection. Use this for price discovery and finding deals.","authRequired":false,"inputSchema":{"type":"object","properties":{"collectionSlug":{"type":"string","description":"Collection slug (e.g., 'pudgypenguins')"},"limit":{"type":"number","minimum":1,"maximum":100,"default":20,"description":"Number of listings to return"},"next":{"type":"string","description":"Pagination cursor for next page"}},"required":["collectionSlug"]}},{"resourceKey":"POST /api/tools/execute/unified/emblemListMyVaults","method":"POST","path":"/api/tools/execute/unified/emblemListMyVaults","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/emblemListMyVaults","summary":"List all vaults owned by the connected wallet (or a specified address), with optional filtering by status","authRequired":true,"inputSchema":{"type":"object","properties":{"address":{"type":"string","description":"EVM wallet address (0x...). Omit to use connected wallet."},"status":{"type":"string","enum":["unclaimed","claimed","unminted"],"description":"Filter by vault status - empty to show all"}}}},{"resourceKey":"POST /api/tools/execute/unified/emblemGetVaultDetails","method":"POST","path":"/api/tools/execute/unified/emblemGetVaultDetails","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/emblemGetVaultDetails","summary":"Get complete metadata, balances, and details for a specific vault","authRequired":true,"inputSchema":{"type":"object","properties":{"tokenId":{"type":"string","description":"The vault token ID"},"includeImages":{"type":"boolean","default":true,"description":"Include asset images in response"}},"required":["tokenId"]}},{"resourceKey":"POST /api/tools/execute/unified/emblemCreateVault","method":"POST","path":"/api/tools/execute/unified/emblemCreateVault","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/emblemCreateVault","summary":"Create a new vault from a curated collection. Uses connected wallet. Returns deposit address to send assets to.","authRequired":true,"inputSchema":{"type":"object","properties":{"collectionName":{"type":"string","description":"Collection name (e.g., \"Darkfarms\", \"SoG\") - use emblem list collections first"},"toAddress":{"type":"string","description":"Address that will own the vault (defaults to your connected wallet)"},"assetName":{"type":"string","description":"Specific asset within collection to pre-select when the collection LoadType is 'select'. Find them in emblemGetCollectionAssets using the collection name"}},"required":["collectionName"]}},{"resourceKey":"POST /api/tools/execute/unified/emblemMintVault","method":"POST","path":"/api/tools/execute/unified/emblemMintVault","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/emblemMintVault","summary":"Mint a vault as an NFT on Ethereum. Requires valid Emblem JWT from authenticated session.","authRequired":true,"inputSchema":{"type":"object","properties":{"tokenId":{"type":"string","description":"The vault token ID to mint"}},"required":["tokenId"]}},{"resourceKey":"POST /api/tools/execute/unified/emblemRevealKeys","method":"POST","path":"/api/tools/execute/unified/emblemRevealKeys","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/emblemRevealKeys","summary":"Reveal (unvault) the private key and seed phrase for a vault. Returns encrypted keys that are automatically decrypted.","authRequired":true,"inputSchema":{"type":"object","properties":{"tokenId":{"type":"string","description":"The vault token ID"}},"required":["tokenId"]}},{"resourceKey":"POST /api/tools/execute/unified/emblemRefreshBalance","method":"POST","path":"/api/tools/execute/unified/emblemRefreshBalance","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/emblemRefreshBalance","summary":"Force refresh of vault balance from live blockchain data. Useful for seeing recently deposited assets.","authRequired":true,"inputSchema":{"type":"object","properties":{"tokenId":{"type":"string","description":"The vault token ID"}},"required":["tokenId"]}},{"resourceKey":"POST /api/tools/execute/unified/emblemDeleteVault","method":"POST","path":"/api/tools/execute/unified/emblemDeleteVault","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/emblemDeleteVault","summary":"Delete an empty vault. Only works for vaults with no assets. Requires Emblem JWT.","authRequired":true,"inputSchema":{"type":"object","properties":{"tokenId":{"type":"string","description":"The vault token ID - only empty vaults can be deleted"}},"required":["tokenId"]}},{"resourceKey":"POST /api/tools/execute/unified/emblemListCollections","method":"POST","path":"/api/tools/execute/unified/emblemListCollections","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/emblemListCollections","summary":"List all available curated collections for vault creation with asset details","authRequired":false,"inputSchema":{"type":"object","properties":{"showAll":{"type":"boolean","default":false,"description":"Show all collections including hidden ones"}}}},{"resourceKey":"POST /api/tools/execute/unified/emblemGetCollectionAssets","method":"POST","path":"/api/tools/execute/unified/emblemGetCollectionAssets","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/emblemGetCollectionAssets","summary":"Get all assets within a specific curated collection for vault creation","authRequired":false,"inputSchema":{"type":"object","properties":{"collectionName":{"type":"string","description":"Collection name (e.g., \"Darkfarms\", \"SoG\") - use emblem list collections first"}},"required":["collectionName"]}},{"resourceKey":"POST /api/tools/execute/unified/emblemResolveAsset","method":"POST","path":"/api/tools/execute/unified/emblemResolveAsset","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/emblemResolveAsset","summary":"Resolve an asset name to its curated collection. CRITICAL: Call this BEFORE emblemCreateVault when vaulting user assets to find the correct collection name.","authRequired":false,"inputSchema":{"type":"object","properties":{"assetName":{"type":"string","description":"The asset name from user wallet (e.g., \"TESTNETPEPE\", \"PEPECASH\", \"FDCARD\")"}},"required":["assetName"]}},{"resourceKey":"POST /api/tools/execute/unified/emblemGetDepositAddress","method":"POST","path":"/api/tools/execute/unified/emblemGetDepositAddress","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/emblemGetDepositAddress","summary":"Get the deposit address for a vault where you can send assets. Shows which coins are accepted.","authRequired":true,"inputSchema":{"type":"object","properties":{"tokenId":{"type":"string","description":"The vault token ID - get from emblem list my vaults"}},"required":["tokenId"]}},{"resourceKey":"POST /api/tools/execute/unified/emblemQuickVault","method":"POST","path":"/api/tools/execute/unified/emblemQuickVault","url":"https://hustle-v2-qddwxsqsl-emblem-062a811d.vercel.app/api/tools/execute/unified/emblemQuickVault","summary":"QuickVault: Vault assets from wallet. Use for 'vault [N] of my [ASSET]' requests. Call with confirmed=false first, then confirmed=true after user confirms.","authRequired":true,"inputSchema":{"type":"object","properties":{"assetName":{"type":"string","description":"Asset name (e.g., PEPECASH, RAREPEPE)"},"quantity":{"type":"number","default":1,"description":"Quantity to vault"},"confirmed":{"type":"boolean","default":false,"description":"false=check balance, true=execute"}},"required":["assetName"]}}],"ownershipProofs":[]}