get_user_sub_accounts
Fetch sub-accounts associated with a Hyperliquid user account to access trading details and manage multiple portfolios under one address.
Instructions
Fetch the sub-accounts associated with a specific user account.
Parameters:
account_address (str): The Hyperliquid account address (e.g., '0xcd5051944f780a621ee62e39e493c489668acf4d').
ctx (Context): The MCP context object for accessing server state.
Returns:
str: A JSON string containing a list of sub-accounts and their details.
Returns a JSON string with an error message if the query fails.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| account_address | Yes |
Input Schema (JSON Schema)
{
"properties": {
"account_address": {
"title": "Account Address",
"type": "string"
}
},
"required": [
"account_address"
],
"type": "object"
}
Implementation Reference
- main.py:320-336 (handler)The handler function for the 'get_user_sub_accounts' tool. It is registered via the @mcp.tool() decorator. Fetches sub-accounts using the Hyperliquid Info SDK's query_sub_accounts method and returns the JSON-serialized result or an error message.async def get_user_sub_accounts(account_address: str, ctx: Context) -> str: """ Fetch the sub-accounts associated with a specific user account. Parameters: account_address (str): The Hyperliquid account address (e.g., '0xcd5051944f780a621ee62e39e493c489668acf4d'). ctx (Context): The MCP context object for accessing server state. Returns: str: A JSON string containing a list of sub-accounts and their details. Returns a JSON string with an error message if the query fails. """ try: data = info.query_sub_accounts(account_address) return json.dumps(data) except Exception as e: return json.dumps({"error": f"Failed to fetch user sub accounts: {str(e)}"})