{"protocolVersion":"2025-06-18","capabilities":{"tools":{"listChanged":false}},"agentGuidance":{"description":"General guidance for external AI agents using this MCP server. Read before selecting a project endpoint, requesting tool schemas, or calling protocol tools.","skillUrl":"https://erc8004.heyanon.ai/mcp/skill.md"},"serverInfo":{"name":"heyanon-erc8004-hyperliquid","version":"1.0.0"},"tools":[{"name":"bridgeToHyperliquid","description":"Bridges USDC tokens from the Arbitrum network to the Hyperliquid platform. The funds are always credited directly to the perpetual account. If the user wants to bridge, transfer or deposit funds exactly to \"Hyperliquid\" then always use this function.","inputSchema":{"type":"object","properties":{"userAddress":{"type":"string","description":"The user's EVM wallet address."},"chainName":{"type":"string","enum":["arbitrum"],"description":"Chain name where the bridge transaction is executed."},"amount":{"type":"string","description":"Amount of USDC tokens to bridge in human-readable decimal format (e.g. '1.5')"}},"required":["userAddress","chainName","amount"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"transactions":{"type":"array","items":{"type":"object","properties":{"chainId":{"type":"number","description":"EVM chain ID"},"transaction":{"type":"object","properties":{"target":{"type":"string","description":"Target contract address"},"data":{"type":"string","description":"ABI-encoded calldata"},"value":{"description":"Native token value in wei","type":"string"}},"required":["target","data"],"additionalProperties":false,"description":"EVM transaction parameters"}},"required":["chainId","transaction"],"additionalProperties":false},"description":"EVM transactions to sign and broadcast"}},"required":["project","operation","transactions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"withdrawFromHyperliquid","description":"Withdraws USDC tokens from the user's Hyperliquid account to the Arbitrum network.","inputSchema":{"type":"object","properties":{"userAddress":{"type":"string","description":"The user's EVM wallet address."},"chainName":{"type":"string","enum":["arbitrum"],"description":"Chain name where where USDC will be withdrawn."},"amount":{"type":"string","description":"Amount of USDC tokens to withdraw in human-readable decimal format (e.g. '1.5')"}},"required":["userAddress","chainName","amount"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"apiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"Request body as JSON object"},"toSign":{"description":"EIP-712 payload to sign (required for EIP-712 flows, omitted for unsigned API requests)","type":"object","properties":{"domain":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"types":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"type":{"type":"string"}},"required":["name","type"],"additionalProperties":false}}},"message":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"primaryType":{"type":"string"}},"required":["domain","types","message","primaryType"],"additionalProperties":false}},"required":["url","method","headers","body"],"additionalProperties":false},"description":"Hyperliquid API actions to sign and send"}},"required":["project","operation","apiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"openPerp","description":"Opens a new Hyperliquid perpetual position using available account collateral as margin (size/leverage), including HIP-3 markets. If limitPrice, takeProfitPrice, or stopLossPrice is specified, the corresponding orders are created. If vault is provided, the position is opened under that vault.","inputSchema":{"type":"object","properties":{"userAddress":{"type":"string","description":"The user's EVM wallet address."},"asset":{"type":"string","description":"Name of the underlying asset for the perp position."},"size":{"type":"string","description":"Size is the FINAL trade size after leverage (total notional to transact), not margin. Do NOT scale, prorate, or recalc it by leverage or price by yourself.\nUser always provides the final size, and you cannot change it in any way. You must pass it as-is using the correct \"sizeUnit\" value.\nsizeUnit:\n• ASSET — the size specified directly in the underlying asset (e.g., 1 BTC). If the user gives a ASSET size, use it directly as the trade size in ASSET.\n• USD — the size specified in USD (e.g., 1000 USD). If the user gives a USD size, use it directly as the trade size in USD.\nDo NOT convert between ASSET and USD."},"sizeUnit":{"type":"string","enum":["ASSET","USD"],"description":"Specifies whether the size is denominated in asset units or in USD."},"leverage":{"type":"number","description":"Leverage multiplier for the position."},"short":{"type":"boolean","description":"If true, opens a short position; if false, opens a long position."},"limitPrice":{"description":"The price at which the position will be opened (the order will be created). If not specified, the position will be opened at the market price.","type":"string"},"takeProfitPrice":{"description":"The price at which the take-profit order will be placed if the user specified this in addition to opening the position.","type":"string"},"stopLossPrice":{"description":"The price at which the stop-loss order will be placed if the user specified this in addition to opening the position.","type":"string"},"vault":{"description":"Vault name or address.","type":"string"}},"required":["userAddress","asset","size","sizeUnit","leverage","short"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"apiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"Request body as JSON object"},"toSign":{"description":"EIP-712 payload to sign (required for EIP-712 flows, omitted for unsigned API requests)","type":"object","properties":{"domain":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"types":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"type":{"type":"string"}},"required":["name","type"],"additionalProperties":false}}},"message":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"primaryType":{"type":"string"}},"required":["domain","types","message","primaryType"],"additionalProperties":false}},"required":["url","method","headers","body"],"additionalProperties":false},"description":"Hyperliquid API actions to sign and send"}},"required":["project","operation","apiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"modifyPositionSize","description":"Increases or decreases an existing Hyperliquid perpetual position. Use a positive size to increase and a negative size to decrease. Supports USD, asset-token, and percentage units, including HIP-3 markets.","inputSchema":{"type":"object","properties":{"userAddress":{"type":"string","description":"The user's EVM wallet address."},"asset":{"type":"string","description":"Name of the underlying asset of the perp position."},"sizeUnit":{"type":"string","enum":["USD","ASSET","PERCENT"],"description":"Unit of the signed size value. PERCENT uses a decimal multiplier, e.g. 0.3 for 30%."},"size":{"type":"string","description":"Signed modification size. Positive increases the position and negative decreases it."},"limitPrice":{"description":"The price at which the existing position will be modified (an order will be created). If not specified, the position will be modified at the market price.","type":"string"},"vault":{"description":"Vault name or address.","type":"string"}},"required":["userAddress","asset","sizeUnit","size"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"apiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"Request body as JSON object"},"toSign":{"description":"EIP-712 payload to sign (required for EIP-712 flows, omitted for unsigned API requests)","type":"object","properties":{"domain":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"types":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"type":{"type":"string"}},"required":["name","type"],"additionalProperties":false}}},"message":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"primaryType":{"type":"string"}},"required":["domain","types","message","primaryType"],"additionalProperties":false}},"required":["url","method","headers","body"],"additionalProperties":false},"description":"Hyperliquid API actions to sign and send"}},"required":["project","operation","apiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"closePerp","description":"Closes an existing perp position on Hyperliquid. If vault is provided, the action executes as that vault.","inputSchema":{"type":"object","properties":{"userAddress":{"type":"string","description":"The user's EVM wallet address."},"asset":{"type":"string","description":"Name of the underlying asset whose perp position should be closed."},"limitPrice":{"description":"The price at which the existing position will be closed (an order will be created). If not specified, the position will be closed at the market price.","type":"string"},"vault":{"description":"Vault name or address.","type":"string"}},"required":["userAddress","asset"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"apiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"Request body as JSON object"},"toSign":{"description":"EIP-712 payload to sign (required for EIP-712 flows, omitted for unsigned API requests)","type":"object","properties":{"domain":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"types":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"type":{"type":"string"}},"required":["name","type"],"additionalProperties":false}}},"message":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"primaryType":{"type":"string"}},"required":["domain","types","message","primaryType"],"additionalProperties":false}},"required":["url","method","headers","body"],"additionalProperties":false},"description":"Hyperliquid API actions to sign and send"}},"required":["project","operation","apiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"cancelOrder","description":"Cancels the existing open order on Hyperliquid based on its ID (oid).","inputSchema":{"type":"object","properties":{"userAddress":{"type":"string","description":"The user's EVM wallet address."},"id":{"type":"number","description":"Order ID (oid) of the order to be closed."},"vault":{"description":"Vault name or address.","type":"string"}},"required":["userAddress","id"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"apiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"Request body as JSON object"},"toSign":{"description":"EIP-712 payload to sign (required for EIP-712 flows, omitted for unsigned API requests)","type":"object","properties":{"domain":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"types":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"type":{"type":"string"}},"required":["name","type"],"additionalProperties":false}}},"message":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"primaryType":{"type":"string"}},"required":["domain","types","message","primaryType"],"additionalProperties":false}},"required":["url","method","headers","body"],"additionalProperties":false},"description":"Hyperliquid API actions to sign and send"}},"required":["project","operation","apiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"addPositionTrigger","description":"Adds a take-profit or stop-loss trigger to an existing Hyperliquid position, including HIP-3 positions.","inputSchema":{"type":"object","properties":{"userAddress":{"type":"string","description":"The user's EVM wallet address."},"asset":{"type":"string","description":"Name of the underlying asset of the perp position."},"type":{"type":"string","enum":["tp","sl"],"description":"Trigger type: tp for take profit or sl for stop loss."},"price":{"type":"string","description":"Trigger price."},"vault":{"description":"Vault name or address.","type":"string"}},"required":["userAddress","asset","type","price"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"apiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"Request body as JSON object"},"toSign":{"description":"EIP-712 payload to sign (required for EIP-712 flows, omitted for unsigned API requests)","type":"object","properties":{"domain":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"types":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"type":{"type":"string"}},"required":["name","type"],"additionalProperties":false}}},"message":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"primaryType":{"type":"string"}},"required":["domain","types","message","primaryType"],"additionalProperties":false}},"required":["url","method","headers","body"],"additionalProperties":false},"description":"Hyperliquid API actions to sign and send"}},"required":["project","operation","apiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"createTriggerOrder","description":"Creates a trigger order that will open a new perp position on Hyperliquid when the trigger price is reached. This is different from opening a position immediately - the order waits for the trigger price before executing. If vault is provided, the order is created under that vault.","inputSchema":{"type":"object","properties":{"userAddress":{"type":"string","description":"The user's EVM wallet address."},"asset":{"type":"string","description":"Name of the underlying asset for the perp position."},"size":{"type":"string","description":"Size is the FINAL trade size after leverage (total notional to transact), not margin. Do NOT scale, prorate, or recalc it by leverage or price by yourself.\nUser always provides the final size, and you cannot change it in any way. You must pass it as-is using the correct \"sizeUnit\" value.\nsizeUnit:\n• ASSET — the size specified directly in the underlying asset (e.g., 1 BTC). If the user gives a ASSET size, use it directly as the trade size in ASSET.\n• USD — the size specified in USD (e.g., 1000 USD). If the user gives a USD size, use it directly as the trade size in USD.\nDo NOT convert between ASSET and USD."},"sizeUnit":{"type":"string","enum":["ASSET","USD"],"description":"Specifies whether the size is denominated in asset units or in USD."},"leverage":{"type":"number","description":"Leverage multiplier for the position."},"short":{"type":"boolean","description":"If true, creates a short position; if false, creates a long position."},"triggerPrice":{"type":"string","description":"The price at which the order will be triggered and executed. When market price reaches this level, the order activates."},"limitPrice":{"description":"The execution price for the order after it is triggered. If not specified, executes at market price when triggered.","type":"string"},"vault":{"description":"Vault name or address.","type":"string"}},"required":["userAddress","asset","size","sizeUnit","leverage","short","triggerPrice"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"apiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"Request body as JSON object"},"toSign":{"description":"EIP-712 payload to sign (required for EIP-712 flows, omitted for unsigned API requests)","type":"object","properties":{"domain":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"types":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"type":{"type":"string"}},"required":["name","type"],"additionalProperties":false}}},"message":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"primaryType":{"type":"string"}},"required":["domain","types","message","primaryType"],"additionalProperties":false}},"required":["url","method","headers","body"],"additionalProperties":false},"description":"Hyperliquid API actions to sign and send"}},"required":["project","operation","apiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"getPerpPositions","description":"Retrieves perpetual positions on Hyperliquid. If vaults are provided, retrieves positions for those vaults.","inputSchema":{"type":"object","properties":{"userAddress":{"type":"string","description":"The user's EVM wallet address."},"vaults":{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"null"}]},"description":"Array of vault names or addresses. If not specified by the user then pass null in the array."}},"required":["userAddress","vaults"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"data":{"type":"array","items":{"type":"object","properties":{"target":{"type":"string","description":"Account or vault address"},"accountValue":{"type":"string","description":"Total account value in USD (2 decimals)"},"withdrawable":{"type":"string","description":"Withdrawable amount in USD (2 decimals)"},"positions":{"type":"array","items":{"type":"object","properties":{"coin":{"type":"string","description":"Asset symbol"},"direction":{"type":"string","enum":["LONG","SHORT"],"description":"Position direction"},"size":{"type":"number","description":"Position size in asset units"},"entryPrice":{"type":"string","description":"Entry price (2 decimals)"},"positionValue":{"type":"string","description":"Position value in USD (2 decimals)"},"leverage":{"anyOf":[{"type":"string"},{"type":"number"}],"description":"Leverage multiplier"},"unrealizedPnl":{"type":"string","description":"Unrealized PnL in USD (2 decimals)"},"liquidationPrice":{"type":"string","description":"Liquidation price (2 decimals)"}},"required":["coin","direction","size","entryPrice","positionValue","leverage","unrealizedPnl","liquidationPrice"],"additionalProperties":false},"description":"Open positions"},"error":{"description":"Error if vault lookup failed","type":"string"}},"required":["target","accountValue","withdrawable","positions"],"additionalProperties":false}}},"required":["project","operation","data"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"getOpenOrders","description":"Retrieves the list of currently open perpetual orders on Hyperliquid. This function is ONLY used for retreiving data, and it does not modify any of the positions. This function should be called ONLY if it has been explicitly stated that list of pending orders is needed. DON't call this function if some change is explicitly asked for. If vault is provided, retrieves positions for that vault. NEVER CALL THIS FUNCTION IF SOMETHING ELSE IS NEEDED!","inputSchema":{"type":"object","properties":{"userAddress":{"type":"string","description":"The user's EVM wallet address."},"vaults":{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"null"}]},"description":"Array of vault names or addresses. If not specified by the user then pass null in the array."}},"required":["userAddress","vaults"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"data":{"type":"array","items":{"type":"object","properties":{"target":{"type":"string","description":"Account or vault address"},"orders":{"type":"array","items":{"type":"object","properties":{"oid":{"type":"number","description":"Order ID"},"coin":{"type":"string","description":"Asset symbol"},"sz":{"anyOf":[{"type":"string"},{"type":"number"}],"description":"Order size"},"side":{"type":"string","description":"Order side (LONG/SHORT)"},"orderType":{"type":"string","description":"Order type (Limit, Stop Market, etc.)"},"timestamp":{"anyOf":[{"type":"string"},{"type":"number"}],"description":"Order timestamp"},"limitPx":{"description":"Limit price","anyOf":[{"type":"string"},{"type":"number"}]},"triggerCondition":{"description":"Trigger condition","type":"string"}},"required":["oid","coin","sz","side","orderType","timestamp"],"additionalProperties":false},"description":"Open orders"},"error":{"description":"Error if vault lookup failed","type":"string"}},"required":["target","orders"],"additionalProperties":false}}},"required":["project","operation","data"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"getUnifiedBalance","description":"Retrieves the user's Hyperliquid balances. Returns one shared balance for unified accounts and separate perpetual and spot balances for standard accounts.","inputSchema":{"type":"object","properties":{"userAddress":{"type":"string","description":"The user's EVM wallet address."}},"required":["userAddress"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"data":{"type":"object","properties":{"accountMode":{"type":"string","description":"Hyperliquid account abstraction mode"},"isUnified":{"type":"boolean","description":"Whether spot and perpetual collateral are shared"},"sharedBalanceUsd":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Shared account value in USD, or null for standard accounts"},"availableUsd":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Available shared collateral in USD, or null for standard accounts"},"perpBalances":{"type":"array","items":{"type":"object","properties":{"target":{"type":"string","description":"Account or vault address"},"withdrawable":{"type":"number","description":"Withdrawable balance in USD"},"error":{"description":"Error if vault lookup failed","type":"string"}},"required":["target","withdrawable"],"additionalProperties":false},"description":"Separate perpetual balances for standard accounts"},"spotBalances":{"type":"array","items":{"type":"object","properties":{"coin":{"type":"string","description":"Token symbol"},"total":{"type":"string","description":"Total balance"},"hold":{"type":"string","description":"Amount on hold in open orders"}},"required":["coin","total","hold"],"additionalProperties":false},"description":"Spot balances, excluding unified USDC collateral when balances are shared"}},"required":["accountMode","isUnified","sharedBalanceUsd","availableUsd","perpBalances","spotBalances"],"additionalProperties":false}},"required":["project","operation","data"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"modifyMargin","description":"Adds or removes isolated margin from a Hyperliquid perpetual position, including HIP-3 positions.","inputSchema":{"type":"object","properties":{"userAddress":{"type":"string","description":"The user's EVM wallet address."},"asset":{"type":"string","description":"Asset identifier of the position whose margin should be modified."},"action":{"type":"string","enum":["add","remove"],"description":"Whether to add or remove margin."},"amount":{"type":"string","description":"Positive USD amount in human-readable decimal format (e.g. '1.5')"},"vault":{"description":"Vault name or address.","type":"string"}},"required":["userAddress","asset","action","amount"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"apiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"Request body as JSON object"},"toSign":{"description":"EIP-712 payload to sign (required for EIP-712 flows, omitted for unsigned API requests)","type":"object","properties":{"domain":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"types":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"type":{"type":"string"}},"required":["name","type"],"additionalProperties":false}}},"message":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"primaryType":{"type":"string"}},"required":["domain","types","message","primaryType"],"additionalProperties":false}},"required":["url","method","headers","body"],"additionalProperties":false},"description":"Hyperliquid API actions to sign and send"}},"required":["project","operation","apiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"createVault","description":"Creates a new vault on Hyperliquid. ALWAYS NOTIFY USER THAT 100$ IN ADDITION TO initialUsd WILL BE TAKEN FOR VAULT CREATION FEE AND IT CANNOT BE WITHDRAW.","inputSchema":{"type":"object","properties":{"userAddress":{"type":"string","description":"The user's EVM wallet address."},"description":{"type":"string","description":"A description for the vault."},"initialUsd":{"type":"string","description":"Initial amount of USD in the vault in human-readable decimal format (e.g. '1.5'). Minimum 100$"},"name":{"type":"string","description":"Name of the vault."}},"required":["userAddress","description","initialUsd","name"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"apiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"Request body as JSON object"},"toSign":{"description":"EIP-712 payload to sign (required for EIP-712 flows, omitted for unsigned API requests)","type":"object","properties":{"domain":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"types":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"type":{"type":"string"}},"required":["name","type"],"additionalProperties":false}}},"message":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"primaryType":{"type":"string"}},"required":["domain","types","message","primaryType"],"additionalProperties":false}},"required":["url","method","headers","body"],"additionalProperties":false},"description":"Hyperliquid API actions to sign and send"}},"required":["project","operation","apiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"withdrawFromVault","description":"Withdraws funds from the vault.","inputSchema":{"type":"object","properties":{"userAddress":{"type":"string","description":"The user's EVM wallet address."},"vault":{"type":"string","description":"Vault's name or address from which to withdraw funds."},"usd":{"type":"string","description":"USD amount that should be withdrawn in human-readable decimal format (e.g. '1.5')"}},"required":["userAddress","vault","usd"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"apiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"Request body as JSON object"},"toSign":{"description":"EIP-712 payload to sign (required for EIP-712 flows, omitted for unsigned API requests)","type":"object","properties":{"domain":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"types":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"type":{"type":"string"}},"required":["name","type"],"additionalProperties":false}}},"message":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"primaryType":{"type":"string"}},"required":["domain","types","message","primaryType"],"additionalProperties":false}},"required":["url","method","headers","body"],"additionalProperties":false},"description":"Hyperliquid API actions to sign and send"}},"required":["project","operation","apiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"closeVault","description":"Closes an existing vault on Hyperliquid.","inputSchema":{"type":"object","properties":{"userAddress":{"type":"string","description":"The user's EVM wallet address."},"vault":{"type":"string","description":"Vault name or address to be closed."}},"required":["userAddress","vault"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"apiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"Request body as JSON object"},"toSign":{"description":"EIP-712 payload to sign (required for EIP-712 flows, omitted for unsigned API requests)","type":"object","properties":{"domain":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"types":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"type":{"type":"string"}},"required":["name","type"],"additionalProperties":false}}},"message":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"primaryType":{"type":"string"}},"required":["domain","types","message","primaryType"],"additionalProperties":false}},"required":["url","method","headers","body"],"additionalProperties":false},"description":"Hyperliquid API actions to sign and send"}},"required":["project","operation","apiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"distributeVault","description":"Distributes (or shares) a portion of the vault's perpetual USD balance to its depositors proportionally to their share.","inputSchema":{"type":"object","properties":{"userAddress":{"type":"string","description":"The user's EVM wallet address."},"vault":{"type":"string","description":"Vault name or address from which the funds are distributed."},"usd":{"type":"string","description":"USD amount to be distributed among the vault depositors in human-readable decimal format (e.g. '1.5')"}},"required":["userAddress","vault","usd"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"apiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"Request body as JSON object"},"toSign":{"description":"EIP-712 payload to sign (required for EIP-712 flows, omitted for unsigned API requests)","type":"object","properties":{"domain":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"types":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"type":{"type":"string"}},"required":["name","type"],"additionalProperties":false}}},"message":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"primaryType":{"type":"string"}},"required":["domain","types","message","primaryType"],"additionalProperties":false}},"required":["url","method","headers","body"],"additionalProperties":false},"description":"Hyperliquid API actions to sign and send"}},"required":["project","operation","apiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"depositIntoVault","description":"Deposits funds from the user's perpetual balance into the specified vault.","inputSchema":{"type":"object","properties":{"userAddress":{"type":"string","description":"The user's EVM wallet address."},"vault":{"type":"string","description":"Vault name or address into which funds will be deposited."},"usd":{"type":"string","description":"Amount to deposit (in USD) in human-readable decimal format (e.g. '1.5')"}},"required":["userAddress","vault","usd"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"apiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"Request body as JSON object"},"toSign":{"description":"EIP-712 payload to sign (required for EIP-712 flows, omitted for unsigned API requests)","type":"object","properties":{"domain":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"types":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"type":{"type":"string"}},"required":["name","type"],"additionalProperties":false}}},"message":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"primaryType":{"type":"string"}},"required":["domain","types","message","primaryType"],"additionalProperties":false}},"required":["url","method","headers","body"],"additionalProperties":false},"description":"Hyperliquid API actions to sign and send"}},"required":["project","operation","apiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"getUsersVaults","description":"Retrieves the list of all active vaults that user manages.","inputSchema":{"type":"object","properties":{"userAddress":{"type":"string","description":"The user's EVM wallet address."}},"required":["userAddress"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"data":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Vault name"},"vaultAddress":{"type":"string","description":"Vault address"},"tvl":{"type":"string","description":"Total value locked"},"createTimeMillis":{"type":"number","description":"Creation timestamp in milliseconds"}},"required":["name","vaultAddress","tvl","createTimeMillis"],"additionalProperties":false}}},"required":["project","operation","data"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"modifyVaultSettings","description":"Updates one or both Hyperliquid vault settings in a single action.","inputSchema":{"type":"object","properties":{"userAddress":{"type":"string","description":"The user's EVM wallet address."},"vault":{"type":"string","description":"Vault name or address."},"allowDeposits":{"description":"Whether users may deposit into the vault. Pass null or omit it to leave unchanged.","anyOf":[{"type":"boolean"},{"type":"null"}]},"alwaysCloseOnWithdraw":{"description":"Whether positions automatically close on withdrawal. Pass null or omit it to leave unchanged.","anyOf":[{"type":"boolean"},{"type":"null"}]}},"required":["userAddress","vault"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"apiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"Request body as JSON object"},"toSign":{"description":"EIP-712 payload to sign (required for EIP-712 flows, omitted for unsigned API requests)","type":"object","properties":{"domain":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"types":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"type":{"type":"string"}},"required":["name","type"],"additionalProperties":false}}},"message":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"primaryType":{"type":"string"}},"required":["domain","types","message","primaryType"],"additionalProperties":false}},"required":["url","method","headers","body"],"additionalProperties":false},"description":"Hyperliquid API actions to sign and send"}},"required":["project","operation","apiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"getFundingRates","description":"Fetches current funding rates for Hyperliquid assets, including HIP-3. Pass an empty assets array to retrieve every supported rate.","inputSchema":{"type":"object","properties":{"assets":{"type":"array","items":{"type":"string"},"description":"Assets to query (e.g. [\"BTC\", \"ETH\", \"CL\"]). Pass [] to retrieve all rates."}},"required":["assets"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"data":{"type":"array","items":{"type":"object","properties":{"asset":{"type":"string","description":"Asset symbol"},"rate":{"type":"number","description":"Raw funding rate"},"ratePercent":{"type":"number","description":"Funding rate as percentage"},"error":{"description":"Error if asset lookup failed","type":"string"}},"required":["asset","rate","ratePercent"],"additionalProperties":false}}},"required":["project","operation","data"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"getHistoricalFundingRates","description":"Fetches historical funding rates and their averages for multiple Hyperliquid assets, including HIP-3.","inputSchema":{"type":"object","properties":{"assetsWithTimeRanges":{"type":"array","items":{"type":"object","properties":{"asset":{"type":"string","description":"The asset to get historical funding rates for (e.g., \"BTC\", \"ETH\")."},"timeRanges":{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"null"}]},"description":"Array of time ranges for the rates in the format \"<number><unit>\" (e.g., \"1h\" for 1 hour, \"8h\" for 8 hours, \"24h\" for one day, \"1w\" for 1 week, \"1m\" for 1 month). Defaults to \"24h\" if null."}},"required":["asset","timeRanges"],"additionalProperties":false},"description":"Array of assets with their respective time ranges to get historical funding rates for."}},"required":["assetsWithTimeRanges"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"data":{"type":"array","items":{"type":"object","properties":{"asset":{"type":"string","description":"Asset symbol"},"timeRange":{"type":"string","description":"Time range label (e.g. \"24h\", \"1w\")"},"rates":{"type":"array","items":{"type":"object","properties":{"rate":{"type":"number","description":"Funding rate value"},"time":{"type":"number","description":"Timestamp"}},"required":["rate","time"],"additionalProperties":false},"description":"Funding rate entries"},"averageRate":{"type":"number","description":"Average funding rate over the period"}},"required":["asset","timeRange","rates","averageRate"],"additionalProperties":false}}},"required":["project","operation","data"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"getSupportedAssets","description":"Fetches all supported Hyperliquid perpetual assets, including HIP-3. Show maximum 10 assets if the user does not request more or all assets.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"data":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Asset symbol"},"maxLeverage":{"type":"number","description":"Maximum leverage"},"szDecimals":{"type":"number","description":"Size decimal precision"},"assetIndex":{"type":"number","description":"Asset index"}},"required":["name","maxLeverage","szDecimals","assetIndex"],"additionalProperties":false}}},"required":["project","operation","data"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"getFuturesMarketData","description":"Fetches current futures market data for selected Hyperliquid assets, including HIP-3 markets.","inputSchema":{"type":"object","properties":{"assets":{"type":"array","items":{"type":"string"},"description":"Assets to query (e.g. [\"BTC\", \"ETH\", \"CL\"])."}},"required":["assets"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"data":{"type":"array","items":{"type":"object","properties":{"asset":{"type":"string","description":"Asset symbol"},"currentPrice":{"description":"Current mark price","type":"number"},"oraclePrice":{"description":"Current oracle price","type":"number"},"previousDayPrice":{"description":"Previous day price","type":"number"},"dayNotionalVolumeUsd":{"description":"24-hour notional volume in USD","type":"number"},"openInterest":{"description":"Current open interest","type":"number"},"fundingRate":{"description":"Current funding rate","type":"number"},"maxLeverage":{"description":"Maximum supported leverage","type":"number"},"error":{"description":"Error if asset lookup failed","type":"string"}},"required":["asset"],"additionalProperties":false}}},"required":["project","operation","data"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"getDescriptionHyperliquid","description":"Get a description of Hyperliquid and its functionalities.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"data":{"type":"string","description":"Hyperliquid protocol description"}},"required":["project","operation","data"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"getLiquidationPrices","description":"Gets the liquidation prices for multiple positions with different assets and directions.","inputSchema":{"type":"object","properties":{"userAddress":{"type":"string","description":"The user's EVM wallet address."},"positionsToCheck":{"type":"array","items":{"type":"object","properties":{"asset":{"type":"string","description":"The asset to get the liquidation price for. e.g. \"BTC\", \"ETH\""},"short":{"type":"boolean","description":"If true, gets the liquidation price for a short position; if false, gets the liquidation price for a long position."},"vault":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional. Vault name or address. If not specified by the user then pass null."}},"required":["asset","short","vault"],"additionalProperties":false},"description":"Array of positions to check liquidation prices for."}},"required":["userAddress","positionsToCheck"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"data":{"type":"array","items":{"type":"object","properties":{"asset":{"type":"string","description":"Asset symbol"},"short":{"type":"boolean","description":"Whether the position is short"},"vault":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Vault address or null"},"liquidationPrice":{"description":"Liquidation price (2 decimals)","type":"string"},"error":{"description":"Error message","type":"string"}},"required":["asset","short","vault"],"additionalProperties":false}}},"required":["project","operation","data"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"createSpotOrder","description":"Creates a spot order on Hyperliquid to buy or sell tokens. If limitPrice is specified, creates a limit order; otherwise creates a market order.","inputSchema":{"type":"object","properties":{"userAddress":{"type":"string","description":"The user's EVM wallet address."},"token":{"type":"string","description":"The spot token to trade (e.g., \"BTC\", \"ETH\")."},"isBuy":{"type":"boolean","description":"If true, creates a buy order; if false, creates a sell order."},"amount":{"type":"string","description":"Amount to buy or sell tokens on spot.\nUse \"-1\" to trade the full available balance of the spent token.\nYou must pass it as-is using the correct \"sizeUnit\" value.\nsizeUnit:\n• ASSET — the size specified directly in the underlying asset (e.g., 1 BTC). If the user gives a ASSET size, use it directly as the trade size in ASSET.\n• USD — the size specified in USD (e.g., 1000 USD). If the user gives a USD size, use it directly as the trade size in USD. USD = USDC/$\nDo NOT convert between ASSET and USD."},"amountUnit":{"type":"string","enum":["ASSET","USD"],"description":"Specifies whether the amount is denominated in asset units or in USD."},"limitPrice":{"description":"The limit price for the order. If not specified, creates a market order.","type":"string"}},"required":["userAddress","token","isBuy","amount","amountUnit"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"apiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"Request body as JSON object"},"toSign":{"description":"EIP-712 payload to sign (required for EIP-712 flows, omitted for unsigned API requests)","type":"object","properties":{"domain":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"types":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"type":{"type":"string"}},"required":["name","type"],"additionalProperties":false}}},"message":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"primaryType":{"type":"string"}},"required":["domain","types","message","primaryType"],"additionalProperties":false}},"required":["url","method","headers","body"],"additionalProperties":false},"description":"Hyperliquid API actions to sign and send"}},"required":["project","operation","apiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"getSupportedSpotAssets","description":"Fetches all supported spot trading assets on Hyperliquid. Show maximum 10 assets if the user does not request for more or all assets.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"data":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Token name"},"szDecimals":{"type":"number","description":"Size decimal precision"},"weiDecimals":{"type":"number","description":"Wei decimal precision"},"index":{"type":"number","description":"Token index"},"tokenId":{"type":"string","description":"Token ID"}},"required":["name","szDecimals","weiDecimals","index","tokenId"],"additionalProperties":false}}},"required":["project","operation","data"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"getOpenSpotOrders","description":"Retrieves the list of currently open spot orders on Hyperliquid. This function is ONLY used for retrieving data, and it does not modify any orders.","inputSchema":{"type":"object","properties":{"userAddress":{"type":"string","description":"The user's EVM wallet address."}},"required":["userAddress"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"data":{"type":"array","items":{"type":"object","properties":{"oid":{"type":"number","description":"Order ID"},"token":{"type":"string","description":"Token name"},"coin":{"type":"string","description":"Internal coin identifier"},"sz":{"type":"string","description":"Order size"},"side":{"type":"string","enum":["BUY","SELL"],"description":"Order side"},"orderType":{"type":"string","description":"Order type"},"tif":{"type":"string","description":"Time in force"},"timestamp":{"type":"number","description":"Order timestamp"},"limitPx":{"description":"Limit price","type":"string"},"triggerPx":{"description":"Trigger price","type":"string"},"triggerCondition":{"description":"Trigger condition","type":"string"},"reduceOnly":{"description":"Whether order is reduce-only","type":"boolean"}},"required":["oid","token","coin","sz","side","orderType","tif","timestamp"],"additionalProperties":false}}},"required":["project","operation","data"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"cancelSpotOrder","description":"Cancels an existing open spot order on Hyperliquid based on its ID (oid).","inputSchema":{"type":"object","properties":{"userAddress":{"type":"string","description":"The user's EVM wallet address."},"id":{"type":"number","description":"Order ID (oid) of the spot order to be canceled."}},"required":["userAddress","id"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"apiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"Request body as JSON object"},"toSign":{"description":"EIP-712 payload to sign (required for EIP-712 flows, omitted for unsigned API requests)","type":"object","properties":{"domain":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"types":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"type":{"type":"string"}},"required":["name","type"],"additionalProperties":false}}},"message":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"primaryType":{"type":"string"}},"required":["domain","types","message","primaryType"],"additionalProperties":false}},"required":["url","method","headers","body"],"additionalProperties":false},"description":"Hyperliquid API actions to sign and send"}},"required":["project","operation","apiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"addSpotTakeProfit","description":"Creates a take-profit limit order to sell all available holdings of a spot token at the specified price.","inputSchema":{"type":"object","properties":{"userAddress":{"type":"string","description":"The user's EVM wallet address."},"token":{"type":"string","description":"The spot token (e.g., \"BTC\", \"ETH\")."},"price":{"type":"string","description":"Price at which to sell (take profit)."}},"required":["userAddress","token","price"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"apiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"Request body as JSON object"},"toSign":{"description":"EIP-712 payload to sign (required for EIP-712 flows, omitted for unsigned API requests)","type":"object","properties":{"domain":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"types":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"type":{"type":"string"}},"required":["name","type"],"additionalProperties":false}}},"message":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"primaryType":{"type":"string"}},"required":["domain","types","message","primaryType"],"additionalProperties":false}},"required":["url","method","headers","body"],"additionalProperties":false},"description":"Hyperliquid API actions to sign and send"}},"required":["project","operation","apiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"getSpotMarketData","description":"Fetches market data for spot tokens including price, volume, and supply information.","inputSchema":{"type":"object","properties":{"tokens":{"type":"array","items":{"type":"string"},"description":"Array of spot token symbols to get market data for (e.g., [\"BTC\", \"ETH\"])."}},"required":["tokens"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"data":{"type":"array","items":{"type":"object","properties":{"token":{"type":"string","description":"Token symbol"},"name":{"description":"Token name","type":"string"},"midPx":{"description":"Mid price","type":"number"},"prevDayPx":{"description":"Previous day price","type":"number"},"dayNtlVlm":{"description":"24h notional volume","type":"number"},"circulatingSupply":{"description":"Circulating supply","type":"number"},"totalSupply":{"description":"Total supply","type":"number"},"error":{"description":"Error if token lookup failed","type":"string"}},"required":["token"],"additionalProperties":false}}},"required":["project","operation","data"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}}]}