@continuumdao/ctm-mpc-defi 0.2.8 → 0.2.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1072,6 +1072,241 @@ var mcpGmxFetchOhlcvOutputSchema = z.object({
1072
1072
  timeframe: gmxOhlcvTimeframeSchema,
1073
1073
  candles: z.array(gmxOhlcvCandleSchema)
1074
1074
  });
1075
+ function mcpHyperliquidMultisignInput(fields) {
1076
+ return evmMultisignCommonInputSchema.extend(fields);
1077
+ }
1078
+ var hyperliquidTifSchema = z.enum(["alo", "gtc", "ioc"]);
1079
+ var hyperliquidOhlcvIntervalSchema = z.enum([
1080
+ "1m",
1081
+ "3m",
1082
+ "5m",
1083
+ "15m",
1084
+ "30m",
1085
+ "1h",
1086
+ "2h",
1087
+ "4h",
1088
+ "8h",
1089
+ "12h",
1090
+ "1d",
1091
+ "3d",
1092
+ "1w",
1093
+ "1M"
1094
+ ]);
1095
+ var hyperliquidPositionRowSchema = z.object({
1096
+ key: z.string(),
1097
+ coin: z.string(),
1098
+ isLong: z.boolean(),
1099
+ size: z.string().nullable(),
1100
+ entryPx: z.string().nullable(),
1101
+ positionValueUsd: z.string().nullable(),
1102
+ unrealizedPnlUsd: z.string().nullable(),
1103
+ liquidationPx: z.string().nullable(),
1104
+ leverageLabel: z.string().nullable(),
1105
+ maxLeverage: z.number().nullable(),
1106
+ marginUsedUsd: z.string().nullable(),
1107
+ returnOnEquity: z.string().nullable()
1108
+ });
1109
+ var hyperliquidActiveAssetSchema = z.object({
1110
+ markPx: z.string().nullable(),
1111
+ leverageLabel: z.string().nullable(),
1112
+ availableToBuy: z.string().nullable(),
1113
+ availableToSell: z.string().nullable()
1114
+ });
1115
+ var hyperliquidAccountSummarySchema = z.object({
1116
+ accountValueUsd: z.string().nullable(),
1117
+ totalMarginUsedUsd: z.string().nullable(),
1118
+ withdrawableUsd: z.string().nullable()
1119
+ });
1120
+ var mcpHyperliquidFetchMarketsInputSchema = z.object({
1121
+ chainId: z.number().int().positive(),
1122
+ dex: z.string().optional()
1123
+ });
1124
+ var mcpHyperliquidFetchMarketsOutputSchema = z.object({
1125
+ markets: z.array(
1126
+ z.object({
1127
+ name: z.string(),
1128
+ asset: z.number(),
1129
+ szDecimals: z.number(),
1130
+ maxLeverage: z.number(),
1131
+ onlyIsolated: z.boolean().optional()
1132
+ })
1133
+ ),
1134
+ dexes: z.array(
1135
+ z.object({
1136
+ name: z.string(),
1137
+ fullName: z.string()
1138
+ })
1139
+ )
1140
+ });
1141
+ var mcpHyperliquidFetchOpenContextInputSchema = z.object({
1142
+ chainId: z.number().int().positive(),
1143
+ executorAddress: evmAddressSchema,
1144
+ coin: z.string().min(1),
1145
+ dex: z.string().optional()
1146
+ });
1147
+ var mcpHyperliquidFetchOpenContextOutputSchema = z.object({
1148
+ context: z.object({
1149
+ account: hyperliquidAccountSummarySchema,
1150
+ activeAsset: hyperliquidActiveAssetSchema
1151
+ })
1152
+ });
1153
+ var mcpHyperliquidFetchPositionsInputSchema = z.object({
1154
+ chainId: z.number().int().positive(),
1155
+ executorAddress: evmAddressSchema,
1156
+ dex: z.string().optional()
1157
+ });
1158
+ var mcpHyperliquidFetchPositionsOutputSchema = z.object({
1159
+ positions: z.array(hyperliquidPositionRowSchema)
1160
+ });
1161
+ var mcpHyperliquidFetchOpenOrdersInputSchema = z.object({
1162
+ chainId: z.number().int().positive(),
1163
+ executorAddress: evmAddressSchema,
1164
+ dex: z.string().optional()
1165
+ });
1166
+ var mcpHyperliquidFetchOpenOrdersOutputSchema = z.object({
1167
+ orders: z.array(
1168
+ z.object({
1169
+ coin: z.string(),
1170
+ side: z.string(),
1171
+ limitPx: z.string(),
1172
+ sz: z.string(),
1173
+ oid: z.number(),
1174
+ timestamp: z.number(),
1175
+ reduceOnly: z.boolean().optional()
1176
+ })
1177
+ )
1178
+ });
1179
+ var mcpHyperliquidFetchMarketSnapshotInputSchema = z.object({
1180
+ chainId: z.number().int().positive(),
1181
+ coin: z.string().min(1),
1182
+ interval: hyperliquidOhlcvIntervalSchema.optional(),
1183
+ dex: z.string().optional()
1184
+ });
1185
+ var mcpHyperliquidFetchMarketSnapshotOutputSchema = z.object({
1186
+ snapshot: z.object({
1187
+ coin: z.string(),
1188
+ midUsd: z.string().nullable(),
1189
+ fetchedAtMs: z.number(),
1190
+ interval: hyperliquidOhlcvIntervalSchema,
1191
+ candles: z.array(
1192
+ z.object({
1193
+ timestampMs: z.number(),
1194
+ open: z.string(),
1195
+ high: z.string(),
1196
+ low: z.string(),
1197
+ close: z.string(),
1198
+ volume: z.string()
1199
+ })
1200
+ )
1201
+ })
1202
+ });
1203
+ var mcpHyperliquidFetchUsdClassBalancesInputSchema = z.object({
1204
+ chainId: z.number().int().positive(),
1205
+ executorAddress: evmAddressSchema
1206
+ });
1207
+ var mcpHyperliquidFetchUsdClassBalancesOutputSchema = z.object({
1208
+ balances: z.object({
1209
+ spotUsdcAvailable: z.string(),
1210
+ perpWithdrawable: z.string()
1211
+ })
1212
+ });
1213
+ var mcpHyperliquidFetchVaultsInputSchema = z.object({
1214
+ chainId: z.number().int().positive(),
1215
+ executorAddress: evmAddressSchema.optional()
1216
+ });
1217
+ var mcpHyperliquidFetchVaultsOutputSchema = z.object({
1218
+ vaults: z.array(
1219
+ z.object({
1220
+ vaultAddress: z.string(),
1221
+ name: z.string(),
1222
+ apr: z.number().nullable(),
1223
+ tvlUsd: z.string().nullable()
1224
+ })
1225
+ )
1226
+ });
1227
+ var mcpHyperliquidFetchUserVaultEquitiesInputSchema = z.object({
1228
+ chainId: z.number().int().positive(),
1229
+ executorAddress: evmAddressSchema
1230
+ });
1231
+ var mcpHyperliquidFetchUserVaultEquitiesOutputSchema = z.object({
1232
+ rows: z.array(
1233
+ z.object({
1234
+ vaultAddress: z.string(),
1235
+ equity: z.string()
1236
+ })
1237
+ )
1238
+ });
1239
+ var mcpHyperliquidFetchStakingSummaryInputSchema = z.object({
1240
+ chainId: z.number().int().positive(),
1241
+ executorAddress: evmAddressSchema
1242
+ });
1243
+ var mcpHyperliquidFetchStakingSummaryOutputSchema = z.object({
1244
+ summary: z.object({
1245
+ delegated: z.string(),
1246
+ undelegated: z.string()
1247
+ })
1248
+ });
1249
+ var mcpHyperliquidFetchDelegationsInputSchema = z.object({
1250
+ chainId: z.number().int().positive(),
1251
+ executorAddress: evmAddressSchema
1252
+ });
1253
+ var mcpHyperliquidFetchDelegationsOutputSchema = z.object({
1254
+ delegations: z.array(
1255
+ z.object({
1256
+ validator: z.string(),
1257
+ amount: z.string()
1258
+ })
1259
+ )
1260
+ });
1261
+ var mcpHyperliquidLimitOrderInputSchema = mcpHyperliquidMultisignInput({
1262
+ coin: z.string().min(1),
1263
+ isBuy: z.boolean(),
1264
+ limitPxHuman: z.string().min(1),
1265
+ szHuman: z.string().min(1),
1266
+ marketKind: z.enum(["perp", "spot"]).optional(),
1267
+ tif: hyperliquidTifSchema.optional(),
1268
+ dex: z.string().optional()
1269
+ });
1270
+ var mcpHyperliquidCloseInputSchema = mcpHyperliquidMultisignInput({
1271
+ coin: z.string().min(1),
1272
+ isLong: z.boolean(),
1273
+ limitPxHuman: z.string().min(1),
1274
+ szHuman: z.string().min(1),
1275
+ dex: z.string().optional(),
1276
+ tif: hyperliquidTifSchema.optional()
1277
+ });
1278
+ var mcpHyperliquidCancelInputSchema = mcpHyperliquidMultisignInput({
1279
+ coin: z.string().min(1),
1280
+ oid: z.number().int().positive(),
1281
+ marketKind: z.enum(["perp", "spot"]).optional(),
1282
+ dex: z.string().optional()
1283
+ });
1284
+ var mcpHyperliquidUsdTransferInputSchema = mcpHyperliquidMultisignInput({
1285
+ usdHuman: z.string().min(1),
1286
+ toPerp: z.boolean()
1287
+ });
1288
+ var mcpHyperliquidVaultDepositInputSchema = mcpHyperliquidMultisignInput({
1289
+ vaultAddress: evmAddressSchema,
1290
+ usdHuman: z.string().min(1)
1291
+ });
1292
+ var mcpHyperliquidVaultWithdrawInputSchema = mcpHyperliquidMultisignInput({
1293
+ vaultAddress: evmAddressSchema,
1294
+ usdHuman: z.string().min(1)
1295
+ });
1296
+ var mcpHyperliquidStakeInputSchema = mcpHyperliquidMultisignInput({
1297
+ hypeHuman: z.string().min(1)
1298
+ });
1299
+ var mcpHyperliquidUnstakeInputSchema = mcpHyperliquidMultisignInput({
1300
+ hypeHuman: z.string().min(1)
1301
+ });
1302
+ var mcpHyperliquidDelegateInputSchema = mcpHyperliquidMultisignInput({
1303
+ hypeHuman: z.string().min(1),
1304
+ validator: evmAddressSchema
1305
+ });
1306
+ var mcpHyperliquidUndelegateInputSchema = mcpHyperliquidMultisignInput({
1307
+ hypeHuman: z.string().min(1),
1308
+ validator: evmAddressSchema
1309
+ });
1075
1310
 
1076
1311
  // src/agent/mcpProtocolTools.ts
1077
1312
  function defineProtocolMcpTool(def) {
@@ -1443,6 +1678,109 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
1443
1678
  prerequisites: ["keyGen", "executorAddress", "staked GMX balance"],
1444
1679
  handler: { importPath: "protocols/evm/gmx", exportName: "buildEvmMultisignBodyGmxUnstakeGmxBatch" },
1445
1680
  inputZod: mcpGmxUnstakeGmxInputSchema
1681
+ }),
1682
+ defineProtocolMcpTool({
1683
+ name: "ctm_hyperliquid_build_limit_order_multisign",
1684
+ actionId: "hyperliquid.limitOrder",
1685
+ protocolId: "hyperliquid",
1686
+ chainCategory: "evm",
1687
+ description: "Create and submit mpc-auth multiSignRequest for a Hyperliquid limit/IoC order via HyperEVM CoreWriter.",
1688
+ prerequisites: ["keyGen", "executorAddress", "chainId 999 or 998", "coin", "limitPxHuman", "szHuman"],
1689
+ handler: { importPath: "protocols/evm/hyperliquid", exportName: "buildEvmMultisignBodyHyperliquidLimitOrderBatch" },
1690
+ inputZod: mcpHyperliquidLimitOrderInputSchema
1691
+ }),
1692
+ defineProtocolMcpTool({
1693
+ name: "ctm_hyperliquid_build_close_multisign",
1694
+ actionId: "hyperliquid.close",
1695
+ protocolId: "hyperliquid",
1696
+ chainCategory: "evm",
1697
+ description: "Create and submit mpc-auth multiSignRequest to close/reduce a perp (IoC reduce-only limit via CoreWriter).",
1698
+ prerequisites: ["keyGen", "executorAddress", "open position from fetch_positions", "isLong matches position"],
1699
+ handler: { importPath: "protocols/evm/hyperliquid", exportName: "buildEvmMultisignBodyHyperliquidCloseBatch" },
1700
+ inputZod: mcpHyperliquidCloseInputSchema
1701
+ }),
1702
+ defineProtocolMcpTool({
1703
+ name: "ctm_hyperliquid_build_cancel_multisign",
1704
+ actionId: "hyperliquid.cancel",
1705
+ protocolId: "hyperliquid",
1706
+ chainCategory: "evm",
1707
+ description: "Create and submit mpc-auth multiSignRequest to cancel a Hyperliquid open order.",
1708
+ prerequisites: ["keyGen", "executorAddress", "oid from fetch_open_orders"],
1709
+ handler: { importPath: "protocols/evm/hyperliquid", exportName: "buildEvmMultisignBodyHyperliquidCancelBatch" },
1710
+ inputZod: mcpHyperliquidCancelInputSchema
1711
+ }),
1712
+ defineProtocolMcpTool({
1713
+ name: "ctm_hyperliquid_build_usd_transfer_multisign",
1714
+ actionId: "hyperliquid.usdTransfer",
1715
+ protocolId: "hyperliquid",
1716
+ chainCategory: "evm",
1717
+ description: "Create and submit mpc-auth multiSignRequest to move USDC between spot and perp margin.",
1718
+ prerequisites: ["keyGen", "executorAddress", "usdHuman", "toPerp boolean"],
1719
+ handler: {
1720
+ importPath: "protocols/evm/hyperliquid",
1721
+ exportName: "buildEvmMultisignBodyHyperliquidUsdClassTransferBatch"
1722
+ },
1723
+ inputZod: mcpHyperliquidUsdTransferInputSchema
1724
+ }),
1725
+ defineProtocolMcpTool({
1726
+ name: "ctm_hyperliquid_build_vault_deposit_multisign",
1727
+ actionId: "hyperliquid.vaultDeposit",
1728
+ protocolId: "hyperliquid",
1729
+ chainCategory: "evm",
1730
+ description: "Create and submit mpc-auth multiSignRequest for Hyperliquid vault deposit.",
1731
+ prerequisites: ["keyGen", "executorAddress", "vaultAddress from fetch_vaults"],
1732
+ handler: { importPath: "protocols/evm/hyperliquid", exportName: "buildEvmMultisignBodyHyperliquidVaultDepositBatch" },
1733
+ inputZod: mcpHyperliquidVaultDepositInputSchema
1734
+ }),
1735
+ defineProtocolMcpTool({
1736
+ name: "ctm_hyperliquid_build_vault_withdraw_multisign",
1737
+ actionId: "hyperliquid.vaultWithdraw",
1738
+ protocolId: "hyperliquid",
1739
+ chainCategory: "evm",
1740
+ description: "Create and submit mpc-auth multiSignRequest for Hyperliquid vault withdraw (includes accrued PnL).",
1741
+ prerequisites: ["keyGen", "executorAddress", "vaultAddress", "equity from fetch_user_vault_equities"],
1742
+ handler: { importPath: "protocols/evm/hyperliquid", exportName: "buildEvmMultisignBodyHyperliquidVaultWithdrawBatch" },
1743
+ inputZod: mcpHyperliquidVaultWithdrawInputSchema
1744
+ }),
1745
+ defineProtocolMcpTool({
1746
+ name: "ctm_hyperliquid_build_stake_multisign",
1747
+ actionId: "hyperliquid.stake",
1748
+ protocolId: "hyperliquid",
1749
+ chainCategory: "evm",
1750
+ description: "Create and submit mpc-auth multiSignRequest to stake HYPE via CoreWriter.",
1751
+ prerequisites: ["keyGen", "executorAddress", "HYPE balance on Hyperliquid account"],
1752
+ handler: { importPath: "protocols/evm/hyperliquid", exportName: "buildEvmMultisignBodyHyperliquidStakeDepositBatch" },
1753
+ inputZod: mcpHyperliquidStakeInputSchema
1754
+ }),
1755
+ defineProtocolMcpTool({
1756
+ name: "ctm_hyperliquid_build_unstake_multisign",
1757
+ actionId: "hyperliquid.unstake",
1758
+ protocolId: "hyperliquid",
1759
+ chainCategory: "evm",
1760
+ description: "Create and submit mpc-auth multiSignRequest to unstake HYPE via CoreWriter.",
1761
+ prerequisites: ["keyGen", "executorAddress", "staked HYPE"],
1762
+ handler: { importPath: "protocols/evm/hyperliquid", exportName: "buildEvmMultisignBodyHyperliquidStakeWithdrawBatch" },
1763
+ inputZod: mcpHyperliquidUnstakeInputSchema
1764
+ }),
1765
+ defineProtocolMcpTool({
1766
+ name: "ctm_hyperliquid_build_delegate_multisign",
1767
+ actionId: "hyperliquid.delegate",
1768
+ protocolId: "hyperliquid",
1769
+ chainCategory: "evm",
1770
+ description: "Create and submit mpc-auth multiSignRequest to delegate staked HYPE to a validator.",
1771
+ prerequisites: ["keyGen", "executorAddress", "validator address", "hypeHuman"],
1772
+ handler: { importPath: "protocols/evm/hyperliquid", exportName: "buildEvmMultisignBodyHyperliquidDelegateOnlyBatch" },
1773
+ inputZod: mcpHyperliquidDelegateInputSchema
1774
+ }),
1775
+ defineProtocolMcpTool({
1776
+ name: "ctm_hyperliquid_build_undelegate_multisign",
1777
+ actionId: "hyperliquid.undelegate",
1778
+ protocolId: "hyperliquid",
1779
+ chainCategory: "evm",
1780
+ description: "Create and submit mpc-auth multiSignRequest to undelegate HYPE from a validator.",
1781
+ prerequisites: ["keyGen", "executorAddress", "delegation from fetch_delegations"],
1782
+ handler: { importPath: "protocols/evm/hyperliquid", exportName: "buildEvmMultisignBodyHyperliquidUndelegateBatch" },
1783
+ inputZod: mcpHyperliquidUndelegateInputSchema
1446
1784
  })
1447
1785
  ];
1448
1786
 
@@ -1788,6 +2126,126 @@ var CORE_MCP_TOOL_DEFINITIONS = [
1788
2126
  handler: { importPath: "protocols/evm/gmx", exportName: "gmxFetchStakingPower" },
1789
2127
  inputZod: mcpGmxFetchStakingPowerInputSchema,
1790
2128
  outputZod: mcpGmxFetchStakingPowerOutputSchema
2129
+ }),
2130
+ defineMcpTool({
2131
+ name: "ctm_hyperliquid_fetch_markets",
2132
+ actionId: "hyperliquid.fetch-markets",
2133
+ protocolId: "hyperliquid",
2134
+ chainCategory: "evm",
2135
+ description: "List Hyperliquid perp markets (coin, maxLeverage, szDecimals) and HIP-3 dex names. chainId 999 mainnet or 998 testnet.",
2136
+ prerequisites: ["chainId 999 or 998"],
2137
+ followUp: ["ctm_hyperliquid_fetch_open_context", "ctm_hyperliquid_build_limit_order_multisign"],
2138
+ handler: { importPath: "protocols/evm/hyperliquid", exportName: "hyperliquidFetchMarketsSummary" },
2139
+ inputZod: mcpHyperliquidFetchMarketsInputSchema,
2140
+ outputZod: mcpHyperliquidFetchMarketsOutputSchema
2141
+ }),
2142
+ defineMcpTool({
2143
+ name: "ctm_hyperliquid_fetch_open_context",
2144
+ actionId: "hyperliquid.fetch-open-context",
2145
+ protocolId: "hyperliquid",
2146
+ chainCategory: "evm",
2147
+ description: "Per-market trading context: account value, withdrawable, margin used, leverage setting, mark price, available buy/sell size.",
2148
+ prerequisites: ["chainId", "executorAddress", "coin from fetch_markets"],
2149
+ followUp: ["ctm_hyperliquid_build_limit_order_multisign"],
2150
+ handler: { importPath: "protocols/evm/hyperliquid", exportName: "hyperliquidFetchOpenContextSummary" },
2151
+ inputZod: mcpHyperliquidFetchOpenContextInputSchema,
2152
+ outputZod: mcpHyperliquidFetchOpenContextOutputSchema
2153
+ }),
2154
+ defineMcpTool({
2155
+ name: "ctm_hyperliquid_fetch_positions",
2156
+ actionId: "hyperliquid.fetch-positions",
2157
+ protocolId: "hyperliquid",
2158
+ chainCategory: "evm",
2159
+ description: "Open Hyperliquid perp positions for executor (size, entry, uPnL, liq price, leverage, margin).",
2160
+ prerequisites: ["chainId", "executorAddress"],
2161
+ followUp: ["ctm_hyperliquid_build_close_multisign"],
2162
+ handler: { importPath: "protocols/evm/hyperliquid", exportName: "hyperliquidFetchPositionsForExecutor" },
2163
+ inputZod: mcpHyperliquidFetchPositionsInputSchema,
2164
+ outputZod: mcpHyperliquidFetchPositionsOutputSchema
2165
+ }),
2166
+ defineMcpTool({
2167
+ name: "ctm_hyperliquid_fetch_open_orders",
2168
+ actionId: "hyperliquid.fetch-open-orders",
2169
+ protocolId: "hyperliquid",
2170
+ chainCategory: "evm",
2171
+ description: "Pending Hyperliquid open orders for executor (oid, coin, side, price, size).",
2172
+ prerequisites: ["chainId", "executorAddress"],
2173
+ followUp: ["ctm_hyperliquid_build_cancel_multisign"],
2174
+ handler: { importPath: "protocols/evm/hyperliquid", exportName: "hyperliquidFetchOpenOrdersSummary" },
2175
+ inputZod: mcpHyperliquidFetchOpenOrdersInputSchema,
2176
+ outputZod: mcpHyperliquidFetchOpenOrdersOutputSchema
2177
+ }),
2178
+ defineMcpTool({
2179
+ name: "ctm_hyperliquid_fetch_market_snapshot",
2180
+ actionId: "hyperliquid.fetch-market-snapshot",
2181
+ protocolId: "hyperliquid",
2182
+ chainCategory: "evm",
2183
+ description: "Mid price and OHLCV candles for a Hyperliquid perp coin. Default interval 15m.",
2184
+ prerequisites: ["chainId", "coin"],
2185
+ followUp: ["ctm_hyperliquid_fetch_open_context", "ctm_hyperliquid_build_limit_order_multisign"],
2186
+ handler: { importPath: "protocols/evm/hyperliquid", exportName: "hyperliquidFetchMarketSnapshotSummary" },
2187
+ inputZod: mcpHyperliquidFetchMarketSnapshotInputSchema,
2188
+ outputZod: mcpHyperliquidFetchMarketSnapshotOutputSchema
2189
+ }),
2190
+ defineMcpTool({
2191
+ name: "ctm_hyperliquid_fetch_usd_class_balances",
2192
+ actionId: "hyperliquid.fetch-usd-balances",
2193
+ protocolId: "hyperliquid",
2194
+ chainCategory: "evm",
2195
+ description: "Spot USDC available and perp withdrawable USD for spot\u2194perp transfers.",
2196
+ prerequisites: ["chainId", "executorAddress"],
2197
+ followUp: ["ctm_hyperliquid_build_usd_transfer_multisign"],
2198
+ handler: { importPath: "protocols/evm/hyperliquid", exportName: "hyperliquidFetchUsdClassBalancesSummary" },
2199
+ inputZod: mcpHyperliquidFetchUsdClassBalancesInputSchema,
2200
+ outputZod: mcpHyperliquidFetchUsdClassBalancesOutputSchema
2201
+ }),
2202
+ defineMcpTool({
2203
+ name: "ctm_hyperliquid_fetch_vaults",
2204
+ actionId: "hyperliquid.fetch-vaults",
2205
+ protocolId: "hyperliquid",
2206
+ chainCategory: "evm",
2207
+ description: "Vault catalog by TVL with APR (mainnet only; may take ~10\u201315s). Pass executorAddress to merge user-held vaults.",
2208
+ prerequisites: ["chainId 999 for catalog"],
2209
+ followUp: ["ctm_hyperliquid_build_vault_deposit_multisign"],
2210
+ handler: { importPath: "protocols/evm/hyperliquid", exportName: "hyperliquidFetchVaultCatalogSummary" },
2211
+ inputZod: mcpHyperliquidFetchVaultsInputSchema,
2212
+ outputZod: mcpHyperliquidFetchVaultsOutputSchema
2213
+ }),
2214
+ defineMcpTool({
2215
+ name: "ctm_hyperliquid_fetch_user_vault_equities",
2216
+ actionId: "hyperliquid.fetch-user-vault-equities",
2217
+ protocolId: "hyperliquid",
2218
+ chainCategory: "evm",
2219
+ description: "USD equity the user holds in Hyperliquid vaults.",
2220
+ prerequisites: ["chainId", "executorAddress"],
2221
+ followUp: ["ctm_hyperliquid_build_vault_withdraw_multisign"],
2222
+ handler: { importPath: "protocols/evm/hyperliquid", exportName: "hyperliquidFetchUserVaultEquitiesSummary" },
2223
+ inputZod: mcpHyperliquidFetchUserVaultEquitiesInputSchema,
2224
+ outputZod: mcpHyperliquidFetchUserVaultEquitiesOutputSchema
2225
+ }),
2226
+ defineMcpTool({
2227
+ name: "ctm_hyperliquid_fetch_staking_summary",
2228
+ actionId: "hyperliquid.fetch-staking-summary",
2229
+ protocolId: "hyperliquid",
2230
+ chainCategory: "evm",
2231
+ description: "HYPE staking summary: delegated and undelegated amounts.",
2232
+ prerequisites: ["chainId", "executorAddress"],
2233
+ followUp: ["ctm_hyperliquid_build_stake_multisign", "ctm_hyperliquid_build_delegate_multisign"],
2234
+ handler: { importPath: "protocols/evm/hyperliquid", exportName: "hyperliquidFetchStakingSummaryForExecutor" },
2235
+ inputZod: mcpHyperliquidFetchStakingSummaryInputSchema,
2236
+ outputZod: mcpHyperliquidFetchStakingSummaryOutputSchema
2237
+ }),
2238
+ defineMcpTool({
2239
+ name: "ctm_hyperliquid_fetch_delegations",
2240
+ actionId: "hyperliquid.fetch-delegations",
2241
+ protocolId: "hyperliquid",
2242
+ chainCategory: "evm",
2243
+ description: "HYPE delegations by validator for executor.",
2244
+ prerequisites: ["chainId", "executorAddress"],
2245
+ followUp: ["ctm_hyperliquid_build_undelegate_multisign"],
2246
+ handler: { importPath: "protocols/evm/hyperliquid", exportName: "hyperliquidFetchDelegationsForExecutor" },
2247
+ inputZod: mcpHyperliquidFetchDelegationsInputSchema,
2248
+ outputZod: mcpHyperliquidFetchDelegationsOutputSchema
1791
2249
  })
1792
2250
  ];
1793
2251
  var MCP_TOOL_DEFINITIONS = [
@@ -2410,6 +2868,146 @@ var gmxProtocolModule = {
2410
2868
  ]
2411
2869
  };
2412
2870
  registerProtocolModule(gmxProtocolModule);
2871
+
2872
+ // src/protocols/evm/hyperliquid/support.ts
2873
+ var HYPERLIQUID_SUPPORTED_CHAIN_IDS = [999, 998];
2874
+ function isHyperliquidChainSupported(chainId) {
2875
+ return HYPERLIQUID_SUPPORTED_CHAIN_IDS.includes(chainId);
2876
+ }
2877
+
2878
+ // src/protocols/evm/hyperliquid/index.ts
2879
+ var HYPERLIQUID_PROTOCOL_ID = "hyperliquid";
2880
+ var hyperliquidProtocolModule = {
2881
+ id: HYPERLIQUID_PROTOCOL_ID,
2882
+ chainCategory: "evm",
2883
+ isChainSupported(ctx) {
2884
+ if (ctx.chainCategory !== "evm") return false;
2885
+ const chainId = typeof ctx.chainId === "number" ? ctx.chainId : Number(ctx.chainId);
2886
+ return Number.isFinite(chainId) && isHyperliquidChainSupported(chainId);
2887
+ },
2888
+ isTokenSupported(token) {
2889
+ if (token.category !== "evm") return false;
2890
+ return token.kind === "erc20" || token.kind === "native";
2891
+ },
2892
+ actions: [
2893
+ {
2894
+ id: "hyperliquid.limitOrder",
2895
+ protocolId: HYPERLIQUID_PROTOCOL_ID,
2896
+ chainCategory: "evm",
2897
+ description: "Place a Hyperliquid limit/IoC order via HyperEVM CoreWriter",
2898
+ commonParams: ["keyGen", "purposeText", "useCustomGas"],
2899
+ params: {
2900
+ coin: { type: "string", required: true, description: "Market coin e.g. BTC" },
2901
+ isBuy: { type: "boolean", required: true, description: "true for buy/long, false for sell/short" },
2902
+ limitPxHuman: { type: "string", required: true, description: "Limit price" },
2903
+ szHuman: { type: "string", required: true, description: "Order size in coin units" },
2904
+ marketKind: { type: "string", required: false, description: "perp (default) or spot" },
2905
+ tif: { type: "string", required: false, description: "gtc, ioc, or alo" },
2906
+ dex: { type: "string", required: false, description: "HIP-3 dex name when applicable" }
2907
+ }
2908
+ },
2909
+ {
2910
+ id: "hyperliquid.close",
2911
+ protocolId: HYPERLIQUID_PROTOCOL_ID,
2912
+ chainCategory: "evm",
2913
+ description: "Close or reduce a perp via IoC reduce-only limit order (CoreWriter)",
2914
+ commonParams: ["keyGen", "purposeText", "useCustomGas"],
2915
+ params: {
2916
+ coin: { type: "string", required: true, description: "Market coin" },
2917
+ isLong: { type: "boolean", required: true, description: "true if closing a long position" },
2918
+ limitPxHuman: { type: "string", required: true, description: "Limit price" },
2919
+ szHuman: { type: "string", required: true, description: "Size to close in coin units" }
2920
+ }
2921
+ },
2922
+ {
2923
+ id: "hyperliquid.cancel",
2924
+ protocolId: HYPERLIQUID_PROTOCOL_ID,
2925
+ chainCategory: "evm",
2926
+ description: "Cancel a Hyperliquid open order via CoreWriter",
2927
+ commonParams: ["keyGen", "purposeText", "useCustomGas"],
2928
+ params: {
2929
+ coin: { type: "string", required: true, description: "Market coin" },
2930
+ oid: { type: "number", required: true, description: "Order id from openOrders" }
2931
+ }
2932
+ },
2933
+ {
2934
+ id: "hyperliquid.usdTransfer",
2935
+ protocolId: HYPERLIQUID_PROTOCOL_ID,
2936
+ chainCategory: "evm",
2937
+ description: "Move USDC between Hyperliquid spot and perp margin accounts",
2938
+ commonParams: ["keyGen", "purposeText", "useCustomGas"],
2939
+ params: {
2940
+ usdHuman: { type: "string", required: true, description: "USD amount" },
2941
+ toPerp: { type: "boolean", required: true, description: "true spot\u2192perp, false perp\u2192spot" }
2942
+ }
2943
+ },
2944
+ {
2945
+ id: "hyperliquid.vaultDeposit",
2946
+ protocolId: HYPERLIQUID_PROTOCOL_ID,
2947
+ chainCategory: "evm",
2948
+ description: "Deposit USD into a Hyperliquid vault",
2949
+ commonParams: ["keyGen", "purposeText", "useCustomGas"],
2950
+ params: {
2951
+ vaultAddress: { type: "string", required: true, description: "Vault address" },
2952
+ usdHuman: { type: "string", required: true, description: "USD amount" }
2953
+ }
2954
+ },
2955
+ {
2956
+ id: "hyperliquid.vaultWithdraw",
2957
+ protocolId: HYPERLIQUID_PROTOCOL_ID,
2958
+ chainCategory: "evm",
2959
+ description: "Withdraw USD from a Hyperliquid vault (includes accrued PnL)",
2960
+ commonParams: ["keyGen", "purposeText", "useCustomGas"],
2961
+ params: {
2962
+ vaultAddress: { type: "string", required: true, description: "Vault address" },
2963
+ usdHuman: { type: "string", required: true, description: "USD amount" }
2964
+ }
2965
+ },
2966
+ {
2967
+ id: "hyperliquid.stake",
2968
+ protocolId: HYPERLIQUID_PROTOCOL_ID,
2969
+ chainCategory: "evm",
2970
+ description: "Stake HYPE via CoreWriter",
2971
+ commonParams: ["keyGen", "purposeText", "useCustomGas"],
2972
+ params: {
2973
+ hypeHuman: { type: "string", required: true, description: "HYPE amount" }
2974
+ }
2975
+ },
2976
+ {
2977
+ id: "hyperliquid.unstake",
2978
+ protocolId: HYPERLIQUID_PROTOCOL_ID,
2979
+ chainCategory: "evm",
2980
+ description: "Unstake HYPE via CoreWriter",
2981
+ commonParams: ["keyGen", "purposeText", "useCustomGas"],
2982
+ params: {
2983
+ hypeHuman: { type: "string", required: true, description: "HYPE amount" }
2984
+ }
2985
+ },
2986
+ {
2987
+ id: "hyperliquid.delegate",
2988
+ protocolId: HYPERLIQUID_PROTOCOL_ID,
2989
+ chainCategory: "evm",
2990
+ description: "Delegate staked HYPE to a validator",
2991
+ commonParams: ["keyGen", "purposeText", "useCustomGas"],
2992
+ params: {
2993
+ hypeHuman: { type: "string", required: true, description: "HYPE amount" },
2994
+ validator: { type: "string", required: true, description: "Validator address" }
2995
+ }
2996
+ },
2997
+ {
2998
+ id: "hyperliquid.undelegate",
2999
+ protocolId: HYPERLIQUID_PROTOCOL_ID,
3000
+ chainCategory: "evm",
3001
+ description: "Undelegate HYPE from a validator",
3002
+ commonParams: ["keyGen", "purposeText", "useCustomGas"],
3003
+ params: {
3004
+ hypeHuman: { type: "string", required: true, description: "HYPE amount" },
3005
+ validator: { type: "string", required: true, description: "Validator address" }
3006
+ }
3007
+ }
3008
+ ]
3009
+ };
3010
+ registerProtocolModule(hyperliquidProtocolModule);
2413
3011
  var skillsDir = join(dirname(fileURLToPath(import.meta.url)), "skills");
2414
3012
  var SKILL_PROTOCOL_IDS = [
2415
3013
  "aave-v4",
@@ -2420,7 +3018,8 @@ var SKILL_PROTOCOL_IDS = [
2420
3018
  "euler-v2",
2421
3019
  "maple-syrup",
2422
3020
  "sky",
2423
- "gmx"
3021
+ "gmx",
3022
+ "hyperliquid"
2424
3023
  ];
2425
3024
  function getToolsForProtocol(protocolId) {
2426
3025
  return MCP_TOOL_DEFINITIONS.filter((t) => t.protocolId === protocolId);
@@ -2714,6 +3313,7 @@ registerProtocolModule(skyProtocolModule);
2714
3313
  registerProtocolModule(aaveV4ProtocolModule);
2715
3314
  registerProtocolModule(eulerV2ProtocolModule);
2716
3315
  registerProtocolModule(gmxProtocolModule);
3316
+ registerProtocolModule(hyperliquidProtocolModule);
2717
3317
  function getAgentCatalog() {
2718
3318
  return {
2719
3319
  protocols: getProtocolModules(),
@@ -2731,11 +3331,12 @@ function getAgentCatalog() {
2731
3331
  aaveV4: aaveV4ProtocolModule,
2732
3332
  eulerV2: eulerV2ProtocolModule,
2733
3333
  gmx: gmxProtocolModule,
3334
+ hyperliquid: hyperliquidProtocolModule,
2734
3335
  /** Prefer getAgentCatalogForMcp() or getMcpToolDefinitions() for MCP servers. */
2735
3336
  mcp: getAgentCatalogForMcp()
2736
3337
  };
2737
3338
  }
2738
3339
 
2739
- export { EVM_COMMON_PARAM_DOCS, MANAGEMENT_SIG_DOC, MCP_NON_SUBMIT_TOOL_NAMES, MCP_TOOL_DEFINITIONS, MCP_TOOL_INPUT_SCHEMAS, MCP_TOOL_OUTPUT_SCHEMAS, MULTISIGN_OUTPUT_DOC, MULTISIGN_SUBMIT_OUTPUT_DOC, PROTOCOL_SUPPORT_ADVISORS, chainDetailSchema, evmAddressSchema, evmMultisignCommonInputSchema, getActionsByChainCategory, getAgentCatalog, getAgentCatalogForMcp, getMcpToolByName, getMcpToolDefinitions, getMcpToolInputSchema, getMcpToolOutputSchema, getProtocolDiscoverySummary, getProtocolModules, getProtocolSkill, getProtocolSupportAdvisor, getToolsForProtocol, jsonObjectSchema, keyGenSchema, listProtocolSupportAdvisorIds, listProtocolsWithSkills, mcpAaveV4BorrowInputSchema, mcpAaveV4DepositInputSchema, mcpAaveV4RepayInputSchema, mcpAaveV4WithdrawInputSchema, mcpCurveDaoBuildSwapMultisignInputSchema, mcpCurveDaoQuoteInputSchema, mcpCurveDaoQuoteOutputSchema, mcpEthenaClaimInputSchema, mcpEthenaCooldownInputSchema, mcpEthenaRedeemInputSchema, mcpEthenaStakeInputSchema, mcpEulerV2BorrowRepayInputSchema, mcpEulerV2CollateralDepositInputSchema, mcpEulerV2CollateralWithdrawInputSchema, mcpEulerV2IsolatedBorrowInputSchema, mcpEulerV2IsolatedLendInputSchema, mcpEulerV2VaultWithdrawInputSchema, mcpGmxCancelInputSchema, mcpGmxDecreaseInputSchema, mcpGmxFetchGmApyInputSchema, mcpGmxFetchGmApyOutputSchema, mcpGmxFetchGmMarketsInputSchema, mcpGmxFetchGmMarketsOutputSchema, mcpGmxFetchMarketPricesInputSchema, mcpGmxFetchMarketPricesOutputSchema, mcpGmxFetchMarketsInputSchema, mcpGmxFetchMarketsOutputSchema, mcpGmxFetchOhlcvInputSchema, mcpGmxFetchOhlcvOutputSchema, mcpGmxFetchPositionsInputSchema, mcpGmxFetchPositionsOutputSchema, mcpGmxFetchStakingPowerInputSchema, mcpGmxFetchStakingPowerOutputSchema, mcpGmxGmDepositInputSchema, mcpGmxGmWithdrawInputSchema, mcpGmxIncreaseInputSchema, mcpServerSubmitOutputSchema as mcpGmxMultisignOutputSchema, mcpGmxStakeGmxInputSchema, mcpGmxUnstakeGmxInputSchema, mcpLidoClaimWithdrawalInputSchema, mcpLidoRequestWithdrawalsInputSchema, mcpLidoSubmitInputSchema, mcpLidoUnwrapWstEthInputSchema, mcpLidoWrapStEthInputSchema, mcpMapleDepositInputSchema, mcpMapleRequestRedeemInputSchema, mcpMultisignInput, multisignOutputSchema as mcpMultisignOutputSchema, mcpServerSubmitOutputSchema as mcpMultisignSubmitOutputSchema, mcpServerCommonInputSchema, mcpServerMultisignInput, mcpServerSubmitOutputSchema, mcpSkyLockstakeCloseInputSchema, mcpSkyLockstakeDrawInputSchema, mcpSkyLockstakeGetRewardInputSchema, mcpSkyLockstakeStakeInputSchema, mcpSkyLockstakeWipeInputSchema, mcpSkySusdsDepositInputSchema, mcpSkySusdsRedeemInputSchema, mcpUniswapV4BuildCollectFeesMultisignInputSchema, mcpUniswapV4BuildDecreaseLiquidityMultisignInputSchema, mcpUniswapV4BuildIncreaseLiquidityMultisignInputSchema, mcpUniswapV4BuildMintLiquidityMultisignInputSchema, mcpUniswapV4BuildSwapMultisignInputSchema, mcpUniswapV4CreateSwapInputSchema, mcpUniswapV4CreateSwapOutputSchema, mcpUniswapV4LpClaimInputSchema, mcpUniswapV4LpClaimOutputSchema, mcpUniswapV4LpCreatePositionInputSchema, mcpUniswapV4LpCreatePositionOutputSchema, mcpUniswapV4LpDecreaseInputSchema, mcpUniswapV4LpDecreaseOutputSchema, mcpUniswapV4LpIncreaseInputSchema, mcpUniswapV4LpIncreaseOutputSchema, mcpUniswapV4LpListPoolsInputSchema, mcpUniswapV4LpListPoolsOutputSchema, mcpUniswapV4LpListPositionsInputSchema, mcpUniswapV4LpListPositionsOutputSchema, mcpUniswapV4QuoteInputSchema, mcpUniswapV4QuoteOutputSchema, mcpUniswapV4RegisterPositionFromMintTxInputSchema, mcpUniswapV4RegisterPositionFromMintTxOutputSchema, mcpUniswapV4RegisterPositionNftInputSchema, mcpUniswapV4RegisterPositionNftOutputSchema, multisignOutputSchema, parseMcpToolInput, parseMcpToolOutput, parseMultisignBuilderOutput, uniswapQuoteTradeTypeSchema, zodSchemaToMcpJsonSchema };
3340
+ export { EVM_COMMON_PARAM_DOCS, MANAGEMENT_SIG_DOC, MCP_NON_SUBMIT_TOOL_NAMES, MCP_TOOL_DEFINITIONS, MCP_TOOL_INPUT_SCHEMAS, MCP_TOOL_OUTPUT_SCHEMAS, MULTISIGN_OUTPUT_DOC, MULTISIGN_SUBMIT_OUTPUT_DOC, PROTOCOL_SUPPORT_ADVISORS, chainDetailSchema, evmAddressSchema, evmMultisignCommonInputSchema, getActionsByChainCategory, getAgentCatalog, getAgentCatalogForMcp, getMcpToolByName, getMcpToolDefinitions, getMcpToolInputSchema, getMcpToolOutputSchema, getProtocolDiscoverySummary, getProtocolModules, getProtocolSkill, getProtocolSupportAdvisor, getToolsForProtocol, jsonObjectSchema, keyGenSchema, listProtocolSupportAdvisorIds, listProtocolsWithSkills, mcpAaveV4BorrowInputSchema, mcpAaveV4DepositInputSchema, mcpAaveV4RepayInputSchema, mcpAaveV4WithdrawInputSchema, mcpCurveDaoBuildSwapMultisignInputSchema, mcpCurveDaoQuoteInputSchema, mcpCurveDaoQuoteOutputSchema, mcpEthenaClaimInputSchema, mcpEthenaCooldownInputSchema, mcpEthenaRedeemInputSchema, mcpEthenaStakeInputSchema, mcpEulerV2BorrowRepayInputSchema, mcpEulerV2CollateralDepositInputSchema, mcpEulerV2CollateralWithdrawInputSchema, mcpEulerV2IsolatedBorrowInputSchema, mcpEulerV2IsolatedLendInputSchema, mcpEulerV2VaultWithdrawInputSchema, mcpGmxCancelInputSchema, mcpGmxDecreaseInputSchema, mcpGmxFetchGmApyInputSchema, mcpGmxFetchGmApyOutputSchema, mcpGmxFetchGmMarketsInputSchema, mcpGmxFetchGmMarketsOutputSchema, mcpGmxFetchMarketPricesInputSchema, mcpGmxFetchMarketPricesOutputSchema, mcpGmxFetchMarketsInputSchema, mcpGmxFetchMarketsOutputSchema, mcpGmxFetchOhlcvInputSchema, mcpGmxFetchOhlcvOutputSchema, mcpGmxFetchPositionsInputSchema, mcpGmxFetchPositionsOutputSchema, mcpGmxFetchStakingPowerInputSchema, mcpGmxFetchStakingPowerOutputSchema, mcpGmxGmDepositInputSchema, mcpGmxGmWithdrawInputSchema, mcpGmxIncreaseInputSchema, mcpServerSubmitOutputSchema as mcpGmxMultisignOutputSchema, mcpGmxStakeGmxInputSchema, mcpGmxUnstakeGmxInputSchema, mcpHyperliquidCancelInputSchema, mcpHyperliquidCloseInputSchema, mcpHyperliquidDelegateInputSchema, mcpHyperliquidFetchDelegationsInputSchema, mcpHyperliquidFetchDelegationsOutputSchema, mcpHyperliquidFetchMarketSnapshotInputSchema, mcpHyperliquidFetchMarketSnapshotOutputSchema, mcpHyperliquidFetchMarketsInputSchema, mcpHyperliquidFetchMarketsOutputSchema, mcpHyperliquidFetchOpenContextInputSchema, mcpHyperliquidFetchOpenContextOutputSchema, mcpHyperliquidFetchOpenOrdersInputSchema, mcpHyperliquidFetchOpenOrdersOutputSchema, mcpHyperliquidFetchPositionsInputSchema, mcpHyperliquidFetchPositionsOutputSchema, mcpHyperliquidFetchStakingSummaryInputSchema, mcpHyperliquidFetchStakingSummaryOutputSchema, mcpHyperliquidFetchUsdClassBalancesInputSchema, mcpHyperliquidFetchUsdClassBalancesOutputSchema, mcpHyperliquidFetchUserVaultEquitiesInputSchema, mcpHyperliquidFetchUserVaultEquitiesOutputSchema, mcpHyperliquidFetchVaultsInputSchema, mcpHyperliquidFetchVaultsOutputSchema, mcpHyperliquidLimitOrderInputSchema, mcpHyperliquidStakeInputSchema, mcpHyperliquidUndelegateInputSchema, mcpHyperliquidUnstakeInputSchema, mcpHyperliquidUsdTransferInputSchema, mcpHyperliquidVaultDepositInputSchema, mcpHyperliquidVaultWithdrawInputSchema, mcpLidoClaimWithdrawalInputSchema, mcpLidoRequestWithdrawalsInputSchema, mcpLidoSubmitInputSchema, mcpLidoUnwrapWstEthInputSchema, mcpLidoWrapStEthInputSchema, mcpMapleDepositInputSchema, mcpMapleRequestRedeemInputSchema, mcpMultisignInput, multisignOutputSchema as mcpMultisignOutputSchema, mcpServerSubmitOutputSchema as mcpMultisignSubmitOutputSchema, mcpServerCommonInputSchema, mcpServerMultisignInput, mcpServerSubmitOutputSchema, mcpSkyLockstakeCloseInputSchema, mcpSkyLockstakeDrawInputSchema, mcpSkyLockstakeGetRewardInputSchema, mcpSkyLockstakeStakeInputSchema, mcpSkyLockstakeWipeInputSchema, mcpSkySusdsDepositInputSchema, mcpSkySusdsRedeemInputSchema, mcpUniswapV4BuildCollectFeesMultisignInputSchema, mcpUniswapV4BuildDecreaseLiquidityMultisignInputSchema, mcpUniswapV4BuildIncreaseLiquidityMultisignInputSchema, mcpUniswapV4BuildMintLiquidityMultisignInputSchema, mcpUniswapV4BuildSwapMultisignInputSchema, mcpUniswapV4CreateSwapInputSchema, mcpUniswapV4CreateSwapOutputSchema, mcpUniswapV4LpClaimInputSchema, mcpUniswapV4LpClaimOutputSchema, mcpUniswapV4LpCreatePositionInputSchema, mcpUniswapV4LpCreatePositionOutputSchema, mcpUniswapV4LpDecreaseInputSchema, mcpUniswapV4LpDecreaseOutputSchema, mcpUniswapV4LpIncreaseInputSchema, mcpUniswapV4LpIncreaseOutputSchema, mcpUniswapV4LpListPoolsInputSchema, mcpUniswapV4LpListPoolsOutputSchema, mcpUniswapV4LpListPositionsInputSchema, mcpUniswapV4LpListPositionsOutputSchema, mcpUniswapV4QuoteInputSchema, mcpUniswapV4QuoteOutputSchema, mcpUniswapV4RegisterPositionFromMintTxInputSchema, mcpUniswapV4RegisterPositionFromMintTxOutputSchema, mcpUniswapV4RegisterPositionNftInputSchema, mcpUniswapV4RegisterPositionNftOutputSchema, multisignOutputSchema, parseMcpToolInput, parseMcpToolOutput, parseMultisignBuilderOutput, uniswapQuoteTradeTypeSchema, zodSchemaToMcpJsonSchema };
2740
3341
  //# sourceMappingURL=catalog.js.map
2741
3342
  //# sourceMappingURL=catalog.js.map