{"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: BASE_USDC, SOL_USDC, SBTC, STX, USDCx.\n3. POST https://agenthustle.ai/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/createMemory","POST /api/tools/execute/unified/getUserMemoryCategories","POST /api/tools/execute/unified/getUserMemoriesByCategory","POST /api/tools/execute/unified/updateMemory","POST /api/tools/execute/unified/deleteMemory","POST /api/tools/execute/unified/getTrackedWallets","POST /api/tools/execute/unified/addTrackedWallet","POST /api/tools/execute/unified/removeTrackedWallet","POST /api/tools/execute/unified/migrateFunListProjects","POST /api/tools/execute/unified/migrateFunGetProjectDetails","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/claimPumpFunFees","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://agenthustle.ai/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://agenthustle.ai/api/tools/execute/unified/getAllBalances","summary":"Get balances across all supported networks (Solana, Ethereum, BSC, Polygon, Base, Hedera, Bitcoin). Defaults to the connected addresses from context. Optionally accepts a single `address` to query on behalf of another wallet: EVM (0x…) fans out to ethereum/bsc/polygon/base/hedera; Solana base58 goes to solana; Bitcoin 33-byte compressed pubkey hex goes to bitcoin. Chains whose address format doesn't match the override return `{ error: 'address type mismatch' }`. Returns per-network results, the `resolvedFrom` source for each chain, 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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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/createMemory","method":"POST","path":"/api/tools/execute/unified/createMemory","url":"https://agenthustle.ai/api/tools/execute/unified/createMemory","summary":"Create and store memory","authRequired":true,"inputSchema":{"type":"object","properties":{"category":{"type":"string","minLength":1,"maxLength":128,"description":"Category for the memory"},"content":{"type":"string","minLength":1,"maxLength":16384,"description":"The memory content to store"}},"required":["category","content"]}},{"resourceKey":"POST /api/tools/execute/unified/getUserMemoryCategories","method":"POST","path":"/api/tools/execute/unified/getUserMemoryCategories","url":"https://agenthustle.ai/api/tools/execute/unified/getUserMemoryCategories","summary":"Get all memory categories for the user","authRequired":true,"inputSchema":{"type":"object","properties":{}}},{"resourceKey":"POST /api/tools/execute/unified/getUserMemoriesByCategory","method":"POST","path":"/api/tools/execute/unified/getUserMemoriesByCategory","url":"https://agenthustle.ai/api/tools/execute/unified/getUserMemoriesByCategory","summary":"Get all memories in a specific category","authRequired":true,"inputSchema":{"type":"object","properties":{"category":{"type":"string","minLength":1,"maxLength":128,"description":"The category to retrieve memories from"}},"required":["category"]}},{"resourceKey":"POST /api/tools/execute/unified/updateMemory","method":"POST","path":"/api/tools/execute/unified/updateMemory","url":"https://agenthustle.ai/api/tools/execute/unified/updateMemory","summary":"Update an existing memory","authRequired":true,"inputSchema":{"type":"object","properties":{"memoryId":{"type":"string","description":"The ID of the memory to update"},"content":{"type":"string","minLength":1,"maxLength":16384,"description":"The new content"},"category":{"type":"string","minLength":1,"maxLength":128,"description":"The category"}},"required":["memoryId","content","category"]}},{"resourceKey":"POST /api/tools/execute/unified/deleteMemory","method":"POST","path":"/api/tools/execute/unified/deleteMemory","url":"https://agenthustle.ai/api/tools/execute/unified/deleteMemory","summary":"Delete a memory","authRequired":true,"inputSchema":{"type":"object","properties":{"memoryId":{"type":"string","description":"The ID of the memory to delete"}},"required":["memoryId"]}},{"resourceKey":"POST /api/tools/execute/unified/getTrackedWallets","method":"POST","path":"/api/tools/execute/unified/getTrackedWallets","url":"https://agenthustle.ai/api/tools/execute/unified/getTrackedWallets","summary":"List all wallets the user is currently tracking, plus up to 50 recent on-chain activity events. Use this before removeTrackedWallet when the user refers to a wallet by label instead of address.","authRequired":true,"inputSchema":{"type":"object","properties":{}}},{"resourceKey":"POST /api/tools/execute/unified/addTrackedWallet","method":"POST","path":"/api/tools/execute/unified/addTrackedWallet","url":"https://agenthustle.ai/api/tools/execute/unified/addTrackedWallet","summary":"Add a third-party wallet address to the user's tracker. Emits webhook events for on-chain activity on the selected chains. Supported chains: eth, base, bsc, polygon, solana. Defaults to all supported chains if omitted. NOT for the user's own connected vault — use wallet / getAllBalances for self balances.","authRequired":true,"inputSchema":{"type":"object","properties":{"address":{"type":"string","minLength":1,"description":"EVM or Solana address to track (e.g. 0x... or base58 Solana address)"},"label":{"type":"string","description":"Optional friendly name for the wallet (e.g. 'Vitalik', 'whale-1')"},"chains":{"type":"array","items":{"type":"string","enum":["eth","base","bsc","polygon","solana"]},"description":"Chains to track on. Omit for all supported: eth, base, bsc, polygon, solana."}},"required":["address"]}},{"resourceKey":"POST /api/tools/execute/unified/removeTrackedWallet","method":"POST","path":"/api/tools/execute/unified/removeTrackedWallet","url":"https://agenthustle.ai/api/tools/execute/unified/removeTrackedWallet","summary":"Stop tracking a wallet by its address. If the user references a wallet by label only, call getTrackedWallets first to resolve the address.","authRequired":true,"inputSchema":{"type":"object","properties":{"address":{"type":"string","minLength":1,"description":"The exact wallet address to stop tracking (EVM or Solana)"}},"required":["address"]}},{"resourceKey":"POST /api/tools/execute/unified/migrateFunListProjects","method":"POST","path":"/api/tools/execute/unified/migrateFunListProjects","url":"https://agenthustle.ai/api/tools/execute/unified/migrateFunListProjects","summary":"List available token migration projects on MigrateFun (Solana). Paginates from the end of the list (newest projects first). Use this to discover projects before fetching details with migrateFunGetProjectDetails.","authRequired":true,"inputSchema":{"type":"object","properties":{"limit":{"type":"integer","minimum":1,"maximum":20,"description":"Projects per page (default 5, max 20)"},"page":{"type":"integer","minimum":1,"description":"Page number, 1-indexed (default 1)"}}}},{"resourceKey":"POST /api/tools/execute/unified/migrateFunGetProjectDetails","method":"POST","path":"/api/tools/execute/unified/migrateFunGetProjectDetails","url":"https://agenthustle.ai/api/tools/execute/unified/migrateFunGetProjectDetails","summary":"Get full details for a MigrateFun migration project: token addresses, migration progress, deadline, exchange rate, fees, and status. Returns a pre-formatted text summary. Call migrateFunListProjects first to get a valid projectId.","authRequired":true,"inputSchema":{"type":"object","properties":{"projectId":{"type":"string","description":"The migration project ID (e.g. 'mig121'). Get this from migrateFunListProjects."}},"required":["projectId"]}},{"resourceKey":"POST /api/tools/execute/unified/getChangeNowSupportedCurrencies","method":"POST","path":"/api/tools/execute/unified/getChangeNowSupportedCurrencies","url":"https://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/api/tools/execute/unified/solanaBalances","summary":"Return the user's Solana wallet holdings: native SOL plus all SPL tokens with mint address, symbol, balance, decimals, and USD value where pricing is available.","authRequired":true,"inputSchema":{"type":"object","properties":{}}},{"resourceKey":"POST /api/tools/execute/unified/solanaTransfer","method":"POST","path":"/api/tools/execute/unified/solanaTransfer","url":"https://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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 to receive), \"5 sol\" (spend SOL), \"$250\" (spend USD), and when spend_token is a non-SOL token: \"50 <SYMBOL>\" (spend that many of spend_token, e.g. \"50 EMBLEM\"). Defaults to spending SOL. Handles token lookup, amount conversion, and routing automatically. PREFERRED over solanaSwapQuote/solanaSwap for most trading requests. IMPORTANT for TP/SL: use `quote.outputUsdPrice` as the USD price per 1 unit of the bought token. Never derive a USD price from inputAmount/outputAmount or inputUsdValue/outputAmount ratios — they mix units.","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 qty of `token` to receive), \"5 sol\" (spend SOL), \"$250\" or \"$1k\" (spend USD), \"50 EMBLEM\" / \"100 USDC\" (spend that many of `spend_token`; symbol must match spend_token). When a user asks to 'swap 50 EMBLEM for SOL' use '50 EMBLEM'; when they ask to 'buy 50 SOL with EMBLEM' use '50'."},"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://agenthustle.ai/api/tools/execute/unified/solanaGetTokenPairPrice","summary":"Quote the spot exchange rate between two SPL tokens, routed across Solana DEX liquidity for best execution. Returns the rate of inputMint denominated in outputMint, plus the route taken.","authRequired":false,"inputSchema":{"type":"object","properties":{"inputMint":{"type":"string","description":"SPL mint address of the input token (the one being sold/spent). Use 'So11111111111111111111111111111111111111112' for wrapped SOL."},"outputMint":{"type":"string","description":"SPL mint address of the output token (the one being bought). Use 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v' for USDC."}},"required":["inputMint","outputMint"]}},{"resourceKey":"POST /api/tools/execute/unified/solanaGetTokenPrices","method":"POST","path":"/api/tools/execute/unified/solanaGetTokenPrices","url":"https://agenthustle.ai/api/tools/execute/unified/solanaGetTokenPrices","summary":"Batch-fetch USD spot prices for one or more SPL tokens. Returns each mint's USD price plus confidence level. More efficient than calling solanaGetTokenPairPrice in a loop.","authRequired":false,"inputSchema":{"type":"object","properties":{"tokenMints":{"type":"array","items":{"type":"string"},"minItems":1,"maxItems":100,"description":"List of SPL mint addresses to price (1-100). Each entry is a base58 mint pubkey."}},"required":["tokenMints"]}},{"resourceKey":"POST /api/tools/execute/unified/rugcheck","method":"POST","path":"/api/tools/execute/unified/rugcheck","url":"https://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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/claimPumpFunFees","method":"POST","path":"/api/tools/execute/unified/claimPumpFunFees","url":"https://agenthustle.ai/api/tools/execute/unified/claimPumpFunFees","summary":"Claim accrued PumpFun creator fees for the connected Solana wallet. Use for: 'claim my pumpfun fees', 'collect creator rewards on pump.fun'. No inputs required. Returns the transaction signature on success, or an error if there are no fees available to claim.","authRequired":true,"inputSchema":{"type":"object","properties":{}}},{"resourceKey":"POST /api/tools/execute/unified/createLaunchLabToken","method":"POST","path":"/api/tools/execute/unified/createLaunchLabToken","url":"https://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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.\n\nANTI-PATTERN: do NOT encode a take-profit as `entryPrice` with `entryDirection=ABOVE` on a sell while also attaching `stopLossPrice`. The entry leg fires and closes the position, leaving the SL orphaned (exit triggers only arm post-fill). Exit triggers always reverse the entry trade — they are not a standalone OCO layer over an existing bag.","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 (entry swap runs immediately after acceptance). TP/SL arm post-fill and always reverse the entry trade. MARKET is async: a success response means the order was PLACED, not that the entry FILLED. If the async entry fails (slippage/balance/RPC/missing token account), no position is opened and TP/SL never arm. Tell the user it was placed and they must check the position to confirm the entry filled — do not say it executed/filled from the placement response."},"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. Do NOT encode a take-profit target here — attached TP/SL arm post-fill and reverse the entry. 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."}},"required":["buyToken","sellToken","entryTriggerToken","entryDirection"]}},{"resourceKey":"POST /api/tools/execute/unified/hederaNativeSend","method":"POST","path":"/api/tools/execute/unified/hederaNativeSend","url":"https://agenthustle.ai/api/tools/execute/unified/hederaNativeSend","summary":"Send native HBAR from the user's wallet to another Hedera address (EVM-formatted). Auto-creates the source account on first send if needed; amount is in whole HBAR units (decimal string).","authRequired":true,"inputSchema":{"type":"object","properties":{"to":{"description":"Recipient Hedera EVM address (0x-prefixed 42-char form). Use hederaAccountIdToEvmAddress to convert from 0.0.x format."},"amount":{"type":"string","description":"Amount of HBAR to send as a decimal string in whole HBAR units (e.g. '1' = 1 HBAR, '3.5' = 3.5 HBAR)."}},"required":["amount"]}},{"resourceKey":"POST /api/tools/execute/unified/hederaERC20TokenSend","method":"POST","path":"/api/tools/execute/unified/hederaERC20TokenSend","url":"https://agenthustle.ai/api/tools/execute/unified/hederaERC20TokenSend","summary":"Send a Hedera Token Service / ERC-20 token from the user's wallet to another Hedera address. Resolves token decimals automatically; amount is in whole-token units.","authRequired":true,"inputSchema":{"type":"object","properties":{"to":{"description":"Recipient Hedera EVM address (0x-prefixed 42-char form)."},"amount":{"type":"string","description":"Amount of the token to send as a decimal string in whole-token units (decimals applied by the API)."},"token":{"description":"Hedera token contract EVM address (0x-prefixed). Use hederaContractIdToEvmAddress to convert from 0.0.x form."}},"required":["amount"]}},{"resourceKey":"POST /api/tools/execute/unified/hederaGetBalances","method":"POST","path":"/api/tools/execute/unified/hederaGetBalances","url":"https://agenthustle.ai/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://agenthustle.ai/api/tools/execute/unified/hederaContractIdToEvmAddress","summary":"Convert a Hedera contract ID in '0.0.x' realm-shard-num form to its 0x-prefixed EVM address representation. Pure conversion — does not query the network.","authRequired":false,"inputSchema":{"type":"object","properties":{"contractId":{"type":"string","description":"Hedera contract ID in 'shard.realm.num' form (e.g. '0.0.731861')."}},"required":["contractId"]}},{"resourceKey":"POST /api/tools/execute/unified/hederaAccountIdToEvmAddress","method":"POST","path":"/api/tools/execute/unified/hederaAccountIdToEvmAddress","url":"https://agenthustle.ai/api/tools/execute/unified/hederaAccountIdToEvmAddress","summary":"Resolve a Hedera account ID in '0.0.x' realm-shard-num form to its 0x-prefixed EVM address by querying the Hedera mirror node (returns the account's alias or auto-generated EVM address).","authRequired":false,"inputSchema":{"type":"object","properties":{"address":{"type":"string","description":"Hedera account ID in 'shard.realm.num' form (e.g. '0.0.3949424')."}},"required":["address"]}},{"resourceKey":"POST /api/tools/execute/unified/hederaFindTokens","method":"POST","path":"/api/tools/execute/unified/hederaFindTokens","url":"https://agenthustle.ai/api/tools/execute/unified/hederaFindTokens","summary":"Search Hedera-listed tokens by name or symbol (substring, case-insensitive). Returns matching tokens with EVM address, name, symbol, and decimals. Omit the query to list all tokens.","authRequired":false,"inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Free-text query against token name and symbol (case-insensitive substring match). Omit to return the full SaucerSwap token list."}}}},{"resourceKey":"POST /api/tools/execute/unified/hederaTokensSwapQuote","method":"POST","path":"/api/tools/execute/unified/hederaTokensSwapQuote","url":"https://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/api/tools/execute/unified/hederaFindMemeCoins","summary":"Browse Hedera meme tokens listed on the MemeJob bonding-curve launchpad. Sort by market cap, creation time, last activity, or nearest-promoted; paginated for discovery feeds.","authRequired":false,"inputSchema":{"type":"object","properties":{"page":{"type":"integer","minimum":0,"default":0,"description":"0-indexed page number (defaults to 0 for first page)."},"limit":{"type":"integer","exclusiveMinimum":0,"maximum":50,"default":10,"description":"Results per page (1-50). Defaults to 10."},"orderBy":{"type":"string","enum":["market-cap","creation-time","last-activity","nearest-promoted"],"default":"market-cap","description":"Sort field: 'market-cap' (size), 'creation-time' (newest), 'last-activity' (active), 'nearest-promoted' (curated next)."},"orderDirection":{"type":"string","enum":["asc","desc"],"default":"desc","description":"Sort direction: 'desc' for largest/newest first, 'asc' for opposite."}}}},{"resourceKey":"POST /api/tools/execute/unified/hederaMemejobBuyToken","method":"POST","path":"/api/tools/execute/unified/hederaMemejobBuyToken","url":"https://agenthustle.ai/api/tools/execute/unified/hederaMemejobBuyToken","summary":"Buy a Hedera meme token on the MemeJob bonding curve by spending native HBAR. Auto-creates the user's Hedera account if needed; settle at current curve price.","authRequired":true,"inputSchema":{"type":"object","properties":{"tokenId":{"type":"string","description":"MemeJob token EVM address (0x-prefixed) or Hedera token ID (0.0.x). Use hederaFindMemeCoins to discover."},"amount":{"type":"string","description":"Amount of native HBAR to spend on the buy as a decimal string (e.g. '5' = 5 HBAR)."}},"required":["tokenId","amount"]}},{"resourceKey":"POST /api/tools/execute/unified/hederaMemeJobSellToken","method":"POST","path":"/api/tools/execute/unified/hederaMemeJobSellToken","url":"https://agenthustle.ai/api/tools/execute/unified/hederaMemeJobSellToken","summary":"Sell a Hedera meme token back on the MemeJob bonding curve for native HBAR. Settles at current curve price; check held amounts via hederaGetBalances first.","authRequired":true,"inputSchema":{"type":"object","properties":{"tokenId":{"type":"string","description":"MemeJob token EVM address (0x-prefixed) or Hedera token ID (0.0.x)."},"amount":{"type":"string","description":"Amount of the token to sell as a decimal string in whole-token units."}},"required":["tokenId","amount"]}},{"resourceKey":"POST /api/tools/execute/unified/createHederaConditionalTradePosition","method":"POST","path":"/api/tools/execute/unified/createHederaConditionalTradePosition","url":"https://agenthustle.ai/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 (entry swap runs immediately after acceptance) or LIMIT (execute when price triggers). MARKET is async: a success response means the order was PLACED, not that the entry FILLED. If the async entry fails (slippage/balance/RPC), no position is opened and TP/SL never arm. Tell the user it was placed and they must check the position to confirm the entry filled — do not say it executed/filled from the placement response."},"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://agenthustle.ai/api/tools/execute/unified/ethNativeSend","summary":"Send native ETH from the user's wallet to another address on Ethereum mainnet (chain ID 1). Builds, signs, and broadcasts the transaction; amount is in whole ETH units (decimal string).","authRequired":true,"inputSchema":{"type":"object","properties":{"to":{"description":"Recipient EVM address on Ethereum mainnet (0x-prefixed, 42 chars)."},"amount":{"type":"string","description":"Amount of ETH to send as a decimal string in whole ETH units (e.g. '0.05' = 0.05 ETH = 5×10^16 wei)."}},"required":["amount"]}},{"resourceKey":"POST /api/tools/execute/unified/ethSendERC20Token","method":"POST","path":"/api/tools/execute/unified/ethSendERC20Token","url":"https://agenthustle.ai/api/tools/execute/unified/ethSendERC20Token","summary":"Send an ERC-20 token from the user's wallet to another address on Ethereum mainnet. Resolves the token's decimals automatically; amount is in human-readable token units.","authRequired":true,"inputSchema":{"type":"object","properties":{"to":{"description":"Recipient EVM address on Ethereum mainnet (0x-prefixed)."},"amount":{"type":"string","description":"Amount of the token to send as a decimal string in whole-token units (decimals applied by the API)."},"token":{"description":"ERC-20 token contract address on Ethereum mainnet (0x-prefixed)."}},"required":["amount"]}},{"resourceKey":"POST /api/tools/execute/unified/ethSendNFT","method":"POST","path":"/api/tools/execute/unified/ethSendNFT","url":"https://agenthustle.ai/api/tools/execute/unified/ethSendNFT","summary":"Send an NFT (ERC-721 or ERC-1155) from the user's wallet to another address on a chosen EVM chain. Selects the correct safeTransferFrom variant based on the declared standard; the chain is selected via chainId so this single tool covers Ethereum, BSC, Polygon, and Base.","authRequired":true,"inputSchema":{"type":"object","properties":{"to":{"description":"Recipient EVM address (0x-prefixed) on the chosen chain."},"tokenAddress":{"description":"NFT contract address (0x-prefixed) on the chosen chain."},"tokenId":{"type":"string","description":"Token ID of the specific NFT to send (decimal string for very large IDs)."},"tokenStandard":{"type":"string","enum":["ERC721","ERC1155"],"description":"NFT standard: 'ERC721' for unique tokens, 'ERC1155' for semi-fungible / multi-edition."},"quantity":{"type":"integer","exclusiveMinimum":0,"description":"Number of NFTs to send (ERC-1155 only). Ignored / defaults to 1 for ERC-721."},"chainId":{"type":"number","enum":[1,56,137,8453],"description":"EVM chain to dispatch on: 1=Ethereum mainnet, 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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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 (entry swap runs immediately after acceptance) or LIMIT (execute when price triggers). MARKET is async: a success response means the order was PLACED, not that the entry FILLED. If the async entry fails (slippage/balance/RPC), no position is opened and TP/SL never arm. Tell the user it was placed and they must check the position to confirm the entry filled — do not say it executed/filled from the placement response."},"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://agenthustle.ai/api/tools/execute/unified/bnbNativeSend","summary":"Send native BNB from the user's wallet to another address on BNB Smart Chain (chain ID 56). Builds, signs, and broadcasts an EVM transaction; amount is in BNB units (decimal string).","authRequired":true,"inputSchema":{"type":"object","properties":{"to":{"description":"Recipient EVM address on BSC (0x-prefixed, 42 chars)."},"amount":{"type":"string","description":"Amount of BNB to send as a decimal string in whole BNB units (e.g. '0.05' = 0.05 BNB = 5×10^16 wei)."}},"required":["amount"]}},{"resourceKey":"POST /api/tools/execute/unified/bscSendERC20Token","method":"POST","path":"/api/tools/execute/unified/bscSendERC20Token","url":"https://agenthustle.ai/api/tools/execute/unified/bscSendERC20Token","summary":"Send an ERC-20 / BEP-20 token from the user's wallet to another address on BNB Smart Chain. Resolves the token's decimals automatically; amount is given in human-readable token units.","authRequired":true,"inputSchema":{"type":"object","properties":{"to":{"description":"Recipient EVM address on BSC (0x-prefixed, 42 chars)."},"amount":{"type":"string","description":"Amount of the token to send as a decimal string in whole-token units (decimals are applied by the API)."},"token":{"description":"ERC-20 / BEP-20 token contract address on BSC (0x-prefixed)."}},"required":["amount"]}},{"resourceKey":"POST /api/tools/execute/unified/bscGetBalances","method":"POST","path":"/api/tools/execute/unified/bscGetBalances","url":"https://agenthustle.ai/api/tools/execute/unified/bscGetBalances","summary":"Return the user's wallet holdings on BNB Smart Chain (chain ID 56): native BNB plus all detected BEP-20 token balances with contract address, symbol, decimals, and USD value where pricing is available.","authRequired":true,"inputSchema":{"type":"object","properties":{}}},{"resourceKey":"POST /api/tools/execute/unified/bscSwapQuote","method":"POST","path":"/api/tools/execute/unified/bscSwapQuote","url":"https://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/api/tools/execute/unified/bscBuyFourMemeToken","summary":"Buy a meme token on the FourMeme bonding curve (BSC) by spending native BNB. Use bscfindMemeCoinsViaFourMeme to discover candidates and isFourMemeToken to verify a token is on FourMeme before buying.","authRequired":true,"inputSchema":{"type":"object","properties":{"tokenAddress":{"description":"FourMeme token contract address on BSC (0x-prefixed)."},"bnbAmount":{"type":"string","description":"Amount of native BNB to spend on the buy as a decimal string (e.g. '0.1' = 0.1 BNB)."}},"required":["bnbAmount"]}},{"resourceKey":"POST /api/tools/execute/unified/bscSellFourMemeToken","method":"POST","path":"/api/tools/execute/unified/bscSellFourMemeToken","url":"https://agenthustle.ai/api/tools/execute/unified/bscSellFourMemeToken","summary":"Sell a meme token back on the FourMeme bonding curve (BSC) for native BNB. Settles at the current curve price; use bscGetBalances to check held amounts before selling.","authRequired":true,"inputSchema":{"type":"object","properties":{"tokenAddress":{"description":"FourMeme token contract address on BSC (0x-prefixed)."},"tokenAmount":{"type":"string","description":"Amount of the token to sell as a decimal string in whole-token units (decimals are applied by the API)."}},"required":["tokenAmount"]}},{"resourceKey":"POST /api/tools/execute/unified/isFourMemeToken","method":"POST","path":"/api/tools/execute/unified/isFourMemeToken","url":"https://agenthustle.ai/api/tools/execute/unified/isFourMemeToken","summary":"Check whether a BSC token contract is registered on FourMeme and is still on the bonding curve (not yet listed / migrated off the curve). Returns the FourMeme token record if found.","authRequired":false,"inputSchema":{"type":"object","properties":{"tokenAddress":{"description":"BSC token contract address to check against the FourMeme registry (0x-prefixed)."}}}},{"resourceKey":"POST /api/tools/execute/unified/createBscConditionalTradePosition","method":"POST","path":"/api/tools/execute/unified/createBscConditionalTradePosition","url":"https://agenthustle.ai/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 (entry swap runs immediately after acceptance) or LIMIT (execute when price triggers). MARKET is async: a success response means the order was PLACED, not that the entry FILLED. If the async entry fails (slippage/balance/RPC), no position is opened and TP/SL never arm. Tell the user it was placed and they must check the position to confirm the entry filled — do not say it executed/filled from the placement response."},"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://agenthustle.ai/api/tools/execute/unified/polygonNativeSend","summary":"Send native MATIC (Polygon's gas token) from the user's wallet to another address on Polygon (chain ID 137). Builds, signs, and broadcasts the EVM transaction; amount is in whole MATIC units.","authRequired":true,"inputSchema":{"type":"object","properties":{"to":{"description":"Recipient EVM address on Polygon (0x-prefixed, 42 chars)."},"amount":{"type":"string","description":"Amount of MATIC to send as a decimal string in whole MATIC units (e.g. '5' = 5 MATIC)."}},"required":["amount"]}},{"resourceKey":"POST /api/tools/execute/unified/polygonSendERC20Token","method":"POST","path":"/api/tools/execute/unified/polygonSendERC20Token","url":"https://agenthustle.ai/api/tools/execute/unified/polygonSendERC20Token","summary":"Send an ERC-20 token from the user's wallet to another address on Polygon (chain ID 137). Resolves the token's decimals automatically; amount is in human-readable token units.","authRequired":true,"inputSchema":{"type":"object","properties":{"to":{"description":"Recipient EVM address on Polygon (0x-prefixed)."},"amount":{"type":"string","description":"Amount of the token to send as a decimal string in whole-token units (decimals applied by the API)."},"token":{"description":"ERC-20 token contract address on Polygon (0x-prefixed)."}},"required":["amount"]}},{"resourceKey":"POST /api/tools/execute/unified/polygonGetBalances","method":"POST","path":"/api/tools/execute/unified/polygonGetBalances","url":"https://agenthustle.ai/api/tools/execute/unified/polygonGetBalances","summary":"Return the user's wallet holdings on Polygon (chain ID 137): native MATIC plus all detected ERC-20 token balances with contract address, symbol, decimals, and USD value where pricing is available.","authRequired":true,"inputSchema":{"type":"object","properties":{}}},{"resourceKey":"POST /api/tools/execute/unified/polygonSwapQuote","method":"POST","path":"/api/tools/execute/unified/polygonSwapQuote","url":"https://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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 (entry swap runs immediately after acceptance) or LIMIT (execute when price triggers). MARKET is async: a success response means the order was PLACED, not that the entry FILLED. If the async entry fails (slippage/balance/RPC), no position is opened and TP/SL never arm. Tell the user it was placed and they must check the position to confirm the entry filled — do not say it executed/filled from the placement response."},"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."}},"required":["buyToken","sellToken","type","entryTriggerToken","entryDirection"]}},{"resourceKey":"POST /api/tools/execute/unified/baseNativeSend","method":"POST","path":"/api/tools/execute/unified/baseNativeSend","url":"https://agenthustle.ai/api/tools/execute/unified/baseNativeSend","summary":"Send native ETH from the user's wallet to another address on Base (Coinbase L2, chain ID 8453). Builds, signs, and broadcasts the EVM transaction; amount is given in whole ETH units (decimal string).","authRequired":true,"inputSchema":{"type":"object","properties":{"to":{"description":"Recipient EVM address on Base (0x-prefixed, 42 chars)."},"amount":{"type":"string","description":"Amount of ETH to send as a decimal string in whole ETH units (e.g. '0.1' = 0.1 ETH)."}},"required":["amount"]}},{"resourceKey":"POST /api/tools/execute/unified/baseSendERC20Token","method":"POST","path":"/api/tools/execute/unified/baseSendERC20Token","url":"https://agenthustle.ai/api/tools/execute/unified/baseSendERC20Token","summary":"Send an ERC-20 token from the user's wallet to another address on Base. Resolves the token's decimals automatically; amount is in human-readable token units.","authRequired":true,"inputSchema":{"type":"object","properties":{"to":{"description":"Recipient EVM address on Base (0x-prefixed)."},"amount":{"type":"string","description":"Amount of the token to send as a decimal string in whole-token units (decimals applied by the API)."},"token":{"description":"ERC-20 token contract address on Base (0x-prefixed)."}},"required":["amount"]}},{"resourceKey":"POST /api/tools/execute/unified/baseSendNFT","method":"POST","path":"/api/tools/execute/unified/baseSendNFT","url":"https://agenthustle.ai/api/tools/execute/unified/baseSendNFT","summary":"Send an NFT (ERC-721 or ERC-1155) from the user's wallet to another address on Base. Selects the correct safeTransferFrom variant based on the declared standard.","authRequired":true,"inputSchema":{"type":"object","properties":{"to":{"description":"Recipient EVM address on Base (0x-prefixed)."},"tokenAddress":{"description":"NFT contract address on Base (0x-prefixed)."},"tokenId":{"type":"string","description":"Token ID of the specific NFT to send (decimal string for very large IDs)."},"tokenStandard":{"type":"string","enum":["ERC721","ERC1155"],"description":"NFT standard: 'ERC721' for one-of-a-kind tokens, 'ERC1155' for semi-fungible / multi-edition tokens."},"quantity":{"type":"integer","exclusiveMinimum":0,"description":"Number of NFTs to send (ERC-1155 only). Ignored / defaults to 1 for ERC-721."}},"required":["tokenId","tokenStandard"]}},{"resourceKey":"POST /api/tools/execute/unified/baseGetBalances","method":"POST","path":"/api/tools/execute/unified/baseGetBalances","url":"https://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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 (entry swap runs immediately after acceptance) or LIMIT (execute when price triggers). MARKET is async: a success response means the order was PLACED, not that the entry FILLED. If the async entry fails (slippage/balance/RPC), no position is opened and TP/SL never arm. Tell the user it was placed and they must check the position to confirm the entry filled — do not say it executed/filled from the placement response."},"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."}},"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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/api/tools/execute/unified/placePolyMarketOrder","summary":"Place a buy or sell order on a Polymarket prediction-market outcome (YES/NO share). Supports limit and market orders; settles via the Polymarket CTF / CLOB on Polygon.","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://agenthustle.ai/api/tools/execute/unified/redeemPolyMarketPosition","summary":"Redeem a winning Polymarket position after a market has resolved on-chain, converting CTF outcome tokens back into USDC.e (Polygon). Only valid once the market's condition has been resolved by the oracle.","authRequired":true,"inputSchema":{"type":"object","properties":{"conditionId":{"type":"string","description":"Polymarket CTF condition ID (32-byte hex, 0x-prefixed) of the resolved market to redeem."}},"required":["conditionId"]}},{"resourceKey":"POST /api/tools/execute/unified/getUtxoRunes","method":"POST","path":"/api/tools/execute/unified/getUtxoRunes","url":"https://agenthustle.ai/api/tools/execute/unified/getUtxoRunes","summary":"List the unspent transaction outputs (UTXOs) on a Bitcoin address that hold Rune tokens, including the rune name, amount, and UTXO reference. Useful for inspecting a wallet's individual rune-bearing UTXOs before sending or splitting them.","authRequired":false,"inputSchema":{"type":"object","properties":{"bitcoinAddress":{"type":"string","description":"Bitcoin address to scan for rune-bearing UTXOs (taproot or legacy)."}},"required":["bitcoinAddress"]}},{"resourceKey":"POST /api/tools/execute/unified/getOwnedInscriptionIds","method":"POST","path":"/api/tools/execute/unified/getOwnedInscriptionIds","url":"https://agenthustle.ai/api/tools/execute/unified/getOwnedInscriptionIds","summary":"Return the list of Bitcoin Ordinals inscription IDs owned by a given Bitcoin address. Lightweight ID-only response — use getInscriptionsByAddress for full inscription metadata.","authRequired":false,"inputSchema":{"type":"object","properties":{"bitcoinAddress":{"type":"string","description":"Bitcoin address whose owned inscription IDs to fetch."}},"required":["bitcoinAddress"]}},{"resourceKey":"POST /api/tools/execute/unified/getInscriptionsByAddress","method":"POST","path":"/api/tools/execute/unified/getInscriptionsByAddress","url":"https://agenthustle.ai/api/tools/execute/unified/getInscriptionsByAddress","summary":"Return paginated, fully-detailed Bitcoin Ordinals inscriptions held by a given Bitcoin address (number, content type, traits, satpoint). Use this to display a wallet's NFT-style holdings.","authRequired":false,"inputSchema":{"type":"object","properties":{"bitcoinAddress":{"type":"string","description":"Bitcoin address whose inscriptions to fetch."},"page":{"type":"integer","exclusiveMinimum":0,"description":"1-indexed page number for paginating large inscription sets. Omit for the first page."}},"required":["bitcoinAddress"]}},{"resourceKey":"POST /api/tools/execute/unified/getRuneBalances","method":"POST","path":"/api/tools/execute/unified/getRuneBalances","url":"https://agenthustle.ai/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://agenthustle.ai/api/tools/execute/unified/getRareSats","summary":"List rare sats (uncommon, rare, epic, legendary, or named single-satoshi units) controlled by a given Bitcoin address. Useful for collectors evaluating sat rarity holdings.","authRequired":false,"inputSchema":{"type":"object","properties":{"bitcoinAddress":{"type":"string","description":"Bitcoin address whose rare-sat inventory to look up."}},"required":["bitcoinAddress"]}},{"resourceKey":"POST /api/tools/execute/unified/getInscriptionActivity","method":"POST","path":"/api/tools/execute/unified/getInscriptionActivity","url":"https://agenthustle.ai/api/tools/execute/unified/getInscriptionActivity","summary":"Return the inscription transfer history for a given Bitcoin address (incoming and outgoing inscription movements with timestamps and counterparties), paginated.","authRequired":false,"inputSchema":{"type":"object","properties":{"bitcoinAddress":{"type":"string","description":"Bitcoin address whose inscription activity to retrieve."},"page":{"type":"integer","exclusiveMinimum":0,"description":"1-indexed page number for activity pagination."}},"required":["bitcoinAddress"]}},{"resourceKey":"POST /api/tools/execute/unified/getRunesActivity","method":"POST","path":"/api/tools/execute/unified/getRunesActivity","url":"https://agenthustle.ai/api/tools/execute/unified/getRunesActivity","summary":"Return the Rune transfer history for a given Bitcoin address (etching, mints, sends, receives) with timestamps, amounts, and counterparties. Paginated.","authRequired":false,"inputSchema":{"type":"object","properties":{"bitcoinAddress":{"type":"string","description":"Bitcoin address whose rune activity to retrieve."},"page":{"type":"integer","exclusiveMinimum":0,"description":"1-indexed page number for activity pagination."}},"required":["bitcoinAddress"]}},{"resourceKey":"POST /api/tools/execute/unified/getBRC20Activity","method":"POST","path":"/api/tools/execute/unified/getBRC20Activity","url":"https://agenthustle.ai/api/tools/execute/unified/getBRC20Activity","summary":"Return the BRC-20 token transfer history for a given Bitcoin address (deploys, mints, transfers, sends, receives) with timestamps and amounts. Paginated.","authRequired":false,"inputSchema":{"type":"object","properties":{"bitcoinAddress":{"type":"string","description":"Bitcoin address whose BRC-20 activity to retrieve."},"page":{"type":"integer","exclusiveMinimum":0,"description":"1-indexed page number for activity pagination."}},"required":["bitcoinAddress"]}},{"resourceKey":"POST /api/tools/execute/unified/getInscriptionInfo","method":"POST","path":"/api/tools/execute/unified/getInscriptionInfo","url":"https://agenthustle.ai/api/tools/execute/unified/getInscriptionInfo","summary":"Fetch metadata for a single Bitcoin Ordinals inscription: content type, content URL, current owner, satpoint, inscription number, genesis transaction, and timestamp.","authRequired":false,"inputSchema":{"type":"object","properties":{"inscriptionId":{"type":"string","description":"Inscription ID in the form '<txid>i<index>' (e.g. 'b1f...i0')."}},"required":["inscriptionId"]}},{"resourceKey":"POST /api/tools/execute/unified/getInscriptionTraits","method":"POST","path":"/api/tools/execute/unified/getInscriptionTraits","url":"https://agenthustle.ai/api/tools/execute/unified/getInscriptionTraits","summary":"Fetch the trait/attribute set for a single Bitcoin inscription (NFT-style traits used for collection rarity ranking). Returns an empty array when no traits are indexed.","authRequired":false,"inputSchema":{"type":"object","properties":{"inscriptionId":{"type":"string","description":"Inscription ID in the form '<txid>i<index>' (e.g. 'b1f...i0')."}},"required":["inscriptionId"]}},{"resourceKey":"POST /api/tools/execute/unified/getLatestInscriptions","method":"POST","path":"/api/tools/execute/unified/getLatestInscriptions","url":"https://agenthustle.ai/api/tools/execute/unified/getLatestInscriptions","summary":"Browse the most recently created Bitcoin Ordinals inscriptions network-wide (newest first by default). Use this to discover newly-minted inscriptions, NOT to look up inscriptions on a specific address.","authRequired":false,"inputSchema":{"type":"object","properties":{"sort":{"type":"string","enum":["inscription_number_desc","inscription_number_asc"],"description":"Sort order: 'inscription_number_desc' for newest first, 'inscription_number_asc' for oldest first."},"after":{"type":"integer","minimum":0,"description":"Cursor: return inscriptions with inscription number greater than this value."},"before":{"type":"integer","minimum":0,"description":"Cursor: return inscriptions with inscription number less than this value."}},"required":["sort"]}},{"resourceKey":"POST /api/tools/execute/unified/inscriptionTransferActivity","method":"POST","path":"/api/tools/execute/unified/inscriptionTransferActivity","url":"https://agenthustle.ai/api/tools/execute/unified/inscriptionTransferActivity","summary":"Return the full ownership transfer history for a single Bitcoin inscription: every move with timestamp, from-address, to-address, and transaction hash.","authRequired":false,"inputSchema":{"type":"object","properties":{"inscriptionId":{"type":"string","description":"Inscription ID in the form '<txid>i<index>' (e.g. 'b1f...i0')."}},"required":["inscriptionId"]}},{"resourceKey":"POST /api/tools/execute/unified/getLatestRunes","method":"POST","path":"/api/tools/execute/unified/getLatestRunes","url":"https://agenthustle.ai/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://agenthustle.ai/api/tools/execute/unified/getRuneInfo","summary":"Fetch protocol-level metadata for a Rune token by name: ID, supply, divisibility, symbol, premine, etching transaction, and lock height.","authRequired":false,"inputSchema":{"type":"object","properties":{"name":{"type":"string","description":"Rune name (spacers like • are stripped automatically; case-insensitive). Example: 'DOG•GO•TO•THE•MOON' or 'DOGGOTOTHEMOON'."}},"required":["name"]}},{"resourceKey":"POST /api/tools/execute/unified/getRuneMarketInfo","method":"POST","path":"/api/tools/execute/unified/getRuneMarketInfo","url":"https://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/api/tools/execute/unified/getBitcoinCollections","summary":"Browse all indexed Bitcoin Ordinals inscription collections (paginated). Returns each collection's slug, name, supply, and identifiers — useful for discovery before drilling into floor price or assets via getCollectionInfo / getCollectionMarketInfo.","authRequired":false,"inputSchema":{"type":"object","properties":{"page":{"type":"integer","exclusiveMinimum":0,"description":"1-indexed page number for paginating the collections list. Omit for the first page."}}}},{"resourceKey":"POST /api/tools/execute/unified/getCollectionInfo","method":"POST","path":"/api/tools/execute/unified/getCollectionInfo","url":"https://agenthustle.ai/api/tools/execute/unified/getCollectionInfo","summary":"Fetch a Bitcoin Ordinals collection's metadata by its slug: name, description, supply, twitter, website, and image. Pair with getCollectionMarketInfo for floor/market data.","authRequired":false,"inputSchema":{"type":"object","properties":{"slug":{"type":"string","description":"Collection slug as indexed by Ordiscan (e.g. 'taproot-wizards', 'nodemonkes')."}},"required":["slug"]}},{"resourceKey":"POST /api/tools/execute/unified/getCollectionInscriptions","method":"POST","path":"/api/tools/execute/unified/getCollectionInscriptions","url":"https://agenthustle.ai/api/tools/execute/unified/getCollectionInscriptions","summary":"List the inscriptions that belong to a given Bitcoin Ordinals collection (the collection's items). Returns inscription IDs and basic metadata.","authRequired":false,"inputSchema":{"type":"object","properties":{"slug":{"type":"string","description":"Collection slug as indexed by Ordiscan (e.g. 'taproot-wizards')."}},"required":["slug"]}},{"resourceKey":"POST /api/tools/execute/unified/getCollectionMarketInfo","method":"POST","path":"/api/tools/execute/unified/getCollectionMarketInfo","url":"https://agenthustle.ai/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://agenthustle.ai/api/tools/execute/unified/listAlkanes","summary":"Browse Alkanes (Bitcoin smart-contract / token / NFT primitives anchored on Bitcoin), filtered by type. Use this for market discovery; pair with getAlkaneInfo for per-asset detail.","authRequired":false,"inputSchema":{"type":"object","properties":{"page":{"type":"integer","exclusiveMinimum":0,"description":"1-indexed page for paginating the alkane list."},"sort":{"type":"string","enum":["newest","oldest"],"description":"Sort order: 'newest' for most recent first, 'oldest' for chronological."},"type":{"type":"string","enum":["TOKEN","CONTRACT","NFT_COLLECTION","NFT_ITEM"],"description":"Alkane category to filter by: 'TOKEN' (fungible), 'CONTRACT' (deployed contract), 'NFT_COLLECTION' (collection), 'NFT_ITEM' (single NFT)."}},"required":["sort","type"]}},{"resourceKey":"POST /api/tools/execute/unified/getAlkaneInfo","method":"POST","path":"/api/tools/execute/unified/getAlkaneInfo","url":"https://agenthustle.ai/api/tools/execute/unified/getAlkaneInfo","summary":"Fetch metadata for a single Alkane by its protocol ID: name, symbol, supply, type, and contract details if applicable.","authRequired":false,"inputSchema":{"type":"object","properties":{"id":{"type":"string","description":"Alkane protocol ID in 'block:tx' format (e.g. '2:42'). Both components are required."}},"required":["id"]}},{"resourceKey":"POST /api/tools/execute/unified/getAlkaneAddressBalance","method":"POST","path":"/api/tools/execute/unified/getAlkaneAddressBalance","url":"https://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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":"integer","exclusiveMinimum":0,"description":"1-indexed page for paginating the BRC-20 token list."},"sort":{"type":"string","enum":["newest","oldest"],"description":"Sort order: 'newest' for most recent deploys first, 'oldest' for chronological."}},"required":["sort"]}},{"resourceKey":"POST /api/tools/execute/unified/getBRC20TokenInfo","method":"POST","path":"/api/tools/execute/unified/getBRC20TokenInfo","url":"https://agenthustle.ai/api/tools/execute/unified/getBRC20TokenInfo","summary":"Fetch protocol + market metadata for a single BRC-20 token by ticker: current USD price, total supply, max supply, mint progress, holder count, and market cap.","authRequired":false,"inputSchema":{"type":"object","properties":{"ticker":{"type":"string","description":"BRC-20 token ticker, typically 4 characters (e.g. 'ORDI', 'SATS'). Case-insensitive."}},"required":["ticker"]}},{"resourceKey":"POST /api/tools/execute/unified/rareSatsForUTXO","method":"POST","path":"/api/tools/execute/unified/rareSatsForUTXO","url":"https://agenthustle.ai/api/tools/execute/unified/rareSatsForUTXO","summary":"Inspect a single UTXO and report any rare sats it contains (uncommon, rare, epic, legendary, or named single-satoshi units). Returns an empty array if none.","authRequired":false,"inputSchema":{"type":"object","properties":{"utxoId":{"type":"string","description":"UTXO reference in 'txid:vout' form (e.g. 'a1b2...:0')."}},"required":["utxoId"]}},{"resourceKey":"POST /api/tools/execute/unified/getSatRangesForUTXO","method":"POST","path":"/api/tools/execute/unified/getSatRangesForUTXO","url":"https://agenthustle.ai/api/tools/execute/unified/getSatRangesForUTXO","summary":"Return the ordinal-numbered sat ranges contained in a single UTXO (the satoshi-by-satoshi composition). Useful for ordinal theory analysis and rare-sat lookups.","authRequired":false,"inputSchema":{"type":"object","properties":{"utxoId":{"type":"string","description":"UTXO reference in 'txid:vout' form (e.g. 'a1b2...:0')."}},"required":["utxoId"]}},{"resourceKey":"POST /api/tools/execute/unified/getStamp","method":"POST","path":"/api/tools/execute/unified/getStamp","url":"https://agenthustle.ai/api/tools/execute/unified/getStamp","summary":"Fetch metadata for a single Bitcoin Stamp (Stampchain.io) by ID: image data, creator address, block height, asset name, and SRC20 association if any. Bitcoin Stamps embed permanent on-chain image data via the Counterparty/STAMP protocol.","authRequired":false,"inputSchema":{"type":"object","properties":{"stampId":{"type":"string","description":"Numeric stamp ID assigned at issuance (e.g. '12345'). Stamp IDs are assigned sequentially by Stampchain."}},"required":["stampId"]}},{"resourceKey":"POST /api/tools/execute/unified/searchStamps","method":"POST","path":"/api/tools/execute/unified/searchStamps","url":"https://agenthustle.ai/api/tools/execute/unified/searchStamps","summary":"Search the Bitcoin Stamps index (Stampchain.io) with multiple filters: free-text query, creator address, collection, Counterparty asset ID, BTC vs cursed filtering, and pagination. Use this for stamp discovery and curated collections.","authRequired":false,"inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Free-text query against stamp asset names, descriptions, and metadata."},"creator":{"type":"string","description":"Filter to stamps issued by a specific Bitcoin/Counterparty creator address."},"collection_id":{"type":"string","description":"Filter to stamps belonging to a Stampchain collection ID."},"cpid":{"type":"string","description":"Counterparty asset ID (CPID), e.g. 'A12345...', identifying a specific stamp asset."},"is_btc_stamp":{"type":"boolean","description":"If true, only return canonical BTC Stamps; if false, exclude them."},"is_cursed":{"type":"boolean","description":"If true, only return cursed stamps (out-of-spec issuances); if false, exclude them."},"sort_order":{"type":"string","enum":["ASC","DESC"],"description":"Result ordering by stamp number: 'ASC' (oldest first) or 'DESC' (newest first)."},"page":{"type":"integer","exclusiveMinimum":0,"description":"1-indexed page number for paginating results."},"page_size":{"type":"integer","exclusiveMinimum":0,"maximum":100,"description":"Items per page (1-100). Defaults to API default."},"limit":{"type":"integer","exclusiveMinimum":0,"maximum":100,"description":"Hard cap on total results returned. Use as an alternative to page_size for one-shot calls."}}}},{"resourceKey":"POST /api/tools/execute/unified/getRecentStamps","method":"POST","path":"/api/tools/execute/unified/getRecentStamps","url":"https://agenthustle.ai/api/tools/execute/unified/getRecentStamps","summary":"Browse the most recently issued Bitcoin Stamps (newest first) for discovery. Returns asset name, image preview, creator, and timestamp. Use this for activity feeds and 'what's new' surfaces.","authRequired":false,"inputSchema":{"type":"object","properties":{"limit":{"type":"integer","exclusiveMinimum":0,"maximum":100,"default":10,"description":"Number of recent stamps to return (1-100). Defaults to 10."}}}},{"resourceKey":"POST /api/tools/execute/unified/getSRC20Token","method":"POST","path":"/api/tools/execute/unified/getSRC20Token","url":"https://agenthustle.ai/api/tools/execute/unified/getSRC20Token","summary":"Fetch metadata for a single SRC-20 token (the Bitcoin Stamps fungible-token standard) by ticker: deploy info, max supply, mint progress, holder count, and creator. SRC-20 is the Stamps protocol equivalent of BRC-20.","authRequired":false,"inputSchema":{"type":"object","properties":{"tick":{"type":"string","description":"SRC-20 token ticker, typically 4 characters (e.g. 'KEVIN', 'STAMP'). Case-insensitive."}},"required":["tick"]}},{"resourceKey":"POST /api/tools/execute/unified/searchSRC20Tokens","method":"POST","path":"/api/tools/execute/unified/searchSRC20Tokens","url":"https://agenthustle.ai/api/tools/execute/unified/searchSRC20Tokens","summary":"Search SRC-20 tokens (Bitcoin Stamps fungible standard) with filters: free-text, deployer address, sort by deploy time / holders / mint progress. Use for SRC-20 market discovery.","authRequired":false,"inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Free-text query against SRC-20 ticker, creator notes, and metadata."},"deployer":{"type":"string","minLength":26,"maxLength":62,"description":"Filter to SRC-20 tokens deployed by a specific Bitcoin address (26-62 chars)."},"sort_by":{"type":"string","enum":["deploy_timestamp","holders","percent_minted"],"description":"Sort field: 'deploy_timestamp' (newest deploys), 'holders' (most-held), 'percent_minted' (closest to fully minted)."},"sort_order":{"type":"string","enum":["ASC","DESC"],"description":"Result ordering: 'ASC' (ascending) or 'DESC' (descending)."},"page":{"type":"integer","exclusiveMinimum":0,"maximum":10000,"default":5,"description":"1-indexed page number for paginating results (max 10000). Defaults to 5."},"page_size":{"type":"integer","exclusiveMinimum":0,"minimum":1,"maximum":100,"description":"Items per page (1-100). Defaults to API default."}}}},{"resourceKey":"POST /api/tools/execute/unified/getStampsByAddress","method":"POST","path":"/api/tools/execute/unified/getStampsByAddress","url":"https://agenthustle.ai/api/tools/execute/unified/getStampsByAddress","summary":"List the Bitcoin Stamps and SRC-20 token balances held by a given Bitcoin address. Returns each held stamp's ID + asset name and SRC-20 holdings with amounts.","authRequired":false,"inputSchema":{"type":"object","properties":{"bitcoinAddress":{"type":"string","description":"Bitcoin address (Counterparty-compatible) whose stamp holdings to retrieve."}},"required":["bitcoinAddress"]}},{"resourceKey":"POST /api/tools/execute/unified/getTopRunesByMarketCap","method":"POST","path":"/api/tools/execute/unified/getTopRunesByMarketCap","url":"https://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/api/tools/execute/unified/getBTCBalances","summary":"Return native BTC balances for the user's wallet, broken out by both the taproot (P2TR) and nested segwit (P2WPKH) addresses, in BTC and sats. Does NOT include runes, ordinals/inscriptions, or Counterparty assets — use the dedicated getRuneBalances / getInscriptionsByAddress / getXCPBalances tools for those.","authRequired":true,"inputSchema":{"type":"object","properties":{}}},{"resourceKey":"POST /api/tools/execute/unified/transferBTC","method":"POST","path":"/api/tools/execute/unified/transferBTC","url":"https://agenthustle.ai/api/tools/execute/unified/transferBTC","summary":"Send native BTC from the user's wallet to another Bitcoin address. Builds, signs, and broadcasts the transaction; the source address is the wallet's nested-segwit (P2WPKH) address. Amount is denominated in BTC (not satoshis).","authRequired":true,"inputSchema":{"type":"object","properties":{"toAddress":{"type":"string","description":"Recipient Bitcoin address (legacy, segwit, or taproot supported)."},"amount":{"type":"number","exclusiveMinimum":0,"description":"Amount of BTC to send, in whole BTC units (e.g. 0.5 = 0.5 BTC = 50 000 000 sats)."}},"required":["toAddress","amount"]}},{"resourceKey":"POST /api/tools/execute/unified/sendRunes","method":"POST","path":"/api/tools/execute/unified/sendRunes","url":"https://agenthustle.ai/api/tools/execute/unified/sendRunes","summary":"Send Rune tokens from the user's Bitcoin wallet to another taproot address. The rune is identified by its rune ID; the amount is in whole-token units (the API converts using the rune's divisibility).","authRequired":true,"inputSchema":{"type":"object","properties":{"runeId":{"type":"string","description":"Rune protocol ID in 'block:tx' format (e.g. '840000:1'). Look up via getRuneInfo if you only have the name."},"toAddress":{"type":"string","description":"Recipient Bitcoin taproot address (P2TR). Runes must land on a taproot address."},"amount":{"type":"number","exclusiveMinimum":0,"description":"Amount of runes to send in whole-token units (e.g. 1 = 1 rune). Divisibility is applied by the API."}},"required":["runeId","toAddress","amount"]}},{"resourceKey":"POST /api/tools/execute/unified/sendInscription","method":"POST","path":"/api/tools/execute/unified/sendInscription","url":"https://agenthustle.ai/api/tools/execute/unified/sendInscription","summary":"Send a Bitcoin Ordinals inscription from the user's wallet to another taproot address. The inscription is identified by its full inscription ID; sending preserves the underlying satpoint.","authRequired":true,"inputSchema":{"type":"object","properties":{"inscriptionId":{"type":"string","description":"Inscription ID in '<txid>i<index>' form (e.g. 'b1f...i0'). Use getOwnedInscriptionIds to list candidates."},"toAddress":{"type":"string","description":"Recipient Bitcoin taproot address (P2TR). Inscriptions should land on a taproot address."}},"required":["inscriptionId","toAddress"]}},{"resourceKey":"POST /api/tools/execute/unified/getXCPBalances","method":"POST","path":"/api/tools/execute/unified/getXCPBalances","url":"https://agenthustle.ai/api/tools/execute/unified/getXCPBalances","summary":"Return the user's legacy Bitcoin (P2PKH) wallet holdings on the Counterparty layer: XCP balance, named Counterparty assets, Bitcoin Stamps, and rare pepes — each with asset name, supply, and divisibility metadata.","authRequired":true,"inputSchema":{"type":"object","properties":{}}},{"resourceKey":"POST /api/tools/execute/unified/sendXCP","method":"POST","path":"/api/tools/execute/unified/sendXCP","url":"https://agenthustle.ai/api/tools/execute/unified/sendXCP","summary":"Send a Counterparty (XCP) asset from the user's Bitcoin legacy wallet to another XCP address. Supports XCP itself, named Counterparty assets, Bitcoin Stamps, and rare pepes — divisibility is auto-detected from the asset's metadata.","authRequired":true,"inputSchema":{"type":"object","properties":{"toAddress":{"type":"string","description":"Recipient Counterparty-compatible Bitcoin address (legacy P2PKH)."},"amount":{"type":"number","exclusiveMinimum":0,"description":"Amount of the asset to send in whole-token units (divisibility is applied by the API)."},"asset":{"type":"string","description":"Counterparty asset name (e.g. 'XCP', 'PEPECASH', or a numeric/'A...' asset ID). Use getXCPBalances to discover holdings."}},"required":["toAddress","amount","asset"]}},{"resourceKey":"POST /api/tools/execute/unified/openseaListNFT","method":"POST","path":"/api/tools/execute/unified/openseaListNFT","url":"https://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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://agenthustle.ai/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":[]}