{"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 Hyperliquid perpetual balance to Arbitrum network. Withdrawal only works from perpetual balance so user must transfer funds to perp balance first.","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":"transferToPerpetual","description":"Transfers funds from the user's spot balance to perpetual trading balance","inputSchema":{"type":"object","properties":{"userAddress":{"type":"string","description":"The user's EVM wallet address."},"amount":{"type":"string","description":"Amount of USD to transfer in human-readable decimal format (e.g. '1.5')"}},"required":["userAddress","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":"transferToSpot","description":"Transfers funds from the user's perpetual trading balance to spot balance","inputSchema":{"type":"object","properties":{"userAddress":{"type":"string","description":"The user's EVM wallet address."},"amount":{"type":"string","description":"Amount of USD to transfer in human-readable decimal format (e.g. '1.5')"}},"required":["userAddress","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 perp position on Hyperliquid using perp balance as margin(size/leverage). If limitPrice,takeProfitPrice or stopLossPrice are specified orders will be 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":"modifyPerpPositionByUSD","description":"Increses or decreases the size of the Hyperliquid perp position by the specified USD amount. In case that position size needs to be increased, \"size\" argument is positive, and otherwise it is negative. 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 of the perp position."},"size":{"type":"string","description":"How many USD the position needs to be modified for. Positive for size increase and negative for size decrease. in decimal format."},"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","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":"modifyPerpPositionByTokenAmount","description":"Increses or decreases the size of the Hyperliquid perpetual position by the specified asset token amount. In case that position size needs to be increased, \"size\" argument is positive, and otherwise it is negative. 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 of the perp position."},"size":{"type":"string","description":"Amount of underlying token that the position needs to be modified for. Positive for size increase and negative for size decrease. in decimal format."},"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","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":"increasePerpPositionByMultiplying","description":"Increses the size of the Hyperliquid perp position by the specified percentage. 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 of the perp position."},"sizeMultiplier":{"type":"string","description":"Multiplier to increase the position (e.g., 0.6 to increase by 60%)."},"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","sizeMultiplier"],"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":"decreasePerpPositionByMultiplying","description":"Decreses the size of the Hyperliquid perp position by the specified percentage. 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 of the perp position."},"sizeMultiplier":{"type":"string","description":"Multiplier to decrease the position (e.g., 0.3 to reduce by 30%)."},"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","sizeMultiplier"],"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":"addStopLoss","description":"Adds stop loss trigger at the given price to the existing Hyperliquid position in the given asset.","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."},"price":{"type":"string","description":"Trigger price for the stop loss action."},"vault":{"description":"Vault name or address.","type":"string"}},"required":["userAddress","asset","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":"addTakeProfit","description":"Adds take profit trigger at the given price to the existing Hyperliquid position in the given asset.","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."},"price":{"type":"string","description":"Trigger price for the take profit action."},"vault":{"description":"Vault name or address.","type":"string"}},"required":["userAddress","asset","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":"getSpotBalances","description":"Retrieves spot balances on Hyperliquid.","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":{"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}}},"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":"getPerpBalances","description":"Retrieves available balance in Hyperliquid perpetual account for multiple 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"},"withdrawable":{"type":"number","description":"Withdrawable balance in USD"},"error":{"description":"Error if vault lookup failed","type":"string"}},"required":["target","withdrawable"],"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":"addMargin","description":"Increases the position margin by adding funds to it.","inputSchema":{"type":"object","properties":{"userAddress":{"type":"string","description":"The user's EVM wallet address."},"asset":{"type":"string","description":"Asset identifier of the position that user wants to add margin to."},"amount":{"type":"string","description":"Amount of USD to add to the margin in human-readable decimal format (e.g. '1.5')"},"vault":{"description":"Vault name or address.","type":"string"}},"required":["userAddress","asset","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":"removeMargin","description":"Decreases the position margin by removing funds from it.","inputSchema":{"type":"object","properties":{"userAddress":{"type":"string","description":"The user's EVM wallet address."},"asset":{"type":"string","description":"Asset identifier of the position that user wants to remove margin from."},"amount":{"type":"string","description":"Amount of USD to remove from the margin in human-readable decimal format (e.g. '1.5')"},"vault":{"description":"Vault name or address.","type":"string"}},"required":["userAddress","asset","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":"toggleAutoCloseOnWithdrawal","description":"Toggles whether the vault's positions should automatically close on withdrawal.","inputSchema":{"type":"object","properties":{"userAddress":{"type":"string","description":"The user's EVM wallet address."},"vault":{"type":"string","description":"Vault name or address."},"value":{"type":"boolean","description":"Set to true to enable auto-close on withdrawal; false to disable."}},"required":["userAddress","vault","value"],"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":"toggleDepositsEnabled","description":"Toggles whether users are allowed to deposit into the vault.","inputSchema":{"type":"object","properties":{"userAddress":{"type":"string","description":"The user's EVM wallet address."},"vault":{"type":"string","description":"Vault name or address."},"value":{"type":"boolean","description":"Set to true to enable deposits into the vault; false to disable."}},"required":["userAddress","vault","value"],"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 the current funding rates for multiple assets on Hyperliquid.","inputSchema":{"type":"object","properties":{"assets":{"type":"array","items":{"type":"string"},"description":"Array of assets to get the current funding rates for (e.g., [\"BTC\", \"ETH\"]). Must be valid Hyperliquid perpetual assets."}},"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":"getAllFundingRates","description":"Fetches the current funding rates for all supported assets on Hyperliquid.","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":{"asset":{"type":"string","description":"Asset symbol"},"rate":{"type":"number","description":"Raw funding rate"},"ratePercent":{"type":"number","description":"Funding rate as percentage"}},"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 past funding rates for multiple assets on Hyperliquid over specified time ranges.","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"}},"required":["asset","timeRange","rates"],"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":"getAvarageHistoricalFundingRates","description":"Fetches avarage funding rates for ALL Hyperliquid assets over a time range.","inputSchema":{"type":"object","properties":{"assetsWithTimeRanges":{"type":"array","items":{"type":"object","properties":{"asset":{"type":"string","description":"The asset to get avarage historical funding rates for (e.g., \"BTC\", \"ETH\")."},"timeRanges":{"type":"array","items":{"type":"string"},"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 omitted."}},"required":["asset","timeRanges"],"additionalProperties":false},"description":"Array of the assets with the time ranges to get the avarage 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\")"},"averageRate":{"type":"number","description":"Average funding rate over the period"},"error":{"description":"Error if fetch failed","type":"string"}},"required":["asset","timeRange","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 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":"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":"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.\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}]}}]}