@continuumdao/ctm-mpc-defi 0.2.48 → 0.2.50

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.
Files changed (69) hide show
  1. package/dist/agent/catalog.cjs +1664 -5
  2. package/dist/agent/catalog.cjs.map +1 -1
  3. package/dist/agent/catalog.d.ts +2705 -7
  4. package/dist/agent/catalog.js +1599 -6
  5. package/dist/agent/catalog.js.map +1 -1
  6. package/dist/agent/skills/derive/SKILL.md +112 -0
  7. package/dist/agent/skills/hyperliquid/SKILL.md +22 -2
  8. package/dist/agent/skills/trueo/SKILL.md +64 -0
  9. package/dist/chains/evm/index.d.ts +118 -6
  10. package/dist/chains/near/index.d.ts +7 -1
  11. package/dist/chains/solana/index.d.ts +7 -1
  12. package/dist/core/index.cjs +3 -1
  13. package/dist/core/index.cjs.map +1 -1
  14. package/dist/core/index.d.ts +138 -7
  15. package/dist/core/index.js +3 -1
  16. package/dist/core/index.js.map +1 -1
  17. package/dist/index.cjs +3 -1
  18. package/dist/index.cjs.map +1 -1
  19. package/dist/index.d.ts +848 -16
  20. package/dist/index.js +3 -1
  21. package/dist/index.js.map +1 -1
  22. package/dist/protocols/evm/aave-v4/index.d.ts +600 -6
  23. package/dist/protocols/evm/aerodrome/index.cjs.map +1 -1
  24. package/dist/protocols/evm/aerodrome/index.d.ts +125 -5
  25. package/dist/protocols/evm/aerodrome/index.js.map +1 -1
  26. package/dist/protocols/evm/arcus/index.d.ts +66 -2
  27. package/dist/protocols/evm/circle-cctp/index.d.ts +71 -2
  28. package/dist/protocols/evm/compound-v3/index.d.ts +52 -1
  29. package/dist/protocols/evm/continuum-dao/index.d.ts +56 -1
  30. package/dist/protocols/evm/curve-dao/index.d.ts +66 -2
  31. package/dist/protocols/evm/derive/index.cjs +2655 -0
  32. package/dist/protocols/evm/derive/index.cjs.map +1 -0
  33. package/dist/protocols/evm/derive/index.d.ts +859 -0
  34. package/dist/protocols/evm/derive/index.js +2536 -0
  35. package/dist/protocols/evm/derive/index.js.map +1 -0
  36. package/dist/protocols/evm/ethena/index.d.ts +52 -1
  37. package/dist/protocols/evm/euler-v2/index.d.ts +115 -16
  38. package/dist/protocols/evm/gmx/index.d.ts +66 -2
  39. package/dist/protocols/evm/hyperliquid/index.cjs +545 -267
  40. package/dist/protocols/evm/hyperliquid/index.cjs.map +1 -1
  41. package/dist/protocols/evm/hyperliquid/index.d.ts +152 -7
  42. package/dist/protocols/evm/hyperliquid/index.js +535 -269
  43. package/dist/protocols/evm/hyperliquid/index.js.map +1 -1
  44. package/dist/protocols/evm/lido/index.d.ts +52 -1
  45. package/dist/protocols/evm/maple/index.d.ts +52 -1
  46. package/dist/protocols/evm/morpho/index.d.ts +115 -4
  47. package/dist/protocols/evm/pendle/index.cjs +3 -1
  48. package/dist/protocols/evm/pendle/index.cjs.map +1 -1
  49. package/dist/protocols/evm/pendle/index.d.ts +125 -5
  50. package/dist/protocols/evm/pendle/index.js +3 -1
  51. package/dist/protocols/evm/pendle/index.js.map +1 -1
  52. package/dist/protocols/evm/permit2/index.d.ts +14 -1
  53. package/dist/protocols/evm/sky/index.d.ts +52 -1
  54. package/dist/protocols/evm/trueo/index.cjs +2308 -0
  55. package/dist/protocols/evm/trueo/index.cjs.map +1 -0
  56. package/dist/protocols/evm/trueo/index.d.ts +1254 -0
  57. package/dist/protocols/evm/trueo/index.js +2165 -0
  58. package/dist/protocols/evm/trueo/index.js.map +1 -0
  59. package/dist/protocols/evm/uniswap-v4/index.d.ts +78 -4
  60. package/dist/protocols/evm/venice/index.d.ts +52 -1
  61. package/package.json +12 -2
  62. package/dist/buildBatch-tsEUVn_a.d.ts +0 -45
  63. package/dist/eip712Multisign-6oNIlObj.d.ts +0 -39
  64. package/dist/envelope-Cm-llShH.d.ts +0 -37
  65. package/dist/merklDistributor-CdqtZC9N.d.ts +0 -65
  66. package/dist/multisign-Dr0j9fHm.d.ts +0 -489
  67. package/dist/registry-BvsXh0-r.d.ts +0 -8
  68. package/dist/types-RJpoU4Pc.d.ts +0 -34
  69. package/dist/types-lIfv59N1.d.ts +0 -63
@@ -2,6 +2,7 @@ import { getAddress, parseAbi, stringToHex, keccak256, toBytes, isAddress, zeroA
2
2
  import { MidnightApi } from '@morpho-org/midnight-sdk/api';
3
3
  import { zodToJsonSchema } from 'zod-to-json-schema';
4
4
  import { z } from 'zod';
5
+ import '@msgpack/msgpack';
5
6
  import { createRequire } from 'module';
6
7
  import { fileURLToPath } from 'url';
7
8
  import { readFileSync } from 'fs';
@@ -1299,6 +1300,14 @@ function aliasField(o, target, ...sources) {
1299
1300
  const val = firstDefined(...sources.map((k) => o[k]));
1300
1301
  if (val != null) o[target] = val;
1301
1302
  }
1303
+ function normalizeHyperliquidTrailingOffsetType(o) {
1304
+ const raw = String(o.trailingOffsetType ?? "").trim().toLowerCase();
1305
+ if (!raw) return;
1306
+ if (raw === "price" || raw === "px" || raw === "distance") o.trailingOffsetType = "price";
1307
+ else if (raw === "percentage" || raw === "percent" || raw === "pct" || raw === "%") {
1308
+ o.trailingOffsetType = "percentage";
1309
+ }
1310
+ }
1302
1311
  function derivePurposeIfMissing(o, build) {
1303
1312
  const purposeText = String(o.purposeText ?? o.purpose ?? "").trim();
1304
1313
  if (purposeText) {
@@ -1375,18 +1384,40 @@ function preprocessHyperliquidLimitOrderInput(raw) {
1375
1384
  aliasField(o, "szHuman", "szHuman", "sz", "size");
1376
1385
  aliasField(o, "takeProfitTriggerPxHuman", "takeProfitTriggerPxHuman", "takeProfitPxHuman", "tpTriggerPxHuman", "targetPxHuman");
1377
1386
  aliasField(o, "stopLossTriggerPxHuman", "stopLossTriggerPxHuman", "stopLossPxHuman", "slTriggerPxHuman", "invalidationPxHuman");
1387
+ aliasField(o, "trailingOffsetHuman", "trailingOffsetHuman", "retracement", "trailingOffset");
1388
+ aliasField(o, "trailingOffsetType", "trailingOffsetType", "retracementUnit", "offsetType");
1389
+ aliasField(o, "trailingActivationPxHuman", "trailingActivationPxHuman", "activationPx", "activationPrice");
1390
+ normalizeHyperliquidTrailingOffsetType(o);
1378
1391
  derivePurposeIfMissing(o, (x) => {
1379
1392
  const coin = String(x.coin ?? "").trim();
1380
1393
  const side = x.isBuy === true || x.isBuy === "true" ? "buy" : "sell";
1381
1394
  const sz = String(x.szHuman ?? "").trim();
1382
1395
  const tp = String(x.takeProfitTriggerPxHuman ?? "").trim();
1383
1396
  const sl = String(x.stopLossTriggerPxHuman ?? "").trim();
1397
+ const trail = String(x.trailingOffsetHuman ?? "").trim();
1398
+ if (coin && sz && trail) return `HL trailing ${side} ${coin} ${sz}`;
1384
1399
  if (coin && sz && (tp || sl)) return `HL bracket ${side} ${coin} ${sz}`;
1385
1400
  if (coin && sz) return `HL limit ${side} ${coin} ${sz}`;
1386
1401
  return void 0;
1387
1402
  });
1388
1403
  return o;
1389
1404
  }
1405
+ function preprocessHyperliquidTrailingStopInput(raw) {
1406
+ const o = preprocessHyperliquidCoinInput(raw);
1407
+ if (!preprocessObject(o)) return raw;
1408
+ aliasField(o, "szHuman", "szHuman", "sz", "size");
1409
+ aliasField(o, "trailingOffsetHuman", "trailingOffsetHuman", "retracement", "trailingOffset");
1410
+ aliasField(o, "trailingOffsetType", "trailingOffsetType", "retracementUnit", "offsetType");
1411
+ aliasField(o, "trailingActivationPxHuman", "trailingActivationPxHuman", "activationPx", "activationPrice");
1412
+ normalizeHyperliquidTrailingOffsetType(o);
1413
+ derivePurposeIfMissing(o, (x) => {
1414
+ const coin = String(x.coin ?? "").trim();
1415
+ const offset = String(x.trailingOffsetHuman ?? "").trim();
1416
+ if (coin && offset) return `HL trailing stop ${coin} ${offset}`;
1417
+ return void 0;
1418
+ });
1419
+ return o;
1420
+ }
1390
1421
  function preprocessHyperliquidCloseInput(raw) {
1391
1422
  const o = preprocessHyperliquidCoinInput(raw);
1392
1423
  if (!preprocessObject(o)) return raw;
@@ -2713,7 +2744,15 @@ var MCP_NON_SUBMIT_TOOL_NAMES = /* @__PURE__ */ new Set([
2713
2744
  "ctm_uniswap_v4_limit_order_quote",
2714
2745
  "ctm_uniswap_v4_fetch_limit_orders",
2715
2746
  "ctm_uniswap_v4_check_permissions",
2716
- "ctm_uniswap_v4_kyc_apply_link"
2747
+ "ctm_uniswap_v4_kyc_apply_link",
2748
+ "search_prediction_markets",
2749
+ "get_prediction_market",
2750
+ "ctm_trueo_fetch_categories",
2751
+ "ctm_trueo_fetch_trending",
2752
+ "ctm_trueo_search_markets",
2753
+ "ctm_trueo_fetch_market",
2754
+ "ctm_trueo_fetch_chance_series",
2755
+ "ctm_trueo_fetch_orderbook"
2717
2756
  ]);
2718
2757
 
2719
2758
  // src/agent/schemas/protocols.ts
@@ -4569,6 +4608,34 @@ var mcpGmxFetchOhlcvOutputSchema = z.object({
4569
4608
  candleCount: z.number().int().nonnegative(),
4570
4609
  candles: z.array(gmxOhlcvCandleSchema)
4571
4610
  });
4611
+ function hyperliquidFloatToWire(value) {
4612
+ const n = typeof value === "number" ? value : Number.parseFloat(String(value).trim());
4613
+ if (!Number.isFinite(n)) throw new Error("Invalid Hyperliquid wire number.");
4614
+ const rounded = n.toFixed(8);
4615
+ if (Math.abs(Number.parseFloat(rounded) - n) >= 1e-12) {
4616
+ throw new Error(`Hyperliquid wire value ${value} has too many decimal places.`);
4617
+ }
4618
+ const normalized = Number(rounded === "-0" ? "0" : rounded);
4619
+ return String(normalized);
4620
+ }
4621
+ var HYPERLIQUID_TRAILING_ACTIVATION_PX_ERROR = "Invalid trailing activation price.";
4622
+ var POSITIVE_DECIMAL_RE = /^\d+(\.\d+)?$/;
4623
+ function parseHyperliquidTrailingActivationPx(value) {
4624
+ if (value == null) return null;
4625
+ const raw = String(value).trim().replace(/,/g, "");
4626
+ if (!raw) return null;
4627
+ if (!POSITIVE_DECIMAL_RE.test(raw)) {
4628
+ throw new Error(HYPERLIQUID_TRAILING_ACTIVATION_PX_ERROR);
4629
+ }
4630
+ const px = Number.parseFloat(raw);
4631
+ if (!Number.isFinite(px) || px <= 0) {
4632
+ throw new Error(HYPERLIQUID_TRAILING_ACTIVATION_PX_ERROR);
4633
+ }
4634
+ hyperliquidFloatToWire(raw);
4635
+ return raw;
4636
+ }
4637
+
4638
+ // src/agent/schemas/hyperliquid.ts
4572
4639
  function mcpHyperliquidMultisignInput(fields, preprocess) {
4573
4640
  const inner = evmMultisignCommonInputSchema.extend(fields);
4574
4641
  const shaped = preprocess ? z.preprocess(preprocess, inner) : inner;
@@ -4716,7 +4783,16 @@ var mcpHyperliquidFetchOpenOrdersOutputSchema = z.object({
4716
4783
  sz: z.string(),
4717
4784
  oid: z.number().describe("Pass to build_cancel_multisign as oid"),
4718
4785
  timestamp: z.number(),
4719
- reduceOnly: z.boolean().optional()
4786
+ reduceOnly: z.boolean().optional(),
4787
+ isTrigger: z.boolean().optional(),
4788
+ triggerPx: z.string().optional(),
4789
+ triggerCondition: z.string().optional(),
4790
+ orderType: z.string().optional(),
4791
+ trailingStop: z.object({
4792
+ retracement: z.string(),
4793
+ activationPx: z.string().nullable(),
4794
+ bestPx: z.string().nullable()
4795
+ }).nullable().optional()
4720
4796
  })
4721
4797
  )
4722
4798
  });
@@ -4841,6 +4917,16 @@ var mcpHyperliquidFetchDelegationsOutputSchema = z.object({
4841
4917
  )
4842
4918
  });
4843
4919
  var hyperliquidTpslExecModeSchema = z.enum(["limit_at_trigger", "market"]);
4920
+ var mcpHyperliquidTrailingActivationPxSchema = z.string().min(1).optional().superRefine((value, ctx) => {
4921
+ try {
4922
+ parseHyperliquidTrailingActivationPx(value);
4923
+ } catch (e) {
4924
+ ctx.addIssue({
4925
+ code: z.ZodIssueCode.custom,
4926
+ message: e instanceof Error ? e.message : "Invalid trailing activation price."
4927
+ });
4928
+ }
4929
+ }).describe("Optional mark price where trailing tracking begins. Omit to start immediately.");
4844
4930
  var mcpHyperliquidLimitOrderInputSchema = mcpHyperliquidMultisignInput(
4845
4931
  {
4846
4932
  coin: z.string().min(1).describe("coin from fetch_markets (name) or search_markets"),
@@ -4852,10 +4938,30 @@ var mcpHyperliquidLimitOrderInputSchema = mcpHyperliquidMultisignInput(
4852
4938
  dex: z.string().optional(),
4853
4939
  takeProfitTriggerPxHuman: z.string().min(1).optional().describe("Take-profit trigger price \u2014 with SL enables L1 normalTpsl bracket (EIP-712, not CoreWriter)."),
4854
4940
  stopLossTriggerPxHuman: z.string().min(1).optional().describe("Stop-loss trigger price \u2014 with TP enables L1 normalTpsl bracket (EIP-712, not CoreWriter)."),
4855
- tpslExecMode: hyperliquidTpslExecModeSchema.optional().describe("Trigger execution: limit_at_trigger (default) or market.")
4941
+ tpslExecMode: hyperliquidTpslExecModeSchema.optional().describe("Trigger execution: limit_at_trigger (default) or market."),
4942
+ trailingOffsetHuman: z.string().min(1).optional().describe(
4943
+ "Trailing-stop retracement (price distance or percent). Cannot combine with stopLossTriggerPxHuman. Perp only \u2014 EIP-712 /exchange."
4944
+ ),
4945
+ trailingOffsetType: z.enum(["price", "percentage"]).optional().describe("price = fixed distance; percentage = retracement rate (default)."),
4946
+ trailingActivationPxHuman: mcpHyperliquidTrailingActivationPxSchema
4856
4947
  },
4857
4948
  preprocessHyperliquidLimitOrderInput
4858
4949
  );
4950
+ var mcpHyperliquidTrailingStopInputSchema = mcpHyperliquidMultisignInput(
4951
+ {
4952
+ coin: z.string().min(1).describe("perp coin from fetch_markets or fetch_positions"),
4953
+ isBuy: agentBooleanSchema().describe(
4954
+ "Execution side: false to close a long / open a short; true to close a short / open a long."
4955
+ ),
4956
+ szHuman: z.string().min(1).describe("Size in coin units (use position size to close)."),
4957
+ reduceOnly: agentBooleanSchema().optional().describe("true (default) closes/reduces; false can open a position."),
4958
+ trailingOffsetHuman: z.string().min(1).describe("Retracement distance or percent (e.g. 2 or 2%)."),
4959
+ trailingOffsetType: z.enum(["price", "percentage"]).optional().describe("price = fixed distance; percentage = retracement rate (default)."),
4960
+ trailingActivationPxHuman: mcpHyperliquidTrailingActivationPxSchema,
4961
+ dex: z.string().optional()
4962
+ },
4963
+ preprocessHyperliquidTrailingStopInput
4964
+ );
4859
4965
  var mcpHyperliquidCloseInputSchema = mcpHyperliquidMultisignInput(
4860
4966
  {
4861
4967
  coin: z.string().min(1),
@@ -5187,6 +5293,512 @@ var mcpArcusBuildWithdrawMultisignInputSchema = withMultisignKeySourceRefine(
5187
5293
  product: arcusFundProductSchema
5188
5294
  })
5189
5295
  );
5296
+ var mcpTrueoFetchCategoriesInputSchema = z.object({}).passthrough();
5297
+ var mcpTrueoFetchCategoriesOutputSchema = z.object({
5298
+ categories: z.array(z.object({ id: z.number(), name: z.string() })),
5299
+ chainId: z.number()
5300
+ });
5301
+ var mcpTrueoMarketRowSchema = z.object({
5302
+ address: z.string(),
5303
+ question: z.string(),
5304
+ rules: z.string(),
5305
+ source: z.string(),
5306
+ categories: z.array(z.string()),
5307
+ size: z.string(),
5308
+ tvl: z.number().nullable(),
5309
+ yesTokenAddress: z.string(),
5310
+ noTokenAddress: z.string(),
5311
+ yesPoolAddress: z.string(),
5312
+ noPoolAddress: z.string(),
5313
+ paymentTokenAddress: z.string(),
5314
+ paymentTokenSymbol: z.string(),
5315
+ paymentTokenDecimals: z.number(),
5316
+ endOfTrading: z.number(),
5317
+ status: z.number(),
5318
+ outcome: z.number().optional(),
5319
+ statusUpdatedAt: z.string().nullable().optional(),
5320
+ imageUrl: z.string().nullable(),
5321
+ yesPoolTick: z.number().nullable(),
5322
+ noPoolTick: z.number().nullable(),
5323
+ yesPoolSqrtPriceX96: z.string().nullable(),
5324
+ noPoolSqrtPriceX96: z.string().nullable(),
5325
+ yesPrice: z.number().nullable(),
5326
+ noPrice: z.number().nullable(),
5327
+ yesPriceLabel: z.string().nullable(),
5328
+ noPriceLabel: z.string().nullable(),
5329
+ expiresAt: z.string().nullable(),
5330
+ expiresAtLabel: z.string().nullable(),
5331
+ chainId: z.number(),
5332
+ network: z.string()
5333
+ });
5334
+ var mcpTrueoFetchTrendingInputSchema = z.object({
5335
+ limit: z.number().int().positive().optional(),
5336
+ includeAll: agentOptionalBooleanSchema().describe(
5337
+ "If true, include older closed/resolved markets. Default: live and recently finished (14 days)."
5338
+ )
5339
+ });
5340
+ var mcpTrueoFetchTrendingOutputSchema = z.object({
5341
+ markets: z.array(mcpTrueoMarketRowSchema),
5342
+ notes: z.string(),
5343
+ hasMore: z.boolean().optional(),
5344
+ nextOffset: z.number().int().nonnegative().optional()
5345
+ });
5346
+ var mcpTrueoSearchMarketsInputSchema = z.object({
5347
+ query: z.string().optional().describe("Search haystack: question, rules, categories, address"),
5348
+ category: z.string().optional().describe("Category name from fetch_categories, e.g. Politics"),
5349
+ limit: z.number().int().positive().optional(),
5350
+ offset: z.number().int().nonnegative().optional(),
5351
+ includeAll: agentOptionalBooleanSchema().describe(
5352
+ "If true, include older closed/resolved markets. Default: live and recently finished (14 days)."
5353
+ ),
5354
+ excludeAddresses: z.array(z.string()).optional().describe("Skip these market addresses (after trending, pass the listed addresses).")
5355
+ });
5356
+ var mcpTrueoSearchMarketsOutputSchema = mcpTrueoFetchTrendingOutputSchema;
5357
+ var mcpTrueoFetchMarketInputSchema = z.object({
5358
+ marketAddress: evmAddressSchema.describe("Trueo market address")
5359
+ });
5360
+ var mcpTrueoFetchMarketOutputSchema = mcpTrueoMarketRowSchema;
5361
+ var mcpTrueoFetchChanceSeriesInputSchema = z.object({
5362
+ poolId: z.string().min(1).describe("Yes or No pool id from fetch_market"),
5363
+ from: z.number().optional(),
5364
+ to: z.number().optional(),
5365
+ resolution: z.string().optional().describe("Sample step in seconds (3600 = hourly). 1H/1D/1W/All coerce to hourly \u2014 Trueo rejects calendar 1D/1W."),
5366
+ lookbackDays: z.number().optional()
5367
+ });
5368
+ var mcpTrueoFetchChanceSeriesOutputSchema = z.object({
5369
+ poolId: z.string(),
5370
+ bars: z.array(
5371
+ z.object({
5372
+ timestamp: z.number(),
5373
+ open: z.number(),
5374
+ high: z.number(),
5375
+ low: z.number(),
5376
+ close: z.number()
5377
+ })
5378
+ ),
5379
+ from: z.number(),
5380
+ to: z.number(),
5381
+ resolution: z.string(),
5382
+ notes: z.string().optional()
5383
+ });
5384
+ var mcpTrueoFetchOrderbookInputSchema = z.object({
5385
+ marketAddress: evmAddressSchema,
5386
+ side: z.enum(["yes", "no"]).optional(),
5387
+ rpcUrl: z.string().min(1).optional().describe("Server-filled from chain registry. Agents should omit.")
5388
+ });
5389
+ var mcpTrueoFetchOrderbookOutputSchema = z.object({
5390
+ marketAddress: z.string(),
5391
+ side: z.enum(["yes", "no"]),
5392
+ poolId: z.string(),
5393
+ currentTick: z.number().nullable(),
5394
+ impliedPrice: z.number().nullable(),
5395
+ impliedPriceLabel: z.string().nullable(),
5396
+ levels: z.array(z.record(z.unknown())),
5397
+ recentTrades: z.array(z.record(z.unknown())),
5398
+ notes: z.string()
5399
+ });
5400
+ var mcpSearchPredictionMarketsInputSchema = z.object({
5401
+ query: z.string().optional().describe(
5402
+ "Pass the operator topic verbatim (case-insensitive title substring). Do not substitute a category name. Empty lists trending."
5403
+ ),
5404
+ category: z.string().optional().describe("Venue category, e.g. Politics"),
5405
+ venues: z.array(z.string()).optional().describe("Optional venue filter. v1: trueo"),
5406
+ trending: agentOptionalBooleanSchema().describe(
5407
+ "Trending board only when query and category are empty. Ignored when query is set."
5408
+ ),
5409
+ includeAll: agentOptionalBooleanSchema().describe(
5410
+ "If true, include older closed/resolved markets. Default: live and recently finished (14 days)."
5411
+ ),
5412
+ limit: z.number().int().positive().optional().describe("Page size. Default 10 (trending API max)."),
5413
+ offset: z.number().int().nonnegative().optional().describe("Search offset for the next page. Trending is page 1 only."),
5414
+ indexBase: z.number().int().nonnegative().optional().describe("Start #N at indexBase+1 so pages continue 11, 12, \u2026"),
5415
+ excludeAddresses: z.array(z.string()).optional().describe("Skip these venueMarketIds (after trending, pass the listed ids).")
5416
+ });
5417
+ var mcpPredictionMarketRowSchema = z.object({
5418
+ venue: z.string(),
5419
+ venueMarketId: z.string(),
5420
+ question: z.string(),
5421
+ categories: z.array(z.string()),
5422
+ yesPrice: z.number().nullable(),
5423
+ noPrice: z.number().nullable(),
5424
+ yesPriceLabel: z.string().nullable(),
5425
+ noPriceLabel: z.string().nullable(),
5426
+ volume: z.string(),
5427
+ tvl: z.number().nullable(),
5428
+ expiresAt: z.string().nullable(),
5429
+ expiresAtLabel: z.string().nullable(),
5430
+ tradingEndsLabel: z.string().optional(),
5431
+ endOfTrading: z.number().optional(),
5432
+ status: z.string(),
5433
+ outcome: z.number().optional(),
5434
+ statusUpdatedAt: z.string().nullable().optional(),
5435
+ resolutionLabel: z.string().nullable().optional(),
5436
+ chainId: z.number(),
5437
+ paymentSymbol: z.string(),
5438
+ tradable: z.boolean(),
5439
+ index: z.number().int().positive().optional(),
5440
+ rules: z.string().optional(),
5441
+ source: z.string().optional(),
5442
+ imageUrl: z.string().nullable().optional(),
5443
+ ohlc: z.array(
5444
+ z.object({
5445
+ timestamp: z.number(),
5446
+ open: z.number(),
5447
+ high: z.number(),
5448
+ low: z.number(),
5449
+ close: z.number()
5450
+ })
5451
+ ).optional().describe("Hourly Yes-chance samples for the Mini App graph (get_prediction_market).")
5452
+ });
5453
+ var mcpSearchPredictionMarketsOutputSchema = z.object({
5454
+ markets: z.array(mcpPredictionMarketRowSchema),
5455
+ notes: z.string(),
5456
+ hasMore: z.boolean().optional(),
5457
+ nextOffset: z.number().int().nonnegative().optional(),
5458
+ nextIndexBase: z.number().int().nonnegative().optional(),
5459
+ includeAll: z.boolean().optional()
5460
+ });
5461
+ var mcpListMyPredictionMarketsInputSchema = z.object({
5462
+ tokenAddresses: z.array(z.string()).optional().describe("YES/NO token addresses from get_token_registry (or added after a bet)."),
5463
+ marketAddresses: z.array(z.string()).optional().describe("Trueo market addresses from prior bets.")
5464
+ });
5465
+ var mcpListMyPredictionMarketsOutputSchema = mcpSearchPredictionMarketsOutputSchema;
5466
+ var mcpGetPredictionMarketInputSchema = z.object({
5467
+ venue: z.string().optional().describe("Default trueo"),
5468
+ venueMarketId: z.string().min(1).describe("Venue id (Trueo: market address)")
5469
+ });
5470
+ var mcpGetPredictionMarketOutputSchema = mcpPredictionMarketRowSchema.passthrough();
5471
+ var mcpTrueoWrapTydInputSchema = mcpMultisignInput({
5472
+ amountHuman: z.string().min(1).describe("USDC amount to deposit into the TYD vault")
5473
+ });
5474
+ var mcpTrueoUnwrapTydInputSchema = mcpMultisignInput({
5475
+ amountHuman: z.string().min(1).describe("TYD share amount to redeem for USDC")
5476
+ });
5477
+ var mcpTrueoMintInputSchema = mcpMultisignInput({
5478
+ marketAddress: evmAddressSchema,
5479
+ amountHuman: z.string().min(1).describe("TYD (or USDC when paymentKind=usdc) amount"),
5480
+ paymentKind: z.enum(["tyd", "usdc"]).optional()
5481
+ });
5482
+ var mcpTrueoBurnInputSchema = mcpTrueoMintInputSchema;
5483
+ var mcpTrueoRedeemInputSchema = mcpTrueoMintInputSchema;
5484
+ var mcpTrueoSwapInputSchema = mcpMultisignInput({
5485
+ marketAddress: evmAddressSchema,
5486
+ side: z.enum(["yes", "no"]),
5487
+ amountHuman: z.string().min(1).describe("TYD amount in"),
5488
+ amountOutMinimumHuman: z.string().optional()
5489
+ });
5490
+ var mcpTrueoCreateOrderInputSchema = mcpMultisignInput({
5491
+ marketAddress: evmAddressSchema,
5492
+ side: z.enum(["yes", "no"]),
5493
+ amountHuman: z.string().min(1),
5494
+ tickLower: z.number().int(),
5495
+ tickUpper: z.number().int(),
5496
+ enablePartialFill: agentOptionalBooleanSchema()
5497
+ });
5498
+ var mcpTrueoCancelOrderInputSchema = mcpMultisignInput({
5499
+ marketAddress: evmAddressSchema,
5500
+ side: z.enum(["yes", "no"]),
5501
+ orderId: z.number().int().nonnegative()
5502
+ });
5503
+ function mcpDeriveMultisignInput(fields) {
5504
+ return withMultisignKeySourceRefine(evmMultisignCommonInputSchema.extend(fields));
5505
+ }
5506
+ var deriveAuthSchema = z.object({
5507
+ wallet: z.string().min(1),
5508
+ timestamp: z.string().min(1),
5509
+ signature: z.string().min(1)
5510
+ }).optional().describe("Server-filled EIP-191 login (X-DeriveWallet / Timestamp / Signature). Agents must not pass auth.");
5511
+ var deriveNetworkSchema = z.enum(["mainnet", "testnet"]).optional();
5512
+ var deriveFetchBaseSchema = z.object({
5513
+ chainId: z.coerce.number().int().positive().optional().describe("Asset-row chain (dialog context). Trading is always Derive API."),
5514
+ network: deriveNetworkSchema
5515
+ });
5516
+ var deriveWalletSchema = deriveFetchBaseSchema.extend({
5517
+ wallet: evmAddressSchema.optional(),
5518
+ executorAddress: evmAddressSchema.optional().describe("MPC executor \u2014 same address is the Derive owner on every chain."),
5519
+ auth: deriveAuthSchema
5520
+ });
5521
+ var deriveOhlcvIntervalSchema = z.enum(["1m", "5m", "15m", "30m", "1h", "4h", "1d", "1w"]);
5522
+ var deriveOhlcvCandleSchema = z.object({
5523
+ timestampMs: z.number(),
5524
+ open: z.string(),
5525
+ high: z.string(),
5526
+ low: z.string(),
5527
+ close: z.string(),
5528
+ volume: z.string()
5529
+ });
5530
+ var mcpDeriveFetchCurrenciesInputSchema = deriveFetchBaseSchema;
5531
+ var mcpDeriveFetchCurrenciesOutputSchema = z.object({
5532
+ currencies: z.array(z.object({ currency: z.string() })),
5533
+ network: z.string().optional()
5534
+ });
5535
+ var mcpDeriveFetchOptionChainInputSchema = deriveFetchBaseSchema.extend({
5536
+ currency: z.string().min(1).describe("Underlying currency e.g. ETH"),
5537
+ expired: z.boolean().optional()
5538
+ });
5539
+ var mcpDeriveFetchOptionChainOutputSchema = z.object({
5540
+ currency: z.string(),
5541
+ instrumentCount: z.number(),
5542
+ callCount: z.number(),
5543
+ putCount: z.number(),
5544
+ expiries: z.array(
5545
+ z.object({
5546
+ expiryYmd: z.string(),
5547
+ expiryUnix: z.number().nullable(),
5548
+ callCount: z.number(),
5549
+ putCount: z.number(),
5550
+ minStrike: z.string().nullable(),
5551
+ maxStrike: z.string().nullable()
5552
+ })
5553
+ ),
5554
+ notes: z.string(),
5555
+ network: z.string().optional()
5556
+ });
5557
+ var mcpDeriveFetchTickersInputSchema = deriveFetchBaseSchema.extend({
5558
+ currency: z.string().min(1).describe("Underlying e.g. ETH"),
5559
+ expiryDate: z.union([z.string().min(1), z.number().int().positive()]).describe("YYYYMMDD from fetch_option_chain. String or number (20260925). 2026-09-25 is ok."),
5560
+ optionType: z.enum(["C", "P"]).optional().describe("Calls only or puts only. Omit for both."),
5561
+ ladder: z.enum(["atm", "all"]).optional().describe("Default atm (~9 strikes around index). Use all only when the operator wants every strike.")
5562
+ });
5563
+ var mcpDeriveFetchTickersOutputSchema = z.object({
5564
+ currency: z.string(),
5565
+ expiryDate: z.string(),
5566
+ optionType: z.enum(["C", "P"]).nullable().optional(),
5567
+ ladder: z.enum(["atm", "all"]).optional(),
5568
+ indexPx: z.string().nullable().optional(),
5569
+ listedCount: z.number().optional(),
5570
+ tickerCount: z.number().optional(),
5571
+ callCount: z.number().optional(),
5572
+ putCount: z.number().optional(),
5573
+ tickers: z.array(
5574
+ z.object({
5575
+ instrumentName: z.string(),
5576
+ bidPx: z.string().nullable(),
5577
+ askPx: z.string().nullable(),
5578
+ markPx: z.string().nullable(),
5579
+ indexPx: z.string().nullable(),
5580
+ strike: z.string().nullable(),
5581
+ expiry: z.number().nullable(),
5582
+ expiryYmd: z.string().nullable(),
5583
+ optionType: z.enum(["C", "P"]).nullable(),
5584
+ greeks: z.unknown().nullable()
5585
+ })
5586
+ ),
5587
+ notes: z.string().optional(),
5588
+ network: z.string().optional()
5589
+ });
5590
+ var mcpDeriveSearchInstrumentsInputSchema = deriveFetchBaseSchema.extend({
5591
+ currency: z.string().min(1),
5592
+ query: z.string().min(1).describe("Instrument name fragment e.g. 3000-C or 20260626"),
5593
+ limit: z.coerce.number().int().positive().max(50).optional()
5594
+ });
5595
+ var mcpDeriveSearchInstrumentsOutputSchema = z.object({
5596
+ instruments: z.array(z.object({ instrumentName: z.string() })),
5597
+ network: z.string().optional()
5598
+ });
5599
+ var mcpDeriveFetchMarketSnapshotInputSchema = deriveFetchBaseSchema.extend({
5600
+ instrumentName: z.string().min(1).describe("e.g. ETH-20260626-3000-C")
5601
+ });
5602
+ var mcpDeriveFetchMarketSnapshotOutputSchema = z.object({
5603
+ snapshot: z.object({
5604
+ instrumentName: z.string(),
5605
+ livePrice: z.object({
5606
+ markPx: z.string().nullable(),
5607
+ indexPx: z.string().nullable(),
5608
+ bidPx: z.string().nullable(),
5609
+ askPx: z.string().nullable(),
5610
+ midUsd: z.string(),
5611
+ source: z.string()
5612
+ }),
5613
+ greeks: z.unknown().nullable(),
5614
+ fetchedAtMs: z.number()
5615
+ }),
5616
+ network: z.string().optional()
5617
+ });
5618
+ var mcpDeriveFetchOhlcvInputSchema = deriveFetchBaseSchema.extend({
5619
+ instrumentName: z.string().optional().describe("Required for option candles"),
5620
+ currency: z.string().optional().describe("Required for index candles (underlying spot)"),
5621
+ marketKind: z.enum(["option", "index"]).optional(),
5622
+ interval: deriveOhlcvIntervalSchema.optional(),
5623
+ lookbackDays: z.coerce.number().positive().optional(),
5624
+ lookbackHours: z.coerce.number().positive().optional(),
5625
+ startTimeMs: z.coerce.number().int().positive().optional(),
5626
+ endTimeMs: z.coerce.number().int().positive().optional()
5627
+ });
5628
+ var mcpDeriveFetchOhlcvOutputSchema = z.object({
5629
+ ohlcv: z.object({
5630
+ market: z.string(),
5631
+ coin: z.string(),
5632
+ interval: z.string(),
5633
+ marketKind: z.enum(["option", "index"]),
5634
+ startTimeMs: z.number(),
5635
+ endTimeMs: z.number(),
5636
+ expectedBars: z.number(),
5637
+ candleCount: z.number(),
5638
+ latestCandle: deriveOhlcvCandleSchema.nullable(),
5639
+ candles: z.array(deriveOhlcvCandleSchema),
5640
+ fetchedAtMs: z.number(),
5641
+ dataSource: z.literal("derive")
5642
+ }),
5643
+ dataSource: z.literal("derive"),
5644
+ network: z.string().optional()
5645
+ });
5646
+ var mcpDeriveOrderQuoteInputSchema = deriveFetchBaseSchema.extend({
5647
+ instrumentName: z.string().min(1),
5648
+ direction: z.enum(["buy", "sell"]),
5649
+ amount: z.string().min(1),
5650
+ limitPrice: z.string().min(1),
5651
+ subaccountId: agentCoercedIntSchema(z.number().int().positive()).optional().describe("Required by v3 public/order_quote. From ctm_derive_fetch_subaccounts. Never 0.")
5652
+ });
5653
+ var mcpDeriveOrderQuoteOutputSchema = z.object({
5654
+ quote: jsonObjectSchema,
5655
+ instrumentName: z.string(),
5656
+ network: z.string().optional()
5657
+ });
5658
+ var mcpDeriveFetchRiskUniversesInputSchema = deriveFetchBaseSchema;
5659
+ var mcpDeriveFetchRiskUniversesOutputSchema = z.object({
5660
+ universes: z.array(z.unknown()),
5661
+ notes: z.string(),
5662
+ network: z.string().optional()
5663
+ });
5664
+ var mcpDeriveFetchPendingDepositsInputSchema = deriveWalletSchema;
5665
+ var mcpDeriveFetchPendingDepositsOutputSchema = z.object({
5666
+ pending: z.array(z.unknown()),
5667
+ credited: z.boolean(),
5668
+ notes: z.string(),
5669
+ network: z.string().optional()
5670
+ });
5671
+ var mcpDeriveFetchSubaccountsInputSchema = deriveWalletSchema;
5672
+ var mcpDeriveFetchSubaccountsOutputSchema = z.object({
5673
+ wallet: z.string(),
5674
+ subaccounts: z.array(z.number()),
5675
+ funded: z.boolean(),
5676
+ notes: z.string(),
5677
+ next: z.array(z.string()),
5678
+ network: z.string().optional()
5679
+ });
5680
+ var deriveSubaccountInput = deriveWalletSchema.extend({
5681
+ subaccountId: agentCoercedIntSchema(z.number().int().positive()).describe(
5682
+ "subaccountId from ctm_derive_fetch_subaccounts. Never 0. If that list is empty, deposit on Ethereum L1 first."
5683
+ )
5684
+ });
5685
+ var mcpDeriveFetchPortfolioInputSchema = deriveSubaccountInput;
5686
+ var mcpDeriveFetchPortfolioOutputSchema = z.object({
5687
+ portfolio: z.unknown(),
5688
+ subaccountId: z.number(),
5689
+ wallet: z.string(),
5690
+ network: z.string().optional()
5691
+ });
5692
+ var mcpDeriveFetchPositionsInputSchema = deriveSubaccountInput;
5693
+ var mcpDeriveFetchPositionsOutputSchema = z.object({
5694
+ positions: z.array(z.unknown()),
5695
+ subaccountId: z.number(),
5696
+ wallet: z.string(),
5697
+ network: z.string().optional()
5698
+ });
5699
+ var mcpDeriveFetchOpenOrdersInputSchema = deriveSubaccountInput;
5700
+ var mcpDeriveFetchOpenOrdersOutputSchema = z.object({
5701
+ orders: z.array(z.unknown()),
5702
+ subaccountId: z.number(),
5703
+ wallet: z.string(),
5704
+ network: z.string().optional()
5705
+ });
5706
+ var deriveSubaccountIdField = agentCoercedIntSchema(z.number().int().positive()).describe(
5707
+ "subaccountId from ctm_derive_fetch_subaccounts. Collateral lives on Ethereum L1; EIP-712 orders do not move the current-chain token. If none exist, deposit first."
5708
+ );
5709
+ var mcpDeriveDepositNewSubaccountInputSchema = mcpDeriveMultisignInput({
5710
+ protocolAsset: evmAddressSchema.describe("collaterals[].address from ctm_derive_fetch_risk_universes"),
5711
+ underlyingErc20: evmAddressSchema.describe("collaterals[].erc20.underlying_erc20 on Ethereum L1 (usually USDC)"),
5712
+ amountHuman: z.string().min(1).describe("Deposit amount in underlying token units"),
5713
+ managerId: agentCoercedIntSchema(z.number().int().positive()).describe("Risk-universe manager_id"),
5714
+ actionManager: evmAddressSchema.optional().describe("Override ACTION_MANAGER (required on mainnet until published)")
5715
+ });
5716
+ var mcpDeriveRegisterDepositAddressInputSchema = deriveFetchBaseSchema.extend({
5717
+ wallet: evmAddressSchema,
5718
+ managerId: agentCoercedIntSchema(z.number().int().positive()).optional(),
5719
+ subaccountId: agentCoercedIntSchema(z.number().int().nonnegative()).optional()
5720
+ });
5721
+ var mcpDeriveRegisterDepositAddressOutputSchema = z.object({
5722
+ depositAddress: evmAddressSchema,
5723
+ wallet: evmAddressSchema,
5724
+ managerId: z.number().int().nullable(),
5725
+ subaccountId: z.number().int().nullable(),
5726
+ network: z.string(),
5727
+ notes: z.string()
5728
+ });
5729
+ var mcpDeriveDepositAddressTransferInputSchema = mcpDeriveMultisignInput({
5730
+ underlyingErc20: evmAddressSchema.describe("Ethereum L1 token to send (usually USDC)"),
5731
+ amountHuman: z.string().min(1),
5732
+ depositAddress: evmAddressSchema.describe("From ctm_derive_register_deposit_address")
5733
+ });
5734
+ var mcpDeriveSocketDepositInputSchema = mcpDeriveMultisignInput({
5735
+ token: evmAddressSchema.describe("USDC / WETH / WBTC on this chain, or native 0x0 to wrap WETH"),
5736
+ amountHuman: z.string().min(1),
5737
+ receiver: evmAddressSchema.optional().describe("Derive Chain receiver; defaults to executor")
5738
+ });
5739
+ var mcpDeriveHypeVaultDepositInputSchema = mcpDeriveMultisignInput({
5740
+ amountHuman: z.string().min(1).describe("HYPE amount"),
5741
+ token: evmAddressSchema.optional().describe("Native 0x0 or WHYPE 0x555\u20265"),
5742
+ vault: evmAddressSchema.optional()
5743
+ });
5744
+ var mcpDerivePlaceOrderInputSchema = mcpDeriveMultisignInput({
5745
+ instrumentName: z.string().min(1).describe("e.g. ETH-20260626-3000-C"),
5746
+ direction: z.enum(["buy", "sell"]),
5747
+ amount: z.string().min(1),
5748
+ limitPrice: z.string().min(1),
5749
+ maxFee: z.string().min(1),
5750
+ subaccountId: deriveSubaccountIdField,
5751
+ orderType: z.enum(["limit", "market"]).optional(),
5752
+ timeInForce: z.enum(["gtc", "ioc", "fok", "post_only"]).optional(),
5753
+ reduceOnly: z.boolean().optional(),
5754
+ label: z.string().optional(),
5755
+ ticketKind: z.enum(["limit", "stop_limit", "twap"]).optional(),
5756
+ triggerPrice: z.string().optional().describe("Required for stop_limit"),
5757
+ triggerType: z.enum(["stoploss", "takeprofit"]).optional(),
5758
+ triggerPriceType: z.enum(["mark", "index"]).optional(),
5759
+ algoDurationSec: agentCoercedIntSchema(z.number().int().min(60)).optional().describe("Required for twap"),
5760
+ algoNumSlices: agentCoercedIntSchema(z.number().int().min(2)).optional().describe("Required for twap")
5761
+ });
5762
+ var mcpDeriveReplaceOrderInputSchema = mcpDeriveMultisignInput({
5763
+ instrumentName: z.string().min(1),
5764
+ direction: z.enum(["buy", "sell"]),
5765
+ amount: z.string().min(1),
5766
+ limitPrice: z.string().min(1),
5767
+ maxFee: z.string().min(1),
5768
+ subaccountId: deriveSubaccountIdField,
5769
+ orderType: z.enum(["limit", "market"]).optional(),
5770
+ timeInForce: z.enum(["gtc", "ioc", "fok", "post_only"]).optional(),
5771
+ reduceOnly: z.boolean().optional(),
5772
+ label: z.string().optional(),
5773
+ ticketKind: z.enum(["limit", "stop_limit", "twap"]).optional(),
5774
+ triggerPrice: z.string().optional(),
5775
+ triggerType: z.enum(["stoploss", "takeprofit"]).optional(),
5776
+ triggerPriceType: z.enum(["mark", "index"]).optional(),
5777
+ algoDurationSec: agentCoercedIntSchema(z.number().int().min(60)).optional(),
5778
+ algoNumSlices: agentCoercedIntSchema(z.number().int().min(2)).optional(),
5779
+ orderIdToCancel: z.string().min(1).optional(),
5780
+ nonceToCancel: z.string().min(1).optional()
5781
+ }).refine((d) => Boolean(d.orderIdToCancel) !== Boolean(d.nonceToCancel), {
5782
+ message: "Replace requires exactly one of orderIdToCancel or nonceToCancel."
5783
+ });
5784
+ var mcpDeriveCancelInputSchema = mcpDeriveMultisignInput({
5785
+ instrumentName: z.string().min(1),
5786
+ orderId: z.string().min(1).describe("order_id from ctm_derive_fetch_open_orders"),
5787
+ subaccountId: deriveSubaccountIdField
5788
+ });
5789
+ var mcpDeriveTransferSpotInputSchema = mcpDeriveMultisignInput({
5790
+ fromSubaccountId: deriveSubaccountIdField,
5791
+ toSubaccountId: agentCoercedIntSchema(z.number().int().nonnegative()).describe(
5792
+ "Existing destination, or 0 to create an extra subaccount (requires newSubaccountManager)."
5793
+ ),
5794
+ newSubaccountManager: agentCoercedIntSchema(z.number().int().nonnegative()).describe(
5795
+ "Required when toSubaccountId is 0. Extra subaccounts only \u2014 first account is L1 deposit."
5796
+ ),
5797
+ asset: evmAddressSchema.describe("Protocol asset address"),
5798
+ amount: z.string().min(1),
5799
+ maxFeeUsd: z.string().optional(),
5800
+ subId: agentCoercedIntSchema(z.number().int().nonnegative()).optional()
5801
+ });
5190
5802
  var mcpCctpFeeFieldsSchema = z.object({
5191
5803
  feeTierUsed: z.enum(["low", "med", "high"]),
5192
5804
  maxFee: z.string().describe("Selected tier max fee in USDC base units (6 decimals)"),
@@ -5897,11 +6509,21 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
5897
6509
  actionId: "hyperliquid.limitOrder",
5898
6510
  protocolId: "hyperliquid",
5899
6511
  chainCategory: "evm",
5900
- description: "Create and submit mpc-auth multiSignRequest for a Hyperliquid limit/IoC order. Plain limit: CoreWriter (useCustomGas). When takeProfitTriggerPxHuman and/or stopLossTriggerPxHuman are set: one L1 EIP-712 normalTpsl bracket (entry + TP/SL) to /exchange \u2014 no useCustomGas.",
6512
+ description: "Create and submit mpc-auth multiSignRequest for a Hyperliquid limit/IoC order. Plain limit: CoreWriter (useCustomGas). When takeProfitTriggerPxHuman, stopLossTriggerPxHuman, and/or trailingOffsetHuman are set: L1 EIP-712 to /exchange (normalTpsl for TP/SL; trailingStop is a second signed action) \u2014 no useCustomGas. Trailing cannot combine with a fixed SL. Perp only for trailing.",
5901
6513
  prerequisites: ["keyGenId", "chainId 999 or 998", "coin", "limitPxHuman", "szHuman"],
5902
6514
  handler: { importPath: "protocols/evm/hyperliquid", exportName: "buildEvmMultisignBodyHyperliquidLimitOrderBatch" },
5903
6515
  inputZod: mcpHyperliquidLimitOrderInputSchema
5904
6516
  }),
6517
+ defineProtocolMcpTool({
6518
+ name: "ctm_hyperliquid_build_trailing_stop_multisign",
6519
+ actionId: "hyperliquid.trailingStop",
6520
+ protocolId: "hyperliquid",
6521
+ chainCategory: "evm",
6522
+ description: "Create and submit mpc-auth multiSignRequest for a Hyperliquid perp trailing stop (EIP-712 L1 trailingStop action to /exchange \u2014 no useCustomGas). Retracement is a price distance or percentage; optional activation price delays tracking. Typically reduce-only to close a position. isBuy false closes a long / opens a short.",
6523
+ prerequisites: ["keyGenId", "chainId 999 or 998", "coin", "szHuman", "trailingOffsetHuman"],
6524
+ handler: { importPath: "protocols/evm/hyperliquid", exportName: "buildHyperliquidTrailingStopMultisign" },
6525
+ inputZod: mcpHyperliquidTrailingStopInputSchema
6526
+ }),
5905
6527
  defineProtocolMcpTool({
5906
6528
  name: "ctm_hyperliquid_build_close_multisign",
5907
6529
  actionId: "hyperliquid.close",
@@ -6443,6 +7065,188 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
6443
7065
  prerequisites: ["keyGenId", "chainId", "comet", "steps"],
6444
7066
  handler: { importPath: "protocols/evm/compound-v3", exportName: "buildEvmMultisignBodyCompoundV3Bulker" },
6445
7067
  inputZod: mcpCompoundV3BulkerInputSchema
7068
+ }),
7069
+ defineProtocolMcpTool({
7070
+ name: "ctm_derive_build_deposit_new_subaccount_multisign",
7071
+ actionId: "derive.depositNewSubaccount",
7072
+ protocolId: "derive",
7073
+ chainCategory: "evm",
7074
+ description: "Ethereum L1 only (chainId 1 / 11155111): approve the underlying ERC-20 to ACTION_MANAGER, then depositToNewSubaccount. First credit creates the trading + fallback (manager 0) subaccounts. Arb/OP/Base: ctm_derive_build_socket_deposit_multisign. HyperEVM HYPE: ctm_derive_build_hype_vault_deposit_multisign. useCustomGas.",
7075
+ prerequisites: [
7076
+ "chainId 1 or 11155111",
7077
+ "managerId + protocolAsset + underlyingErc20 from ctm_derive_fetch_risk_universes",
7078
+ "Ethereum L1 collateral (usually USDC)"
7079
+ ],
7080
+ followUp: ["ctm_derive_fetch_pending_deposits", "ctm_derive_fetch_subaccounts"],
7081
+ handler: { importPath: "protocols/evm/derive", exportName: "buildDeriveDepositNewSubaccountMultisign" },
7082
+ inputZod: mcpDeriveDepositNewSubaccountInputSchema
7083
+ }),
7084
+ defineProtocolMcpTool({
7085
+ name: "ctm_derive_build_deposit_address_transfer_multisign",
7086
+ actionId: "derive.depositAddressTransfer",
7087
+ protocolId: "derive",
7088
+ chainCategory: "evm",
7089
+ description: "Ethereum L1 ERC-20 transfer to a registered Derive deposit address (standard / keeper sweep). Call ctm_derive_register_deposit_address first. useCustomGas.",
7090
+ prerequisites: ["chainId 1 or 11155111", "depositAddress from ctm_derive_register_deposit_address"],
7091
+ followUp: ["ctm_derive_fetch_pending_deposits", "ctm_derive_fetch_subaccounts"],
7092
+ handler: { importPath: "protocols/evm/derive", exportName: "buildDeriveDepositAddressTransferMultisign" },
7093
+ inputZod: mcpDeriveDepositAddressTransferInputSchema
7094
+ }),
7095
+ defineProtocolMcpTool({
7096
+ name: "ctm_derive_build_socket_deposit_multisign",
7097
+ actionId: "derive.socketDeposit",
7098
+ protocolId: "derive",
7099
+ chainCategory: "evm",
7100
+ description: "Socket FAST deposit of USDC/WETH/WBTC on Ethereum, Optimism, Base, or Arbitrum. Native 0x0 wraps to WETH. Pays a small native bridge fee. useCustomGas.",
7101
+ prerequisites: ["chainId 1 / 10 / 8453 / 42161", "token + amountHuman"],
7102
+ followUp: ["ctm_derive_fetch_pending_deposits", "ctm_derive_fetch_subaccounts"],
7103
+ handler: { importPath: "protocols/evm/derive", exportName: "buildDeriveSocketDepositMultisign" },
7104
+ inputZod: mcpDeriveSocketDepositInputSchema
7105
+ }),
7106
+ defineProtocolMcpTool({
7107
+ name: "ctm_derive_build_hype_vault_deposit_multisign",
7108
+ actionId: "derive.hypeVaultDeposit",
7109
+ protocolId: "derive",
7110
+ chainCategory: "evm",
7111
+ description: "HyperEVM (999) HYPE vault: wrap native HYPE to WHYPE if needed, approve, deposit. First credit creates a Standard Margin subaccount. useCustomGas.",
7112
+ prerequisites: ["chainId 999", "amountHuman"],
7113
+ followUp: ["ctm_derive_fetch_pending_deposits", "ctm_derive_fetch_subaccounts"],
7114
+ handler: { importPath: "protocols/evm/derive", exportName: "buildDeriveHypeVaultDepositMultisign" },
7115
+ inputZod: mcpDeriveHypeVaultDepositInputSchema
7116
+ }),
7117
+ defineProtocolMcpTool({
7118
+ name: "ctm_derive_build_place_order_multisign",
7119
+ actionId: "derive.placeOrder",
7120
+ protocolId: "derive",
7121
+ chainCategory: "evm",
7122
+ description: "EIP-712 Derive options order (delivery derive_exchange). Requires subaccountId from ctm_derive_fetch_subaccounts. Does not move the current-chain token unless that row funded the account. No useCustomGas.",
7123
+ prerequisites: [
7124
+ "subaccountId from ctm_derive_fetch_subaccounts",
7125
+ "funded Derive collateral (L1 / Socket / HYPE vault)",
7126
+ "instrumentName, direction, amount, limitPrice, maxFee"
7127
+ ],
7128
+ handler: { importPath: "protocols/evm/derive", exportName: "buildDerivePlaceOrderMultisign" },
7129
+ inputZod: mcpDerivePlaceOrderInputSchema
7130
+ }),
7131
+ defineProtocolMcpTool({
7132
+ name: "ctm_derive_build_replace_order_multisign",
7133
+ actionId: "derive.replaceOrder",
7134
+ protocolId: "derive",
7135
+ chainCategory: "evm",
7136
+ description: "EIP-712 replace of a Derive open order. Requires subaccountId from ctm_derive_fetch_subaccounts and exactly one of orderIdToCancel or nonceToCancel. EIP-712 orders do not move the current-chain token.",
7137
+ prerequisites: [
7138
+ "subaccountId from ctm_derive_fetch_subaccounts",
7139
+ "funded Derive collateral (L1 / Socket / HYPE vault)",
7140
+ "orderIdToCancel or nonceToCancel"
7141
+ ],
7142
+ handler: { importPath: "protocols/evm/derive", exportName: "buildDeriveReplaceOrderMultisign" },
7143
+ inputZod: mcpDeriveReplaceOrderInputSchema
7144
+ }),
7145
+ defineProtocolMcpTool({
7146
+ name: "ctm_derive_build_cancel_multisign",
7147
+ actionId: "derive.cancel",
7148
+ protocolId: "derive",
7149
+ chainCategory: "evm",
7150
+ description: "Cancel a Derive open order (v3 private/cancel via EIP-191 login delivery). Requires subaccountId from ctm_derive_fetch_subaccounts. Does not move the current-chain token.",
7151
+ prerequisites: [
7152
+ "subaccountId from ctm_derive_fetch_subaccounts",
7153
+ "orderId from ctm_derive_fetch_open_orders"
7154
+ ],
7155
+ handler: { importPath: "protocols/evm/derive", exportName: "buildDeriveCancelMultisign" },
7156
+ inputZod: mcpDeriveCancelInputSchema
7157
+ }),
7158
+ defineProtocolMcpTool({
7159
+ name: "ctm_derive_build_transfer_spot_multisign",
7160
+ actionId: "derive.transferSpot",
7161
+ protocolId: "derive",
7162
+ chainCategory: "evm",
7163
+ description: "EIP-712 transfer_spot. Use toSubaccountId 0 + newSubaccountManager to create an extra subaccount after the first funded one. First account is a deposit (L1 / Socket / HYPE), not this tool.",
7164
+ prerequisites: [
7165
+ "fromSubaccountId from ctm_derive_fetch_subaccounts",
7166
+ "funded Derive collateral (L1 / Socket / HYPE vault)"
7167
+ ],
7168
+ handler: { importPath: "protocols/evm/derive", exportName: "buildDeriveTransferSpotMultisign" },
7169
+ inputZod: mcpDeriveTransferSpotInputSchema
7170
+ }),
7171
+ defineProtocolMcpTool({
7172
+ name: "ctm_trueo_build_wrap_tyd_multisign",
7173
+ actionId: "trueo.wrap-tyd",
7174
+ protocolId: "trueo",
7175
+ chainCategory: "evm",
7176
+ description: "Mint TYD by depositing Base USDC into the Yearn ERC-4626 vault. Not a market bet. No marketAddress. 30-minute expiry.",
7177
+ prerequisites: ["keyGenId", "chainId 8453", "amountHuman (USDC)"],
7178
+ handler: { importPath: "protocols/evm/trueo", exportName: "buildEvmMultisignBodyTrueoWrapTyd" },
7179
+ inputZod: mcpTrueoWrapTydInputSchema
7180
+ }),
7181
+ defineProtocolMcpTool({
7182
+ name: "ctm_trueo_build_unwrap_tyd_multisign",
7183
+ actionId: "trueo.unwrap-tyd",
7184
+ protocolId: "trueo",
7185
+ chainCategory: "evm",
7186
+ description: "Redeem TYD shares back to Base USDC via the Yearn ERC-4626 vault. Not a market bet. No marketAddress. 30-minute expiry.",
7187
+ prerequisites: ["keyGenId", "chainId 8453", "amountHuman (TYD)"],
7188
+ handler: { importPath: "protocols/evm/trueo", exportName: "buildEvmMultisignBodyTrueoUnwrapTyd" },
7189
+ inputZod: mcpTrueoUnwrapTydInputSchema
7190
+ }),
7191
+ defineProtocolMcpTool({
7192
+ name: "ctm_trueo_build_mint_multisign",
7193
+ actionId: "trueo.mint",
7194
+ protocolId: "trueo",
7195
+ chainCategory: "evm",
7196
+ description: "Mint YES+NO from TYD (default) or USDC via TruthMarketAdapter. Base 8453. Not a bet \u2014 allowed near market close. 30-minute multiSign expiry.",
7197
+ prerequisites: ["keyGenId", "chainId 8453", "marketAddress from ctm_trueo_fetch_market", "amountHuman"],
7198
+ handler: { importPath: "protocols/evm/trueo", exportName: "buildEvmMultisignBodyTrueoMint" },
7199
+ inputZod: mcpTrueoMintInputSchema
7200
+ }),
7201
+ defineProtocolMcpTool({
7202
+ name: "ctm_trueo_build_burn_multisign",
7203
+ actionId: "trueo.burn",
7204
+ protocolId: "trueo",
7205
+ chainCategory: "evm",
7206
+ description: "Burn equal YES+NO back to TYD (or USDC via adapter). Not a bet. 30-minute expiry.",
7207
+ prerequisites: ["keyGenId", "chainId 8453", "marketAddress", "amountHuman"],
7208
+ handler: { importPath: "protocols/evm/trueo", exportName: "buildEvmMultisignBodyTrueoBurn" },
7209
+ inputZod: mcpTrueoBurnInputSchema
7210
+ }),
7211
+ defineProtocolMcpTool({
7212
+ name: "ctm_trueo_build_redeem_multisign",
7213
+ actionId: "trueo.redeem",
7214
+ protocolId: "trueo",
7215
+ chainCategory: "evm",
7216
+ description: "Redeem winning outcome tokens after resolution. Not a bet. 30-minute expiry.",
7217
+ prerequisites: ["keyGenId", "chainId 8453", "marketAddress", "amountHuman"],
7218
+ handler: { importPath: "protocols/evm/trueo", exportName: "buildEvmMultisignBodyTrueoRedeem" },
7219
+ inputZod: mcpTrueoRedeemInputSchema
7220
+ }),
7221
+ defineProtocolMcpTool({
7222
+ name: "ctm_trueo_build_swap_multisign",
7223
+ actionId: "trueo.swap",
7224
+ protocolId: "trueo",
7225
+ chainCategory: "evm",
7226
+ description: "Buy Yes or No with TYD via UniversalRouterAdapter V4 swap. Refuses if the market closes within 5 minutes. extraJSON stores endOfTrading for Get Sig/Execute. 30-minute expiry.",
7227
+ prerequisites: ["keyGenId", "chainId 8453", "marketAddress", "side", "amountHuman"],
7228
+ handler: { importPath: "protocols/evm/trueo", exportName: "buildEvmMultisignBodyTrueoSwap" },
7229
+ inputZod: mcpTrueoSwapInputSchema
7230
+ }),
7231
+ defineProtocolMcpTool({
7232
+ name: "ctm_trueo_build_create_order_multisign",
7233
+ actionId: "trueo.create-order",
7234
+ protocolId: "trueo",
7235
+ chainCategory: "evm",
7236
+ description: "Create an OrderManager limit order (Yes or No). Refuses if the market closes within 5 minutes. 30-minute expiry.",
7237
+ prerequisites: ["keyGenId", "chainId 8453", "marketAddress", "side", "amountHuman", "tickLower", "tickUpper"],
7238
+ handler: { importPath: "protocols/evm/trueo", exportName: "buildEvmMultisignBodyTrueoCreateOrder" },
7239
+ inputZod: mcpTrueoCreateOrderInputSchema
7240
+ }),
7241
+ defineProtocolMcpTool({
7242
+ name: "ctm_trueo_build_cancel_order_multisign",
7243
+ actionId: "trueo.cancel-order",
7244
+ protocolId: "trueo",
7245
+ chainCategory: "evm",
7246
+ description: "Cancel an OrderManager order. Not a bet \u2014 allowed after close. 30-minute expiry.",
7247
+ prerequisites: ["keyGenId", "chainId 8453", "marketAddress", "side", "orderId"],
7248
+ handler: { importPath: "protocols/evm/trueo", exportName: "buildEvmMultisignBodyTrueoCancelOrder" },
7249
+ inputZod: mcpTrueoCancelOrderInputSchema
6446
7250
  })
6447
7251
  ];
6448
7252
 
@@ -8723,6 +9527,310 @@ var CORE_MCP_TOOL_DEFINITIONS = [
8723
9527
  ],
8724
9528
  handler: { importPath: "protocols/evm/pendle", exportName: "buildEvmMultisignBodyPendleRedeemRewardsBatch" },
8725
9529
  inputZod: mcpPendleBuildRedeemRewardsMultisignInputSchema
9530
+ }),
9531
+ defineMcpTool({
9532
+ name: "ctm_derive_fetch_currencies",
9533
+ actionId: "derive.fetch-currencies",
9534
+ protocolId: "derive",
9535
+ chainCategory: "evm",
9536
+ description: "List Derive currencies from public/get_all_currencies. Used to map asset-row symbols (ETH, USDC, BTC, \u2026). load_defi_protocol derive activates defi:derive:market-data.",
9537
+ prerequisites: ["load_defi_protocol derive"],
9538
+ followUp: ["ctm_derive_fetch_option_chain", "ctm_derive_fetch_tickers", "ctm_derive_search_instruments"],
9539
+ handler: { importPath: "protocols/evm/derive", exportName: "deriveFetchCurrenciesSummary" },
9540
+ inputZod: mcpDeriveFetchCurrenciesInputSchema,
9541
+ outputZod: mcpDeriveFetchCurrenciesOutputSchema
9542
+ }),
9543
+ defineMcpTool({
9544
+ name: "ctm_derive_fetch_option_chain",
9545
+ actionId: "derive.fetch-option-chain",
9546
+ protocolId: "derive",
9547
+ chainCategory: "evm",
9548
+ description: "Compact Derive expiry ladder for a currency (counts + min/max strike per YYYYMMDD). Does not dump every instrument. Then ctm_derive_fetch_tickers for that expiry.",
9549
+ prerequisites: ["currency e.g. ETH"],
9550
+ followUp: ["ctm_derive_fetch_tickers", "ctm_derive_search_instruments", "ctm_derive_fetch_market_snapshot"],
9551
+ handler: { importPath: "protocols/evm/derive", exportName: "deriveFetchOptionChainAgentSummary" },
9552
+ inputZod: mcpDeriveFetchOptionChainInputSchema,
9553
+ outputZod: mcpDeriveFetchOptionChainOutputSchema
9554
+ }),
9555
+ defineMcpTool({
9556
+ name: "ctm_derive_fetch_tickers",
9557
+ actionId: "derive.fetch-tickers",
9558
+ protocolId: "derive",
9559
+ chainCategory: "evm",
9560
+ description: 'ATM strike/premium ladder for one Derive expiry (bid/ask/mark). expiryDate is YYYYMMDD \u2014 string or number. Default ~9 strikes around index; pass ladder:"all" for every strike.',
9561
+ prerequisites: ["currency", "expiryDate YYYYMMDD (string or number)"],
9562
+ followUp: ["ctm_derive_fetch_market_snapshot", "ctm_derive_order_quote", "ctm_derive_build_place_order_multisign"],
9563
+ handler: { importPath: "protocols/evm/derive", exportName: "deriveFetchTickersSummary" },
9564
+ inputZod: mcpDeriveFetchTickersInputSchema,
9565
+ outputZod: mcpDeriveFetchTickersOutputSchema
9566
+ }),
9567
+ defineMcpTool({
9568
+ name: "ctm_derive_search_instruments",
9569
+ actionId: "derive.search-instruments",
9570
+ protocolId: "derive",
9571
+ chainCategory: "evm",
9572
+ description: "Search Derive option instrument names by strike, expiry, or C/P suffix.",
9573
+ prerequisites: ["currency", "query"],
9574
+ followUp: ["ctm_derive_fetch_market_snapshot", "ctm_derive_build_place_order_multisign"],
9575
+ handler: { importPath: "protocols/evm/derive", exportName: "deriveSearchInstrumentsSummary" },
9576
+ inputZod: mcpDeriveSearchInstrumentsInputSchema,
9577
+ outputZod: mcpDeriveSearchInstrumentsOutputSchema
9578
+ }),
9579
+ defineMcpTool({
9580
+ name: "ctm_derive_fetch_market_snapshot",
9581
+ actionId: "derive.fetch-market-snapshot",
9582
+ protocolId: "derive",
9583
+ chainCategory: "evm",
9584
+ description: "Live Derive ticker: mark, index, bid/ask, greeks. Throws if no live price.",
9585
+ prerequisites: ["instrumentName from fetch_option_chain"],
9586
+ followUp: ["ctm_derive_fetch_ohlcv", "ctm_derive_order_quote", "ctm_derive_build_place_order_multisign"],
9587
+ handler: { importPath: "protocols/evm/derive", exportName: "deriveFetchMarketSnapshotSummary" },
9588
+ inputZod: mcpDeriveFetchMarketSnapshotInputSchema,
9589
+ outputZod: mcpDeriveFetchMarketSnapshotOutputSchema
9590
+ }),
9591
+ defineMcpTool({
9592
+ name: "ctm_derive_fetch_ohlcv",
9593
+ actionId: "derive.fetch-ohlcv",
9594
+ protocolId: "derive",
9595
+ chainCategory: "evm",
9596
+ description: 'OHLCV for a Derive option (instrumentName) or underlying index (currency + marketKind index). Default is ~96 bars for the interval (not a 14-day dump). Envelope { ohlcv, dataSource: "derive" }. Then continuum__prepare_chart_from_rows if the user wants a chart.',
9597
+ prerequisites: ["instrumentName or currency"],
9598
+ followUp: ["continuum__prepare_chart_from_rows", "ctm_derive_fetch_market_snapshot"],
9599
+ handler: { importPath: "protocols/evm/derive", exportName: "deriveFetchOhlcvSummary" },
9600
+ inputZod: mcpDeriveFetchOhlcvInputSchema,
9601
+ outputZod: mcpDeriveFetchOhlcvOutputSchema
9602
+ }),
9603
+ defineMcpTool({
9604
+ name: "ctm_derive_order_quote",
9605
+ actionId: "derive.order-quote",
9606
+ protocolId: "derive",
9607
+ chainCategory: "evm",
9608
+ description: "Dry-run Derive fill / margin preview (public/order_quote).",
9609
+ prerequisites: ["instrumentName", "direction", "amount", "limitPrice"],
9610
+ followUp: ["ctm_derive_build_place_order_multisign"],
9611
+ handler: { importPath: "protocols/evm/derive", exportName: "deriveOrderQuoteSummary" },
9612
+ inputZod: mcpDeriveOrderQuoteInputSchema,
9613
+ outputZod: mcpDeriveOrderQuoteOutputSchema
9614
+ }),
9615
+ defineMcpTool({
9616
+ name: "ctm_derive_fetch_risk_universes",
9617
+ actionId: "derive.fetch-risk-universes",
9618
+ protocolId: "derive",
9619
+ chainCategory: "evm",
9620
+ description: "List Derive risk universes (manager_id + collaterals). Required before the first deposit. Pick a manager that lists ETH options and USDC (or the row currency).",
9621
+ prerequisites: ["activate_tool_group defi:derive:options"],
9622
+ followUp: [
9623
+ "ctm_derive_build_deposit_new_subaccount_multisign",
9624
+ "ctm_derive_register_deposit_address",
9625
+ "ctm_derive_build_socket_deposit_multisign",
9626
+ "ctm_derive_build_hype_vault_deposit_multisign"
9627
+ ],
9628
+ handler: { importPath: "protocols/evm/derive", exportName: "deriveFetchRiskUniversesSummary" },
9629
+ inputZod: mcpDeriveFetchRiskUniversesInputSchema,
9630
+ outputZod: mcpDeriveFetchRiskUniversesOutputSchema
9631
+ }),
9632
+ defineMcpTool({
9633
+ name: "ctm_derive_fetch_pending_deposits",
9634
+ actionId: "derive.fetch-pending-deposits",
9635
+ protocolId: "derive",
9636
+ chainCategory: "evm",
9637
+ description: "Poll public/get_pending_deposits for the KeyGen wallet. credited:false means wait; then call fetch_subaccounts. First deposit is L1, Socket (ETH/OP/Base/Arb), or HyperEVM HYPE.",
9638
+ prerequisites: ["wallet / executorAddress"],
9639
+ followUp: ["ctm_derive_fetch_subaccounts"],
9640
+ handler: { importPath: "protocols/evm/derive", exportName: "deriveFetchPendingDepositsSummary" },
9641
+ inputZod: mcpDeriveFetchPendingDepositsInputSchema,
9642
+ outputZod: mcpDeriveFetchPendingDepositsOutputSchema
9643
+ }),
9644
+ defineMcpTool({
9645
+ name: "ctm_derive_register_deposit_address",
9646
+ actionId: "derive.register-deposit-address",
9647
+ protocolId: "derive",
9648
+ chainCategory: "evm",
9649
+ description: "public/register_deposit_address \u2014 deterministic Ethereum L1 deposit address for this wallet. Then transfer the token with ctm_derive_build_deposit_address_transfer_multisign. Do not send from Base/Arb to this address.",
9650
+ prerequisites: ["wallet", "managerId (new subaccount) or subaccountId (existing)"],
9651
+ followUp: ["ctm_derive_build_deposit_address_transfer_multisign", "ctm_derive_fetch_pending_deposits"],
9652
+ handler: { importPath: "protocols/evm/derive", exportName: "deriveRegisterDepositAddress" },
9653
+ inputZod: mcpDeriveRegisterDepositAddressInputSchema,
9654
+ outputZod: mcpDeriveRegisterDepositAddressOutputSchema
9655
+ }),
9656
+ defineMcpTool({
9657
+ name: "ctm_derive_fetch_subaccounts",
9658
+ actionId: "derive.fetch-subaccounts",
9659
+ protocolId: "derive",
9660
+ chainCategory: "evm",
9661
+ description: "List Derive subaccount ids for the KeyGen executor. Empty list returns funded:false and notes to deposit from a fundable logo row (L1 / Socket / HYPE vault). Two ids after first credit is normal (trading + fallback manager 0).",
9662
+ prerequisites: ["wallet / executorAddress", "node-cached EIP-191 login"],
9663
+ followUp: ["ctm_derive_fetch_portfolio", "ctm_derive_build_place_order_multisign"],
9664
+ handler: { importPath: "protocols/evm/derive", exportName: "deriveFetchSubaccountsSummary" },
9665
+ inputZod: mcpDeriveFetchSubaccountsInputSchema,
9666
+ outputZod: mcpDeriveFetchSubaccountsOutputSchema
9667
+ }),
9668
+ defineMcpTool({
9669
+ name: "ctm_derive_fetch_portfolio",
9670
+ actionId: "derive.fetch-portfolio",
9671
+ protocolId: "derive",
9672
+ chainCategory: "evm",
9673
+ description: "Derive private/get_subaccount portfolio for a funded subaccountId.",
9674
+ prerequisites: ["subaccountId from ctm_derive_fetch_subaccounts"],
9675
+ followUp: ["ctm_derive_fetch_positions", "ctm_derive_build_place_order_multisign"],
9676
+ handler: { importPath: "protocols/evm/derive", exportName: "deriveFetchPortfolioSummary" },
9677
+ inputZod: mcpDeriveFetchPortfolioInputSchema,
9678
+ outputZod: mcpDeriveFetchPortfolioOutputSchema
9679
+ }),
9680
+ defineMcpTool({
9681
+ name: "ctm_derive_fetch_positions",
9682
+ actionId: "derive.fetch-positions",
9683
+ protocolId: "derive",
9684
+ chainCategory: "evm",
9685
+ description: "Open Derive option positions for a subaccountId from fetch_subaccounts.",
9686
+ prerequisites: ["subaccountId from ctm_derive_fetch_subaccounts"],
9687
+ followUp: ["ctm_derive_build_place_order_multisign"],
9688
+ handler: { importPath: "protocols/evm/derive", exportName: "deriveFetchPositionsSummary" },
9689
+ inputZod: mcpDeriveFetchPositionsInputSchema,
9690
+ outputZod: mcpDeriveFetchPositionsOutputSchema
9691
+ }),
9692
+ defineMcpTool({
9693
+ name: "ctm_derive_fetch_open_orders",
9694
+ actionId: "derive.fetch-open-orders",
9695
+ protocolId: "derive",
9696
+ chainCategory: "evm",
9697
+ description: "Open Derive orders for a subaccountId. Follow with cancel/replace.",
9698
+ prerequisites: ["subaccountId from ctm_derive_fetch_subaccounts"],
9699
+ followUp: ["ctm_derive_build_cancel_multisign", "ctm_derive_build_replace_order_multisign"],
9700
+ handler: { importPath: "protocols/evm/derive", exportName: "deriveFetchOpenOrdersSummary" },
9701
+ inputZod: mcpDeriveFetchOpenOrdersInputSchema,
9702
+ outputZod: mcpDeriveFetchOpenOrdersOutputSchema
9703
+ }),
9704
+ defineMcpTool({
9705
+ name: "search_prediction_markets",
9706
+ actionId: "prediction-markets.search",
9707
+ protocolId: "prediction-markets",
9708
+ chainCategory: "evm",
9709
+ description: 'Venue-agnostic prediction market search for MPA chat. v1 adapter is Trueo on Base. Pass the operator topic verbatim as query (case-insensitive title substring). Do not substitute a category or synonym. Do not set trending when query is set. Empty query lists trending (max 10; cannot page). If hasMore, call again with offset/nextOffset, trending=false, indexBase=nextIndexBase, excludeAddresses of listed venueMarketIds. Default: live and recently finished (14 days) \u2014 do not pass includeAll unless the operator asked for closed or historical markets. If the live board is empty, say so. After a pick, get_prediction_market. Writes (mint / limit / burn / redeem / Yes-No swap) are not in the opening catalog \u2014 load_defi_protocol({ protocolId: "trueo" }) then get_defi_protocol_skill or search_continuum_tools for ctm_trueo_build_*.',
9710
+ prerequisites: [],
9711
+ followUp: ["get_prediction_market", "load_defi_protocol", "get_defi_protocol_skill"],
9712
+ handler: { importPath: "protocols/evm/trueo", exportName: "searchPredictionMarketsSummary" },
9713
+ inputZod: mcpSearchPredictionMarketsInputSchema,
9714
+ outputZod: mcpSearchPredictionMarketsOutputSchema
9715
+ }),
9716
+ defineMcpTool({
9717
+ name: "get_prediction_market",
9718
+ actionId: "prediction-markets.get",
9719
+ protocolId: "prediction-markets",
9720
+ chainCategory: "evm",
9721
+ description: 'Full selected prediction market (rules, Yes/No, volume, TVL, expiry). Use after search_prediction_markets pick #N. Does not require load_defi_protocol. Writes stay behind load_defi_protocol({ protocolId: "trueo" }): ctm_trueo_build_wrap_tyd_multisign, ctm_trueo_build_unwrap_tyd_multisign, ctm_trueo_build_mint_multisign, ctm_trueo_build_create_order_multisign, ctm_trueo_build_burn_multisign, ctm_trueo_build_redeem_multisign, ctm_trueo_build_swap_multisign. Discover via get_defi_protocol_skill or search_continuum_tools \u2014 they are not on the opening chat catalog.',
9722
+ prerequisites: ["venueMarketId from search_prediction_markets"],
9723
+ followUp: [
9724
+ "load_defi_protocol",
9725
+ "get_defi_protocol_skill",
9726
+ "ctm_trueo_build_wrap_tyd_multisign",
9727
+ "ctm_trueo_build_mint_multisign",
9728
+ "ctm_trueo_build_create_order_multisign",
9729
+ "ctm_trueo_build_swap_multisign",
9730
+ "ctm_trueo_build_burn_multisign",
9731
+ "ctm_trueo_build_redeem_multisign"
9732
+ ],
9733
+ handler: { importPath: "protocols/evm/trueo", exportName: "getPredictionMarketSummary" },
9734
+ inputZod: mcpGetPredictionMarketInputSchema,
9735
+ outputZod: mcpGetPredictionMarketOutputSchema
9736
+ }),
9737
+ defineMcpTool({
9738
+ name: "list_my_prediction_markets",
9739
+ actionId: "prediction-markets.my-holdings",
9740
+ protocolId: "prediction-markets",
9741
+ chainCategory: "evm",
9742
+ description: "Live Yes/No, trading window, and resolution for markets the user has bet on. Pass YES/NO tokenAddresses from get_token_registry and/or marketAddresses from prior bets. Does not require load_defi_protocol. After a bet, add_to_token_registry for the YES or NO token so it shows here. Exit: load_defi_protocol trueo then ctm_trueo_build_burn_multisign or ctm_trueo_build_redeem_multisign.",
9743
+ prerequisites: [],
9744
+ followUp: [
9745
+ "get_prediction_market",
9746
+ "add_to_token_registry",
9747
+ "load_defi_protocol",
9748
+ "ctm_trueo_build_burn_multisign",
9749
+ "ctm_trueo_build_redeem_multisign"
9750
+ ],
9751
+ handler: { importPath: "protocols/evm/trueo", exportName: "listMyPredictionMarketsSummary" },
9752
+ inputZod: mcpListMyPredictionMarketsInputSchema,
9753
+ outputZod: mcpListMyPredictionMarketsOutputSchema
9754
+ }),
9755
+ defineMcpTool({
9756
+ name: "ctm_trueo_fetch_categories",
9757
+ actionId: "trueo.fetch-categories",
9758
+ protocolId: "trueo",
9759
+ chainCategory: "evm",
9760
+ description: "Trueo category chips (Politics, Crypto, Sports, \u2026). Use as category on search.",
9761
+ prerequisites: ["load_defi_protocol trueo"],
9762
+ followUp: ["ctm_trueo_search_markets", "ctm_trueo_fetch_trending"],
9763
+ handler: { importPath: "protocols/evm/trueo", exportName: "trueoFetchCategoriesSummary" },
9764
+ inputZod: mcpTrueoFetchCategoriesInputSchema,
9765
+ outputZod: mcpTrueoFetchCategoriesOutputSchema
9766
+ }),
9767
+ defineMcpTool({
9768
+ name: "ctm_trueo_fetch_trending",
9769
+ actionId: "trueo.fetch-trending",
9770
+ protocolId: "trueo",
9771
+ chainCategory: "evm",
9772
+ description: "Trueo trending on Base (max 10; API does not page). More markets: ctm_trueo_search_markets with offset=0. Default: live and recently finished (14 days).",
9773
+ prerequisites: ["load_defi_protocol trueo"],
9774
+ followUp: ["ctm_trueo_fetch_market"],
9775
+ handler: { importPath: "protocols/evm/trueo", exportName: "trueoFetchTrendingSummary" },
9776
+ inputZod: mcpTrueoFetchTrendingInputSchema,
9777
+ outputZod: mcpTrueoFetchTrendingOutputSchema
9778
+ }),
9779
+ defineMcpTool({
9780
+ name: "ctm_trueo_search_markets",
9781
+ actionId: "trueo.search-markets",
9782
+ protocolId: "trueo",
9783
+ chainCategory: "evm",
9784
+ description: "Trueo-only search (query + category), pages of 10. Same rows as search_prediction_markets. If hasMore, pass nextOffset and excludeAddresses of listed addresses. Default: live and recently finished (14 days).",
9785
+ prerequisites: ["load_defi_protocol trueo"],
9786
+ followUp: ["ctm_trueo_fetch_market"],
9787
+ handler: { importPath: "protocols/evm/trueo", exportName: "trueoSearchMarketsSummary" },
9788
+ inputZod: mcpTrueoSearchMarketsInputSchema,
9789
+ outputZod: mcpTrueoSearchMarketsOutputSchema
9790
+ }),
9791
+ defineMcpTool({
9792
+ name: "ctm_trueo_fetch_market",
9793
+ actionId: "trueo.fetch-market",
9794
+ protocolId: "trueo",
9795
+ chainCategory: "evm",
9796
+ description: "Selected Trueo market: rules, source, Yes/No %, TVL, size, tokens, pools, endOfTrading. Copy address for build_*. Writes: ctm_trueo_build_mint_multisign, ctm_trueo_build_create_order_multisign, ctm_trueo_build_swap_multisign, ctm_trueo_build_burn_multisign, ctm_trueo_build_redeem_multisign (after load_defi_protocol trueo).",
9797
+ prerequisites: ["marketAddress from search or trending"],
9798
+ followUp: [
9799
+ "ctm_trueo_fetch_chance_series",
9800
+ "ctm_trueo_fetch_orderbook",
9801
+ "ctm_trueo_build_mint_multisign",
9802
+ "ctm_trueo_build_create_order_multisign",
9803
+ "ctm_trueo_build_swap_multisign",
9804
+ "ctm_trueo_build_burn_multisign",
9805
+ "ctm_trueo_build_redeem_multisign"
9806
+ ],
9807
+ handler: { importPath: "protocols/evm/trueo", exportName: "trueoFetchMarketSummary" },
9808
+ inputZod: mcpTrueoFetchMarketInputSchema,
9809
+ outputZod: mcpTrueoFetchMarketOutputSchema
9810
+ }),
9811
+ defineMcpTool({
9812
+ name: "ctm_trueo_fetch_chance_series",
9813
+ actionId: "trueo.fetch-chance-series",
9814
+ protocolId: "trueo",
9815
+ chainCategory: "evm",
9816
+ description: "Yes/No chance samples for a pool id from fetch_market. Not candlesticks. Default hourly (3600s) over 14 days. 1H/1D/1W/All coerce to hourly.",
9817
+ prerequisites: ["poolId from ctm_trueo_fetch_market"],
9818
+ followUp: ["ctm_trueo_build_swap_multisign"],
9819
+ handler: { importPath: "protocols/evm/trueo", exportName: "trueoFetchChanceSeriesSummary" },
9820
+ inputZod: mcpTrueoFetchChanceSeriesInputSchema,
9821
+ outputZod: mcpTrueoFetchChanceSeriesOutputSchema
9822
+ }),
9823
+ defineMcpTool({
9824
+ name: "ctm_trueo_fetch_orderbook",
9825
+ actionId: "trueo.fetch-orderbook",
9826
+ protocolId: "trueo",
9827
+ chainCategory: "evm",
9828
+ description: "Yes/No depth: live tick, implied price, OrderManager pending rows when rpcUrl is set, recent trades.",
9829
+ prerequisites: ["marketAddress from ctm_trueo_fetch_market"],
9830
+ followUp: ["ctm_trueo_build_swap_multisign", "ctm_trueo_build_create_order_multisign"],
9831
+ handler: { importPath: "protocols/evm/trueo", exportName: "trueoFetchOrderbookSummary" },
9832
+ inputZod: mcpTrueoFetchOrderbookInputSchema,
9833
+ outputZod: mcpTrueoFetchOrderbookOutputSchema
8726
9834
  })
8727
9835
  ];
8728
9836
  var MCP_TOOL_DEFINITIONS = [
@@ -9616,7 +10724,26 @@ var hyperliquidProtocolModule = {
9616
10724
  dex: { type: "string", required: false, description: "HIP-3 dex name when applicable" },
9617
10725
  takeProfitTriggerPxHuman: { type: "string", required: false, description: "TP trigger \u2014 enables L1 bracket with SL" },
9618
10726
  stopLossTriggerPxHuman: { type: "string", required: false, description: "SL trigger \u2014 enables L1 bracket with TP" },
9619
- tpslExecMode: { type: "string", required: false, description: "limit_at_trigger (default) or market" }
10727
+ tpslExecMode: { type: "string", required: false, description: "limit_at_trigger (default) or market" },
10728
+ trailingOffsetHuman: { type: "string", required: false, description: "Trailing retracement \u2014 EIP-712 trailingStop (cannot combine with SL)" },
10729
+ trailingOffsetType: { type: "string", required: false, description: "price or percentage" },
10730
+ trailingActivationPxHuman: { type: "string", required: false, description: "Optional activation mark price" }
10731
+ }
10732
+ },
10733
+ {
10734
+ id: "hyperliquid.trailingStop",
10735
+ protocolId: HYPERLIQUID_PROTOCOL_ID,
10736
+ chainCategory: "evm",
10737
+ description: "Place a Hyperliquid perp trailing stop via L1 trailingStop action (EIP-712 /exchange)",
10738
+ commonParams: ["keyGen", "purposeText"],
10739
+ params: {
10740
+ coin: { type: "string", required: true, description: "Perp coin" },
10741
+ isBuy: { type: "boolean", required: true, description: "false closes a long / opens a short" },
10742
+ szHuman: { type: "string", required: true, description: "Size in coin units" },
10743
+ trailingOffsetHuman: { type: "string", required: true, description: "Retracement distance or percent" },
10744
+ trailingOffsetType: { type: "string", required: false, description: "price or percentage (default)" },
10745
+ trailingActivationPxHuman: { type: "string", required: false, description: "Optional activation mark price" },
10746
+ reduceOnly: { type: "boolean", required: false, description: "true (default) reduces a position" }
9620
10747
  }
9621
10748
  },
9622
10749
  {
@@ -11613,6 +12740,400 @@ var pendleProtocolModule = {
11613
12740
  ]
11614
12741
  };
11615
12742
  registerProtocolModule(pendleProtocolModule);
12743
+
12744
+ // src/protocols/evm/derive/constants.ts
12745
+ var DERIVE_PROTOCOL_ID = "derive";
12746
+ var DERIVE_MAINNET_API = "https://api.derive.xyz/v3";
12747
+ var DERIVE_TESTNET_API = "https://testnet.api.derive.xyz/v3";
12748
+ var DERIVE_MAINNET_API_V2 = "https://api.lyra.finance";
12749
+ var DERIVE_TESTNET_API_V2 = "https://api-demo.lyra.finance";
12750
+ function deriveNetworkFromChainId(chainId) {
12751
+ return chainId === 11155111 ? "testnet" : "mainnet";
12752
+ }
12753
+ function deriveApiBaseUrl(network = "mainnet") {
12754
+ return network === "testnet" ? DERIVE_TESTNET_API : DERIVE_MAINNET_API;
12755
+ }
12756
+ function deriveApiFallbackBaseUrl(network = "mainnet") {
12757
+ return network === "testnet" ? DERIVE_TESTNET_API_V2 : DERIVE_MAINNET_API_V2;
12758
+ }
12759
+ var DERIVE_ASSET_ROW_CHAIN_IDS = [1, 10, 8453, 42161, 999, 11155111];
12760
+ function isDeriveAssetRowChainId(chainId) {
12761
+ return DERIVE_ASSET_ROW_CHAIN_IDS.includes(chainId);
12762
+ }
12763
+ function isDeriveChainSupported(chainId) {
12764
+ return isDeriveAssetRowChainId(chainId);
12765
+ }
12766
+ var NATIVE_ZERO = "0x0000000000000000000000000000000000000000";
12767
+ var USDC = {
12768
+ 1: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
12769
+ 10: "0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85",
12770
+ 8453: "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
12771
+ 42161: "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
12772
+ 11155111: "0x73Efab09362052D26FB93A730Be4F8a5EdC833af"
12773
+ };
12774
+ var WETH = {
12775
+ 1: "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",
12776
+ 10: "0x4200000000000000000000000000000000000006",
12777
+ 8453: "0x4200000000000000000000000000000000000006",
12778
+ 42161: "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1"
12779
+ };
12780
+ var WBTC = {
12781
+ 1: "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599",
12782
+ 10: "0x68f180fcCe6836688e9084f035309E29Bf0A2095",
12783
+ 42161: "0x2f2a2543B76A4166549B7eCDcE5542a773Aa44fB"
12784
+ };
12785
+ var WHYPE = "0x5555555555555555555555555555555555555555";
12786
+ function deriveMappedTokensForChain(chainId) {
12787
+ const tokens = [];
12788
+ const add = (address, symbol, decimals, roles) => {
12789
+ if (!address) return;
12790
+ tokens.push({ address: getAddress(address), symbol, decimals, roles });
12791
+ };
12792
+ if ([1, 10, 8453, 42161].includes(chainId)) {
12793
+ add(NATIVE_ZERO, "ETH", 18, ["native", "underlying"]);
12794
+ add(WETH[chainId], "WETH", 18, ["native_wrapped", "underlying"]);
12795
+ }
12796
+ if (chainId === 999) {
12797
+ add(NATIVE_ZERO, "HYPE", 18, ["native", "collateral"]);
12798
+ add(WHYPE, "WHYPE", 18, ["native_wrapped", "collateral"]);
12799
+ }
12800
+ add(USDC[chainId], "USDC", 6, ["collateral", "quote"]);
12801
+ add(WBTC[chainId], "WBTC", 8, ["underlying", "collateral"]);
12802
+ return tokens;
12803
+ }
12804
+ function deriveNativeWrappedForChain(chainId) {
12805
+ if (chainId === 999) return WHYPE;
12806
+ return WETH[chainId];
12807
+ }
12808
+ function deriveAdvisorNotes() {
12809
+ return "Fund from Ethereum USDC/WETH/WBTC (L1 ACTION_MANAGER or deposit address), Socket USDC/WETH/WBTC on Optimism/Base/Arbitrum, or HyperEVM HYPE (vault). Derive Chain 957 is not a Continuum Assets chain. After credit, EIP-712 options use Derive collateral.";
12810
+ }
12811
+
12812
+ // src/protocols/evm/derive/api.ts
12813
+ function methodName(method) {
12814
+ return method.replace(/^\//, "");
12815
+ }
12816
+ function isDerivePublicMethod(method) {
12817
+ return methodName(method).startsWith("public/");
12818
+ }
12819
+ function isEmptyDerivePublicResult(method, result) {
12820
+ const m = methodName(method);
12821
+ if (result == null) return true;
12822
+ if (m === "public/get_all_currencies" && Array.isArray(result) && result.length === 0) return true;
12823
+ if (m === "public/get_tickers" && result && typeof result === "object") {
12824
+ const tickers = result.tickers;
12825
+ if (Array.isArray(tickers) && tickers.length === 0) return true;
12826
+ if (tickers && typeof tickers === "object" && !Array.isArray(tickers) && Object.keys(tickers).length === 0) {
12827
+ return true;
12828
+ }
12829
+ }
12830
+ return false;
12831
+ }
12832
+ function isDeriveRecoverablePublicError(err) {
12833
+ const name = err instanceof Error ? err.name : "";
12834
+ const msg = err instanceof Error ? err.message : String(err);
12835
+ return name === "TimeoutError" || name === "AbortError" || /Internal error|HTTP 404|Not Found|returned empty|empty catalog|Ticker not found|aborted due to timeout|The operation was aborted/i.test(
12836
+ msg
12837
+ );
12838
+ }
12839
+ function unwrapResult(json, method) {
12840
+ if (json && typeof json === "object") {
12841
+ const rec = json;
12842
+ if (rec.error) {
12843
+ const err = rec.error;
12844
+ const detail = err.data != null && String(err.data).trim() ? ` (${String(err.data).slice(0, 160)})` : "";
12845
+ throw new Error(`Derive ${method} failed: ${err.message ?? JSON.stringify(rec.error)}${detail}`);
12846
+ }
12847
+ if ("result" in rec) return rec.result;
12848
+ }
12849
+ return json;
12850
+ }
12851
+ async function deriveRpcPost(args) {
12852
+ const method = methodName(args.method);
12853
+ const headers = { "Content-Type": "application/json" };
12854
+ if (args.auth) {
12855
+ headers["X-DeriveWallet"] = args.auth.wallet;
12856
+ headers["X-DeriveTimestamp"] = args.auth.timestamp;
12857
+ headers["X-DeriveSignature"] = args.auth.signature;
12858
+ }
12859
+ const res = await fetch(`${args.base}/${method}`, {
12860
+ method: "POST",
12861
+ headers,
12862
+ body: JSON.stringify(args.params ?? {}),
12863
+ cache: "no-store",
12864
+ signal: AbortSignal.timeout(15e3)
12865
+ });
12866
+ const text = await res.text().catch(() => "");
12867
+ if (!res.ok || !text.trim() || text.trim() === "Not Found") {
12868
+ throw new Error(`Derive ${method} HTTP ${res.status}: ${text.slice(0, 240) || "empty body"}`);
12869
+ }
12870
+ let json;
12871
+ try {
12872
+ json = JSON.parse(text);
12873
+ } catch {
12874
+ throw new Error(`Derive ${method} returned non-JSON: ${text.slice(0, 160)}`);
12875
+ }
12876
+ const result = unwrapResult(json, method);
12877
+ if (isEmptyDerivePublicResult(method, result)) {
12878
+ throw new Error(`Derive ${method} returned empty catalog`);
12879
+ }
12880
+ return result;
12881
+ }
12882
+ async function deriveRpc(args) {
12883
+ const network = args.network ?? "mainnet";
12884
+ const method = methodName(args.method);
12885
+ const primary = deriveApiBaseUrl(network);
12886
+ try {
12887
+ return await deriveRpcPost({
12888
+ base: primary,
12889
+ method,
12890
+ params: args.params,
12891
+ auth: args.auth
12892
+ });
12893
+ } catch (err) {
12894
+ const fallback = deriveApiFallbackBaseUrl(network);
12895
+ if (!isDerivePublicMethod(method) || fallback === primary || !isDeriveRecoverablePublicError(err)) {
12896
+ throw err;
12897
+ }
12898
+ return await deriveRpcPost({
12899
+ base: fallback,
12900
+ method,
12901
+ params: args.params,
12902
+ auth: args.auth
12903
+ });
12904
+ }
12905
+ }
12906
+
12907
+ // src/protocols/evm/derive/assets.ts
12908
+ async function deriveFetchCurrenciesRaw(args) {
12909
+ const result = await deriveRpc({
12910
+ method: "public/get_all_currencies",
12911
+ network: args?.network
12912
+ });
12913
+ if (Array.isArray(result)) return result;
12914
+ if (result && typeof result === "object" && Array.isArray(result.currencies)) {
12915
+ return result.currencies;
12916
+ }
12917
+ return [];
12918
+ }
12919
+
12920
+ // src/protocols/evm/derive/index.ts
12921
+ var deriveProtocolModule = {
12922
+ id: DERIVE_PROTOCOL_ID,
12923
+ chainCategory: "evm",
12924
+ isChainSupported(ctx) {
12925
+ if (ctx.chainCategory !== "evm") return false;
12926
+ const chainId = typeof ctx.chainId === "number" ? ctx.chainId : Number(ctx.chainId);
12927
+ return Number.isFinite(chainId) && isDeriveChainSupported(chainId);
12928
+ },
12929
+ isTokenSupported(token) {
12930
+ if (token.category !== "evm") return false;
12931
+ return token.kind === "erc20" || token.kind === "native";
12932
+ },
12933
+ actions: [
12934
+ {
12935
+ id: "derive.depositNewSubaccount",
12936
+ protocolId: DERIVE_PROTOCOL_ID,
12937
+ chainCategory: "evm",
12938
+ description: "Ethereum L1 approve + ACTION_MANAGER.depositToNewSubaccount. First credit creates the trading + fallback subaccounts. chainId 1 / 11155111. Arb/OP/Base use derive.socketDeposit; HyperEVM HYPE uses derive.hypeVaultDeposit.",
12939
+ commonParams: ["keyGen", "purposeText", "useCustomGas"],
12940
+ params: {
12941
+ protocolAsset: { type: "string", required: true, description: "Risk-universe collateral protocol asset" },
12942
+ underlyingErc20: { type: "string", required: true, description: "L1 ERC-20 to approve (usually USDC)" },
12943
+ amountHuman: { type: "string", required: true, description: "Deposit amount in underlying decimals" },
12944
+ managerId: { type: "number", required: true, description: "Risk-universe manager_id" }
12945
+ }
12946
+ },
12947
+ {
12948
+ id: "derive.depositAddressTransfer",
12949
+ protocolId: DERIVE_PROTOCOL_ID,
12950
+ chainCategory: "evm",
12951
+ description: "Ethereum L1 ERC-20 transfer to a registered Derive deposit address (standard / keeper sweep). Call register_deposit_address first.",
12952
+ commonParams: ["keyGen", "purposeText", "useCustomGas"],
12953
+ params: {
12954
+ underlyingErc20: { type: "string", required: true, description: "L1 ERC-20 to send (usually USDC)" },
12955
+ amountHuman: { type: "string", required: true, description: "Transfer amount in token units" },
12956
+ depositAddress: { type: "string", required: true, description: "From register_deposit_address" }
12957
+ }
12958
+ },
12959
+ {
12960
+ id: "derive.socketDeposit",
12961
+ protocolId: DERIVE_PROTOCOL_ID,
12962
+ chainCategory: "evm",
12963
+ description: "Socket FAST deposit of USDC/WETH/WBTC on Ethereum, Optimism, Base, or Arbitrum into Derive Chain. Native ETH wraps to WETH first. useCustomGas.",
12964
+ commonParams: ["keyGen", "purposeText", "useCustomGas"],
12965
+ params: {
12966
+ token: { type: "string", required: true, description: "Row ERC-20 or native 0x0 (wraps to WETH)" },
12967
+ amountHuman: { type: "string", required: true, description: "Deposit amount in token units" }
12968
+ }
12969
+ },
12970
+ {
12971
+ id: "derive.hypeVaultDeposit",
12972
+ protocolId: DERIVE_PROTOCOL_ID,
12973
+ chainCategory: "evm",
12974
+ description: "HyperEVM (999): wrap native HYPE to WHYPE if needed, approve Derive vault, deposit.",
12975
+ commonParams: ["keyGen", "purposeText", "useCustomGas"],
12976
+ params: {
12977
+ amountHuman: { type: "string", required: true, description: "HYPE amount" },
12978
+ token: { type: "string", required: false, description: "Native 0x0 or WHYPE" }
12979
+ }
12980
+ },
12981
+ {
12982
+ id: "derive.placeOrder",
12983
+ protocolId: DERIVE_PROTOCOL_ID,
12984
+ chainCategory: "evm",
12985
+ description: "Place a Derive options limit order via EIP-712 Action (delivery derive_exchange). Does not spend the current-chain token.",
12986
+ commonParams: ["keyGen", "purposeText"],
12987
+ params: {
12988
+ instrumentName: { type: "string", required: true, description: "e.g. ETH-20260626-3000-C" },
12989
+ direction: { type: "string", required: true, description: "buy or sell" },
12990
+ amount: { type: "string", required: true, description: "Contract size" },
12991
+ limitPrice: { type: "string", required: true, description: "Limit price" },
12992
+ maxFee: { type: "string", required: true, description: "Max fee (e18-scaled, \u226412 decimals)" },
12993
+ subaccountId: { type: "number", required: true, description: "From fetch_subaccounts \u2014 never 0" }
12994
+ }
12995
+ },
12996
+ {
12997
+ id: "derive.replaceOrder",
12998
+ protocolId: DERIVE_PROTOCOL_ID,
12999
+ chainCategory: "evm",
13000
+ description: "Replace a Derive open order (EIP-712 Action + orderIdToCancel or nonceToCancel).",
13001
+ commonParams: ["keyGen", "purposeText"],
13002
+ params: {
13003
+ instrumentName: { type: "string", required: true, description: "Instrument of the replacement order" },
13004
+ direction: { type: "string", required: true, description: "buy or sell" },
13005
+ amount: { type: "string", required: true, description: "Contract size" },
13006
+ limitPrice: { type: "string", required: true, description: "Limit price" },
13007
+ maxFee: { type: "string", required: true, description: "Max fee" },
13008
+ subaccountId: { type: "number", required: true, description: "From fetch_subaccounts" },
13009
+ orderIdToCancel: { type: "string", required: false, description: "Existing order id (xor nonceToCancel)" },
13010
+ nonceToCancel: { type: "string", required: false, description: "Existing order nonce (xor orderIdToCancel)" }
13011
+ }
13012
+ },
13013
+ {
13014
+ id: "derive.cancel",
13015
+ protocolId: DERIVE_PROTOCOL_ID,
13016
+ chainCategory: "evm",
13017
+ description: "Cancel a Derive open order. v3 cancel is session-auth; this signs EIP-191 login for private/cancel delivery.",
13018
+ commonParams: ["keyGen", "purposeText"],
13019
+ params: {
13020
+ instrumentName: { type: "string", required: true, description: "Instrument of the open order" },
13021
+ orderId: { type: "string", required: true, description: "order_id from fetch_open_orders" },
13022
+ subaccountId: { type: "number", required: true, description: "From fetch_subaccounts" }
13023
+ }
13024
+ },
13025
+ {
13026
+ id: "derive.transferSpot",
13027
+ protocolId: DERIVE_PROTOCOL_ID,
13028
+ chainCategory: "evm",
13029
+ description: "EIP-712 transfer_spot. Use toSubaccountId 0 + newSubaccountManager to create an extra subaccount after the first funded one.",
13030
+ commonParams: ["keyGen", "purposeText"],
13031
+ params: {
13032
+ fromSubaccountId: { type: "number", required: true, description: "Funded source subaccount" },
13033
+ toSubaccountId: { type: "number", required: true, description: "0 to create an extra subaccount" },
13034
+ newSubaccountManager: { type: "number", required: true, description: "Required when toSubaccountId is 0" },
13035
+ asset: { type: "string", required: true, description: "Protocol asset address" },
13036
+ amount: { type: "string", required: true, description: "Transfer amount" }
13037
+ }
13038
+ }
13039
+ ]
13040
+ };
13041
+ registerProtocolModule(deriveProtocolModule);
13042
+ var TRUEO_PROTOCOL_ID = "trueo";
13043
+ var TRUEO_BASE_CHAIN_ID = 8453;
13044
+ var TRUEO_CHAIN_IDS = [TRUEO_BASE_CHAIN_ID];
13045
+ var TRUEO_TYD = getAddress("0xb13CF163d916917d9cD6E836905cA5f12a1dEF4B");
13046
+ var TRUEO_TRUE = getAddress("0x21CFCFc3d8F98fC728f48341D10Ad8283F6EB7AB");
13047
+ var TRUEO_USDC = getAddress("0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913");
13048
+ getAddress("0x61A98Bef11867c69489B91f340fE545eEfc695d7");
13049
+ getAddress("0x1cdB1C43eB64e99780EA9d3C7162C23432C59a1A");
13050
+ getAddress("0x0A1AFc2121B4441127a02DEF72928F61f564034a");
13051
+ getAddress("0x6E08d24AEf78F6d1a97503F64E84fDF65f8125E1");
13052
+ getAddress("0x3E83479B2276EcFb7C7181F67b5d092d3511e0C4");
13053
+ getAddress("0x000000000022D473030F116dDEE9F6B43aC78BA3");
13054
+ function isTrueoChainSupported(chainId) {
13055
+ return TRUEO_CHAIN_IDS.includes(chainId);
13056
+ }
13057
+
13058
+ // src/protocols/evm/trueo/index.ts
13059
+ var trueoProtocolModule = {
13060
+ id: TRUEO_PROTOCOL_ID,
13061
+ chainCategory: "evm",
13062
+ isChainSupported(ctx) {
13063
+ const id = typeof ctx.chainId === "string" ? Number(ctx.chainId) : ctx.chainId;
13064
+ return ctx.chainCategory === "evm" && isTrueoChainSupported(id);
13065
+ },
13066
+ isTokenSupported(token) {
13067
+ return token.category === "evm" && (token.kind === "erc20" || token.kind === "ctmerc20");
13068
+ },
13069
+ actions: [
13070
+ {
13071
+ id: "trueo.wrap-tyd",
13072
+ protocolId: TRUEO_PROTOCOL_ID,
13073
+ chainCategory: "evm",
13074
+ description: "Mint TYD by depositing Base USDC into the Yearn ERC-4626 vault",
13075
+ commonParams: ["keyGen", "purposeText", "useCustomGas"],
13076
+ params: {}
13077
+ },
13078
+ {
13079
+ id: "trueo.unwrap-tyd",
13080
+ protocolId: TRUEO_PROTOCOL_ID,
13081
+ chainCategory: "evm",
13082
+ description: "Redeem TYD shares back to Base USDC",
13083
+ commonParams: ["keyGen", "purposeText", "useCustomGas"],
13084
+ params: {}
13085
+ },
13086
+ {
13087
+ id: "trueo.mint",
13088
+ protocolId: TRUEO_PROTOCOL_ID,
13089
+ chainCategory: "evm",
13090
+ description: "Mint YES+NO from TYD (or USDC via adapter)",
13091
+ commonParams: ["keyGen", "purposeText", "useCustomGas"],
13092
+ params: {}
13093
+ },
13094
+ {
13095
+ id: "trueo.burn",
13096
+ protocolId: TRUEO_PROTOCOL_ID,
13097
+ chainCategory: "evm",
13098
+ description: "Burn equal YES+NO back to TYD",
13099
+ commonParams: ["keyGen", "purposeText", "useCustomGas"],
13100
+ params: {}
13101
+ },
13102
+ {
13103
+ id: "trueo.redeem",
13104
+ protocolId: TRUEO_PROTOCOL_ID,
13105
+ chainCategory: "evm",
13106
+ description: "Redeem winning outcome tokens after resolution",
13107
+ commonParams: ["keyGen", "purposeText", "useCustomGas"],
13108
+ params: {}
13109
+ },
13110
+ {
13111
+ id: "trueo.swap",
13112
+ protocolId: TRUEO_PROTOCOL_ID,
13113
+ chainCategory: "evm",
13114
+ description: "Buy Yes or No with TYD via UniversalRouterAdapter V4 swap",
13115
+ commonParams: ["keyGen", "purposeText", "useCustomGas"],
13116
+ params: {}
13117
+ },
13118
+ {
13119
+ id: "trueo.create-order",
13120
+ protocolId: TRUEO_PROTOCOL_ID,
13121
+ chainCategory: "evm",
13122
+ description: "Create an on-chain OrderManager limit order",
13123
+ commonParams: ["keyGen", "purposeText", "useCustomGas"],
13124
+ params: {}
13125
+ },
13126
+ {
13127
+ id: "trueo.cancel-order",
13128
+ protocolId: TRUEO_PROTOCOL_ID,
13129
+ chainCategory: "evm",
13130
+ description: "Cancel an on-chain OrderManager order",
13131
+ commonParams: ["keyGen", "purposeText", "useCustomGas"],
13132
+ params: {}
13133
+ }
13134
+ ]
13135
+ };
13136
+ registerProtocolModule(trueoProtocolModule);
11616
13137
  var skillsDir = join(dirname(fileURLToPath(import.meta.url)), "skills");
11617
13138
  var SKILL_PROTOCOL_IDS = [
11618
13139
  "aave-v4",
@@ -11632,6 +13153,8 @@ var SKILL_PROTOCOL_IDS = [
11632
13153
  "pendle",
11633
13154
  "continuum-dao",
11634
13155
  "compound-v3",
13156
+ "derive",
13157
+ "trueo",
11635
13158
  "yield-compare"
11636
13159
  ];
11637
13160
  function getToolsForProtocol(protocolId) {
@@ -12171,6 +13694,72 @@ var PROTOCOL_SUPPORT_ADVISORS = {
12171
13694
  notes: "Arcus on Robinhood Chain (4663): perps via fetch_markets; spot Stock Tokens via spot_fetch_markets. Custody is secp256k1 on 4663; API signing uses paired ed25519 KeyGen (same GroupId)."
12172
13695
  };
12173
13696
  }
13697
+ }),
13698
+ [DERIVE_PROTOCOL_ID]: advisor(DERIVE_PROTOCOL_ID, "api_underlyings", {
13699
+ async supportedChainIds() {
13700
+ return [...DERIVE_ASSET_ROW_CHAIN_IDS];
13701
+ },
13702
+ async supportedTokens(chainId) {
13703
+ if (!isDeriveChainSupported(chainId)) {
13704
+ return { tokens: [], notes: "Derive logo rows are fundable chains only: Ethereum, OP, Base, Arbitrum, HyperEVM, Sepolia." };
13705
+ }
13706
+ const mapped = deriveMappedTokensForChain(chainId);
13707
+ let tokens = mapped;
13708
+ try {
13709
+ const currencies = await deriveFetchCurrenciesRaw({ network: deriveNetworkFromChainId(chainId) });
13710
+ const symbols = new Set(
13711
+ currencies.map((c) => String(c.currency ?? "").toUpperCase()).filter(Boolean)
13712
+ );
13713
+ if (symbols.size > 0) {
13714
+ tokens = mapped.filter((t) => {
13715
+ const s = t.symbol.toUpperCase();
13716
+ return symbols.has(s) || s === "WETH" && symbols.has("ETH") || s === "WBTC" && symbols.has("BTC") || s === "HYPE" || s === "WHYPE";
13717
+ });
13718
+ }
13719
+ } catch {
13720
+ }
13721
+ return {
13722
+ tokens,
13723
+ nativeWrapped: deriveNativeWrappedForChain(chainId),
13724
+ notes: deriveAdvisorNotes()
13725
+ };
13726
+ },
13727
+ async isTokenSupported(chainId, address) {
13728
+ if (!isDeriveChainSupported(chainId)) return false;
13729
+ try {
13730
+ const normalized = getAddress(address).toLowerCase();
13731
+ return deriveMappedTokensForChain(chainId).some((t) => t.address.toLowerCase() === normalized);
13732
+ } catch {
13733
+ return false;
13734
+ }
13735
+ }
13736
+ }),
13737
+ [TRUEO_PROTOCOL_ID]: advisor(TRUEO_PROTOCOL_ID, "fixed_addresses", {
13738
+ async supportedChainIds() {
13739
+ return [TRUEO_BASE_CHAIN_ID];
13740
+ },
13741
+ async supportedTokens(chainId) {
13742
+ if (chainId !== TRUEO_BASE_CHAIN_ID) {
13743
+ return { tokens: [], notes: "Trueo is Base-only (chainId 8453)." };
13744
+ }
13745
+ return {
13746
+ tokens: [
13747
+ { address: TRUEO_TYD, symbol: "TYD", decimals: 6, roles: ["payment"] },
13748
+ { address: TRUEO_TRUE, symbol: "TRUE", decimals: 18, roles: ["governance"] },
13749
+ { address: TRUEO_USDC, symbol: "USDC", decimals: 6, roles: ["adapter_asset"] }
13750
+ ],
13751
+ notes: "Trueo prediction markets on Base. Payment is TYD. Outcome YES/NO tokens are per-market \u2014 use ctm_trueo_search_markets / fetch_market. Chat search: search_prediction_markets (no load required; default live/recent, includeAll for closed)."
13752
+ };
13753
+ },
13754
+ async isTokenSupported(chainId, address) {
13755
+ if (chainId !== TRUEO_BASE_CHAIN_ID) return false;
13756
+ try {
13757
+ const n = getAddress(address).toLowerCase();
13758
+ return n === TRUEO_TYD.toLowerCase() || n === TRUEO_TRUE.toLowerCase() || n === TRUEO_USDC.toLowerCase();
13759
+ } catch {
13760
+ return false;
13761
+ }
13762
+ }
12174
13763
  })
12175
13764
  };
12176
13765
  function getProtocolSupportAdvisor(protocolId) {
@@ -12199,6 +13788,8 @@ registerProtocolModule(aerodromeProtocolModule);
12199
13788
  registerProtocolModule(continuumDaoProtocolModule);
12200
13789
  registerProtocolModule(compoundV3ProtocolModule);
12201
13790
  registerProtocolModule(pendleProtocolModule);
13791
+ registerProtocolModule(deriveProtocolModule);
13792
+ registerProtocolModule(trueoProtocolModule);
12202
13793
  function getAgentCatalog() {
12203
13794
  return {
12204
13795
  protocols: getProtocolModules(),
@@ -12225,11 +13816,13 @@ function getAgentCatalog() {
12225
13816
  continuumDao: continuumDaoProtocolModule,
12226
13817
  compoundV3: compoundV3ProtocolModule,
12227
13818
  pendle: pendleProtocolModule,
13819
+ derive: deriveProtocolModule,
13820
+ trueo: trueoProtocolModule,
12228
13821
  /** Prefer getAgentCatalogForMcp() or getMcpToolDefinitions() for MCP servers. */
12229
13822
  mcp: getAgentCatalogForMcp()
12230
13823
  };
12231
13824
  }
12232
13825
 
12233
- 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, mcpAaveV4FetchMarketInputSchema, mcpAaveV4FetchMarketOutputSchema, mcpAaveV4FetchMarketsInputSchema, mcpAaveV4FetchMarketsOutputSchema, mcpAaveV4MerklClaimInputSchema, mcpAaveV4RepayInputSchema, mcpAaveV4WithdrawInputSchema, mcpAerodromeBuildAddLiquidityMultisignInputSchema, mcpAerodromeBuildClBurnMultisignInputSchema, mcpAerodromeBuildClCollectFeesMultisignInputSchema, mcpAerodromeBuildClDecreaseMultisignInputSchema, mcpAerodromeBuildClIncreaseMultisignInputSchema, mcpAerodromeBuildClMintMultisignInputSchema, mcpAerodromeBuildClaimEmissionsMultisignInputSchema, mcpAerodromeBuildClaimFeesMultisignInputSchema, mcpAerodromeBuildGaugeStakeMultisignInputSchema, mcpAerodromeBuildGaugeUnstakeMultisignInputSchema, mcpAerodromeBuildRemoveLiquidityMultisignInputSchema, mcpAerodromeBuildSwapMultisignInputSchema, mcpAerodromeDiscoverPoolsInputSchema, mcpAerodromeDiscoverPoolsOutputSchema, mcpAerodromeFetchLpYieldsInputSchema, mcpAerodromeFetchLpYieldsOutputSchema, mcpAerodromeFetchPoolsInputSchema, mcpAerodromeFetchPoolsOutputSchema, mcpAerodromeFetchPositionsInputSchema, mcpAerodromeFetchPositionsOutputSchema, mcpAerodromeFetchStockLpYieldsInputSchema, mcpAerodromeFetchStockLpYieldsOutputSchema, mcpAerodromeQuoteAddLiquidityInputSchema, mcpAerodromeQuoteAddLiquidityOutputSchema, mcpAerodromeQuoteClDepositInputSchema, mcpAerodromeQuoteClDepositOutputSchema, mcpAerodromeQuoteInputSchema, mcpAerodromeQuoteOutputSchema, mcpArcusBuildCancelOrderMultisignInputSchema, mcpArcusBuildCloseMultisignInputSchema, mcpArcusBuildCreateApiKeyMultisignInputSchema, mcpArcusBuildDepositMultisignInputSchema, mcpArcusBuildPlaceOrderMultisignInputSchema, mcpArcusBuildSetLeverageMultisignInputSchema, mcpArcusBuildWithdrawMultisignInputSchema, mcpArcusFetchAccountInputSchema, mcpArcusFetchAccountOutputSchema, mcpArcusFetchMarketSnapshotInputSchema, mcpArcusFetchMarketSnapshotOutputSchema, mcpArcusFetchMarketsInputSchema, mcpArcusFetchMarketsOutputSchema, mcpArcusFetchOhlcvInputSchema, mcpArcusFetchOhlcvOutputSchema, mcpArcusFetchOpenContextInputSchema, mcpArcusFetchOpenContextOutputSchema, mcpArcusFetchOpenOrdersInputSchema, mcpArcusFetchOpenOrdersOutputSchema, mcpArcusFetchPositionsInputSchema, mcpArcusFetchPositionsOutputSchema, mcpArcusSearchMarketsInputSchema, mcpArcusSearchMarketsOutputSchema, mcpArcusSpotBuildRfqMultisignInputSchema, mcpArcusSpotFetchBalancesInputSchema, mcpArcusSpotFetchBalancesOutputSchema, mcpArcusSpotFetchMarketsInputSchema, mcpArcusSpotFetchMarketsOutputSchema, mcpArcusSpotFetchOhlcvInputSchema, mcpArcusSpotFetchOhlcvOutputSchema, mcpCompoundV3BulkerInputSchema, mcpCompoundV3ClaimRewardsInputSchema, mcpCompoundV3FetchAccountInputSchema, mcpCompoundV3FetchAccountOutputSchema, mcpCompoundV3FetchMarketInputSchema, mcpCompoundV3FetchMarketOutputSchema, mcpCompoundV3FetchMarketsInputSchema, mcpCompoundV3FetchMarketsOutputSchema, mcpCompoundV3RepayInputSchema, mcpCompoundV3SupplyInputSchema, mcpCompoundV3WithdrawInputSchema, mcpContinuumDaoAttachInputSchema, mcpContinuumDaoCastVoteBravoInputSchema, mcpContinuumDaoCastVoteDeltaInputSchema, mcpContinuumDaoComposeProposalActionInputSchema, mcpContinuumDaoComposeProposalActionOutputSchema, mcpContinuumDaoCreateLockInputSchema, mcpContinuumDaoDelegateInputSchema, mcpContinuumDaoExplainProposalInputSchema, mcpContinuumDaoExplainProposalOutputSchema, mcpContinuumDaoFetchDelegatesInputSchema, mcpContinuumDaoFetchDelegatesOutputSchema, mcpContinuumDaoFetchLiveProposalsInputSchema, mcpContinuumDaoFetchLiveProposalsOutputSchema, mcpContinuumDaoFetchProposalInputSchema, mcpContinuumDaoFetchProposalOutputSchema, mcpContinuumDaoFetchProposalStateInputSchema, mcpContinuumDaoFetchProposalStateOutputSchema, mcpContinuumDaoFetchProposalVotesInputSchema, mcpContinuumDaoFetchProposalVotesOutputSchema, mcpContinuumDaoFetchProposalsInputSchema, mcpContinuumDaoFetchProposalsOutputSchema, mcpContinuumDaoFetchVotingPowerInputSchema, mcpContinuumDaoFetchVotingPowerOutputSchema, mcpContinuumDaoForumCreateIdeaInputSchema, mcpContinuumDaoForumCreateIdeaOutputSchema, mcpContinuumDaoForumCreateTopicInputSchema, mcpContinuumDaoForumCreateTopicOutputSchema, mcpContinuumDaoForumDeleteInputSchema, mcpContinuumDaoForumDeleteOutputSchema, mcpContinuumDaoForumFetchPostInputSchema, mcpContinuumDaoForumFetchPostOutputSchema, mcpContinuumDaoForumFetchThreadInputSchema, mcpContinuumDaoForumFetchThreadOutputSchema, mcpContinuumDaoForumMarkReadInputSchema, mcpContinuumDaoForumMarkReadOutputSchema, mcpContinuumDaoForumMarkUnreadInputSchema, mcpContinuumDaoForumMarkUnreadOutputSchema, mcpContinuumDaoForumMeInputSchema, mcpContinuumDaoForumMeOutputSchema, mcpContinuumDaoForumReactInputSchema, mcpContinuumDaoForumReactOutputSchema, mcpContinuumDaoForumRecentInputSchema, mcpContinuumDaoForumRecentOutputSchema, mcpContinuumDaoForumReplyCountInputSchema, mcpContinuumDaoForumReplyCountOutputSchema, mcpContinuumDaoForumReplyInputSchema, mcpContinuumDaoForumReplyOutputSchema, mcpContinuumDaoForumResolveInputSchema, mcpContinuumDaoForumResolveOutputSchema, mcpContinuumDaoForumSearchInputSchema, mcpContinuumDaoForumSearchOutputSchema, mcpContinuumDaoForumSectionsInputSchema, mcpContinuumDaoForumSectionsOutputSchema, mcpContinuumDaoForumSignInEligibleInputSchema, mcpContinuumDaoForumSignInEligibleOutputSchema, mcpContinuumDaoForumSignInInputSchema, mcpContinuumDaoForumSignOutInputSchema, mcpContinuumDaoForumSignOutOutputSchema, mcpContinuumDaoForumUnreadInputSchema, mcpContinuumDaoForumUnreadOutputSchema, mcpContinuumDaoForumUserPostIdsInputSchema, mcpContinuumDaoForumUserPostIdsOutputSchema, mcpContinuumDaoIncreaseAmountInputSchema, mcpContinuumDaoIncreaseUnlockTimeInputSchema, mcpContinuumDaoMergeInputSchema, mcpContinuumDaoMpaFlagInputSchema, mcpContinuumDaoMpaFlagOutputSchema, mcpContinuumDaoMpaListingInputSchema, mcpContinuumDaoMpaListingOutputSchema, mcpContinuumDaoMpaMailboxListInputSchema, mcpContinuumDaoMpaMailboxListOutputSchema, mcpContinuumDaoMpaMailboxOpenInputSchema, mcpContinuumDaoMpaMailboxOpenOutputSchema, mcpContinuumDaoMpaMailboxSendInputSchema, mcpContinuumDaoMpaMailboxSendOutputSchema, mcpContinuumDaoMpaRetractInputSchema, mcpContinuumDaoMpaRetractOutputSchema, mcpContinuumDaoProposalIdInputSchema, mcpContinuumDaoProposalVoteRowSchema, mcpContinuumDaoProposeBravoInputSchema, mcpContinuumDaoProposeDeltaInputSchema, mcpContinuumDaoRegisterProposalInputSchema, mcpContinuumDaoRegisterProposalOutputSchema, mcpContinuumDaoRequestDetachInputSchema, mcpContinuumDaoSimulateProposalInputSchema, mcpContinuumDaoSimulateProposalOutputSchema, mcpContinuumDaoSplitInputSchema, mcpContinuumDaoTechnocoreBindInputSchema, mcpContinuumDaoTechnocoreBindOutputSchema, mcpContinuumDaoTokenIdInputSchema, mcpContinuumDaoTransferInputSchema, mcpContinuumDaoUndelegateInputSchema, mcpCurveDaoBuildAddLiquidityMultisignInputSchema, mcpCurveDaoBuildGaugeDepositMultisignInputSchema, mcpCurveDaoBuildRemoveLiquidityMultisignInputSchema, mcpCurveDaoBuildSwapMultisignInputSchema, mcpCurveDaoFetchImportantPoolsInputSchema, mcpCurveDaoFetchImportantPoolsOutputSchema, mcpCurveDaoFetchLpYieldsInputSchema, mcpCurveDaoFetchLpYieldsOutputSchema, mcpCurveDaoQuoteAddLiquidityInputSchema, mcpCurveDaoQuoteAddLiquidityOutputSchema, mcpCurveDaoQuoteInputSchema, mcpCurveDaoQuoteOutputSchema, mcpCurveDaoQuoteRemoveLiquidityInputSchema, mcpCurveDaoQuoteRemoveLiquidityOutputSchema, mcpEthenaClaimInputSchema, mcpEthenaCooldownInputSchema, mcpEthenaFetchSusdeApyInputSchema, mcpEthenaFetchSusdeApyOutputSchema, mcpEthenaRedeemInputSchema, mcpEthenaStakeInputSchema, mcpEulerV2BorrowRepayInputSchema, mcpEulerV2CollateralDepositInputSchema, mcpEulerV2CollateralWithdrawInputSchema, mcpEulerV2FetchEarnVaultsInputSchema, mcpEulerV2FetchEarnVaultsOutputSchema, mcpEulerV2FetchLendVaultsInputSchema, mcpEulerV2FetchLendVaultsOutputSchema, mcpEulerV2IsolatedBorrowInputSchema, mcpEulerV2IsolatedLendInputSchema, mcpEulerV2MerklClaimInputSchema, mcpEulerV2VaultWithdrawInputSchema, mcpGmxCancelInputSchema, mcpGmxDecreaseInputSchema, mcpGmxFetchGmApyInputSchema, mcpGmxFetchGmApyOutputSchema, mcpGmxFetchGmMarketsInputSchema, mcpGmxFetchGmMarketsOutputSchema, mcpGmxFetchMarketPricesInputSchema, mcpGmxFetchMarketPricesOutputSchema, mcpGmxFetchMarketsInputSchema, mcpGmxFetchMarketsOutputSchema, mcpGmxFetchOhlcvInputSchema, mcpGmxFetchOhlcvOutputSchema, mcpGmxFetchOrdersInputSchema, mcpGmxFetchOrdersOutputSchema, mcpGmxFetchPositionsInputSchema, mcpGmxFetchPositionsOutputSchema, mcpGmxFetchStakingPowerInputSchema, mcpGmxFetchStakingPowerOutputSchema, mcpGmxGmDepositInputSchema, mcpGmxGmWithdrawInputSchema, mcpGmxIncreaseInputSchema, mcpServerSubmitOutputSchema as mcpGmxMultisignOutputSchema, mcpGmxStakeGmxInputSchema, mcpGmxUnstakeGmxInputSchema, mcpHyperliquidBridgeDepositInputSchema, mcpHyperliquidBridgeWithdrawInputSchema, mcpHyperliquidCancelInputSchema, mcpHyperliquidCloseInputSchema, mcpHyperliquidDelegateInputSchema, mcpHyperliquidFetchDelegationsInputSchema, mcpHyperliquidFetchDelegationsOutputSchema, mcpHyperliquidFetchLendMarketsInputSchema, mcpHyperliquidFetchLendMarketsOutputSchema, mcpHyperliquidFetchLendPositionsInputSchema, mcpHyperliquidFetchLendPositionsOutputSchema, mcpHyperliquidFetchMarketSnapshotInputSchema, mcpHyperliquidFetchMarketSnapshotOutputSchema, mcpHyperliquidFetchMarketsInputSchema, mcpHyperliquidFetchMarketsOutputSchema, mcpHyperliquidFetchOhlcvInputSchema, mcpHyperliquidFetchOhlcvOutputSchema, mcpHyperliquidFetchOpenContextInputSchema, mcpHyperliquidFetchOpenContextOutputSchema, mcpHyperliquidFetchOpenOrdersInputSchema, mcpHyperliquidFetchOpenOrdersOutputSchema, mcpHyperliquidFetchPositionsInputSchema, mcpHyperliquidFetchPositionsOutputSchema, mcpHyperliquidFetchStakingSummaryInputSchema, mcpHyperliquidFetchStakingSummaryOutputSchema, mcpHyperliquidFetchStockMarketsInputSchema, mcpHyperliquidFetchStockMarketsOutputSchema, mcpHyperliquidFetchUsdClassBalancesInputSchema, mcpHyperliquidFetchUsdClassBalancesOutputSchema, mcpHyperliquidFetchUserVaultEquitiesInputSchema, mcpHyperliquidFetchUserVaultEquitiesOutputSchema, mcpHyperliquidFetchVaultApysInputSchema, mcpHyperliquidFetchVaultApysOutputSchema, mcpHyperliquidFetchVaultsInputSchema, mcpHyperliquidFetchVaultsOutputSchema, mcpHyperliquidLendInputSchema, mcpHyperliquidLimitOrderInputSchema, mcpHyperliquidSearchMarketsInputSchema, mcpHyperliquidSearchMarketsOutputSchema, mcpHyperliquidStakeInputSchema, mcpHyperliquidUndelegateInputSchema, mcpHyperliquidUnstakeInputSchema, mcpHyperliquidUpdateLeverageInputSchema, mcpHyperliquidUsdTransferInputSchema, mcpHyperliquidVaultDepositInputSchema, mcpHyperliquidVaultWithdrawInputSchema, mcpLidoClaimWithdrawalInputSchema, mcpLidoFetchStethAprInputSchema, mcpLidoFetchStethAprOutputSchema, mcpLidoRequestWithdrawalsInputSchema, mcpLidoSubmitInputSchema, mcpLidoUnwrapWstEthInputSchema, mcpLidoWrapStEthInputSchema, mcpMapleDepositInputSchema, mcpMapleFetchMarketInputSchema, mcpMapleFetchMarketOutputSchema, mcpMapleFetchMarketsInputSchema, mcpMapleFetchMarketsOutputSchema, mcpMapleRequestRedeemInputSchema, mcpMerklRewardsFetchInputSchema, mcpMerklRewardsFetchOutputSchema, mcpMorphoBlueBorrowInputSchema, mcpMorphoBlueCollateralDepositInputSchema, mcpMorphoBlueCollateralWithdrawInputSchema, mcpMorphoBlueRepayInputSchema, mcpMorphoBlueSupplyInputSchema, mcpMorphoBlueWithdrawInputSchema, mcpMorphoFetchBlueMarketsInputSchema, mcpMorphoFetchBlueMarketsOutputSchema, mcpMorphoFetchEarnVaultsInputSchema, mcpMorphoFetchEarnVaultsOutputSchema, mcpMorphoFetchMidnightBooksInputSchema, mcpMorphoFetchMidnightBooksOutputSchema, mcpMorphoFetchMidnightOffersInputSchema, mcpMorphoFetchMidnightOffersOutputSchema, mcpMorphoFetchMidnightPositionsInputSchema, mcpMorphoFetchMidnightPositionsOutputSchema, mcpMorphoFetchMidnightQuoteInputSchema, mcpMorphoFetchMidnightQuoteOutputSchema, mcpMorphoFetchPositionsInputSchema, mcpMorphoFetchPositionsOutputSchema, mcpMorphoFetchStockMarketsInputSchema, mcpMorphoFetchStockMarketsOutputSchema, mcpMorphoMerklClaimInputSchema, mcpMorphoMidnightBorrowInputSchema, mcpMorphoMidnightCancelLendOfferInputSchema, mcpMorphoMidnightLendInputSchema, mcpMorphoMidnightLendOfferInputSchema, mcpMorphoMidnightRepayInputSchema, mcpMorphoVaultDepositInputSchema, mcpMorphoVaultWithdrawInputSchema, mcpMultisignInput, multisignOutputSchema as mcpMultisignOutputSchema, mcpServerSubmitOutputSchema as mcpMultisignSubmitOutputSchema, mcpPendleBuildAddLiquidityMultisignInputSchema, mcpPendleBuildMintPyMultisignInputSchema, mcpPendleBuildMintSyMultisignInputSchema, mcpPendleBuildRedeemPyMultisignInputSchema, mcpPendleBuildRedeemRewardsMultisignInputSchema, mcpPendleBuildRedeemSyMultisignInputSchema, mcpPendleBuildRemoveLiquidityMultisignInputSchema, mcpPendleBuildSwapMultisignInputSchema, mcpPendleFetchMarketsInputSchema, mcpPendleFetchMarketsOutputSchema, mcpPendleFetchMerkleRewardsInputSchema, mcpPendleFetchMerkleRewardsOutputSchema, mcpPendleFetchPositionsInputSchema, mcpPendleFetchPositionsOutputSchema, mcpPendleFetchPricesInputSchema, mcpPendleFetchPricesOutputSchema, mcpPendleQuoteAddLiquidityInputSchema, mcpPendleQuoteMintPyInputSchema, mcpPendleQuoteMintSyInputSchema, mcpPendleQuoteOutputSchema, mcpPendleQuoteRedeemPyInputSchema, mcpPendleQuoteRedeemSyInputSchema, mcpPendleQuoteRemoveLiquidityInputSchema, mcpPendleQuoteSwapInputSchema, mcpPendleSearchAssetsInputSchema, mcpPendleSearchAssetsOutputSchema, mcpServerCommonInputSchema, mcpServerMultisignInput, mcpServerSubmitOutputSchema, mcpSkyFetchSusdsRateInputSchema, mcpSkyFetchSusdsRateOutputSchema, mcpSkyLockstakeCloseInputSchema, mcpSkyLockstakeDrawInputSchema, mcpSkyLockstakeGetRewardInputSchema, mcpSkyLockstakeStakeInputSchema, mcpSkyLockstakeWipeInputSchema, mcpSkySusdsDepositInputSchema, mcpSkySusdsRedeemInputSchema, mcpUniswapV4BuildAllowlistFinalizeMultisignInputSchema, mcpUniswapV4BuildCollectFeesMultisignInputSchema, mcpUniswapV4BuildDecreaseLiquidityMultisignInputSchema, mcpUniswapV4BuildIncreaseLiquidityMultisignInputSchema, mcpUniswapV4BuildLimitOrderMultisignInputSchema, mcpUniswapV4BuildMintLiquidityMultisignInputSchema, mcpUniswapV4BuildSwapMultisignInputSchema, mcpUniswapV4CheckPermissionsInputSchema, mcpUniswapV4CheckPermissionsOutputSchema, mcpUniswapV4CreateSwapInputSchema, mcpUniswapV4CreateSwapOutputSchema, mcpUniswapV4FetchLimitOrdersInputSchema, mcpUniswapV4FetchLimitOrdersOutputSchema, mcpUniswapV4FetchOhlcvInputSchema, mcpUniswapV4FetchOhlcvOutputSchema, mcpUniswapV4KycApplyLinkInputSchema, mcpUniswapV4KycApplyLinkOutputSchema, mcpUniswapV4LimitOrderQuoteInputSchema, mcpUniswapV4LimitOrderQuoteOutputSchema, mcpUniswapV4LpClaimInputSchema, mcpUniswapV4LpClaimOutputSchema, mcpUniswapV4LpCreatePositionInputSchema, mcpUniswapV4LpCreatePositionOutputSchema, mcpUniswapV4LpDecreaseInputSchema, mcpUniswapV4LpDecreaseOutputSchema, mcpUniswapV4LpIncreaseInputSchema, mcpUniswapV4LpIncreaseOutputSchema, mcpUniswapV4LpListPoolsInputSchema, mcpUniswapV4LpListPoolsOutputSchema, mcpUniswapV4LpListPositionsInputSchema, mcpUniswapV4LpListPositionsOutputSchema, mcpUniswapV4QuoteInputSchema, mcpUniswapV4QuoteOutputSchema, mcpUniswapV4RegisterPositionFromMintTxInputSchema, mcpUniswapV4RegisterPositionFromMintTxOutputSchema, mcpUniswapV4RegisterPositionNftInputSchema, mcpUniswapV4RegisterPositionNftOutputSchema, mcpVeniceBurnDiemInputSchema, mcpVeniceCompleteUnstakeDiemInputSchema, mcpVeniceCompleteUnstakeSvvvInputSchema, mcpVeniceInitiateUnstakeDiemInputSchema, mcpVeniceInitiateUnstakeSvvvInputSchema, mcpVeniceListModelsInputSchema, mcpVeniceListModelsOutputSchema, mcpVeniceMintDiemInputSchema, mcpVeniceReadMintDiemPreviewInputSchema, mcpVeniceReadMintDiemPreviewOutputSchema, mcpVeniceReadStakingStateInputSchema, mcpVeniceReadStakingStateOutputSchema, mcpVeniceStakeDiemInputSchema, mcpVeniceStakeVvvInputSchema, multisignOutputSchema, parseAgentBoolean, parseAgentEvmChainId, parseMcpToolInput, parseMcpToolOutput, parseMultisignBuilderOutput, uniswapQuoteTradeTypeSchema, zodSchemaToMcpJsonSchema };
13826
+ 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, agentEvmChainIdSchema, chainDetailSchema, evmAddressSchema, evmMultisignCommonInputSchema, getActionsByChainCategory, getAgentCatalog, getAgentCatalogForMcp, getMcpToolByName, getMcpToolDefinitions, getMcpToolInputSchema, getMcpToolOutputSchema, getProtocolDiscoverySummary, getProtocolModules, getProtocolSkill, getProtocolSupportAdvisor, getToolsForProtocol, jsonObjectSchema, keyGenSchema, listProtocolSupportAdvisorIds, listProtocolsWithSkills, mcpAaveV4BorrowInputSchema, mcpAaveV4DepositInputSchema, mcpAaveV4FetchMarketInputSchema, mcpAaveV4FetchMarketOutputSchema, mcpAaveV4FetchMarketsInputSchema, mcpAaveV4FetchMarketsOutputSchema, mcpAaveV4MerklClaimInputSchema, mcpAaveV4RepayInputSchema, mcpAaveV4WithdrawInputSchema, mcpAerodromeBuildAddLiquidityMultisignInputSchema, mcpAerodromeBuildClBurnMultisignInputSchema, mcpAerodromeBuildClCollectFeesMultisignInputSchema, mcpAerodromeBuildClDecreaseMultisignInputSchema, mcpAerodromeBuildClIncreaseMultisignInputSchema, mcpAerodromeBuildClMintMultisignInputSchema, mcpAerodromeBuildClaimEmissionsMultisignInputSchema, mcpAerodromeBuildClaimFeesMultisignInputSchema, mcpAerodromeBuildGaugeStakeMultisignInputSchema, mcpAerodromeBuildGaugeUnstakeMultisignInputSchema, mcpAerodromeBuildRemoveLiquidityMultisignInputSchema, mcpAerodromeBuildSwapMultisignInputSchema, mcpAerodromeDiscoverPoolsInputSchema, mcpAerodromeDiscoverPoolsOutputSchema, mcpAerodromeFetchLpYieldsInputSchema, mcpAerodromeFetchLpYieldsOutputSchema, mcpAerodromeFetchPoolsInputSchema, mcpAerodromeFetchPoolsOutputSchema, mcpAerodromeFetchPositionsInputSchema, mcpAerodromeFetchPositionsOutputSchema, mcpAerodromeFetchStockLpYieldsInputSchema, mcpAerodromeFetchStockLpYieldsOutputSchema, mcpAerodromeQuoteAddLiquidityInputSchema, mcpAerodromeQuoteAddLiquidityOutputSchema, mcpAerodromeQuoteClDepositInputSchema, mcpAerodromeQuoteClDepositOutputSchema, mcpAerodromeQuoteInputSchema, mcpAerodromeQuoteOutputSchema, mcpArcusBuildCancelOrderMultisignInputSchema, mcpArcusBuildCloseMultisignInputSchema, mcpArcusBuildCreateApiKeyMultisignInputSchema, mcpArcusBuildDepositMultisignInputSchema, mcpArcusBuildPlaceOrderMultisignInputSchema, mcpArcusBuildSetLeverageMultisignInputSchema, mcpArcusBuildWithdrawMultisignInputSchema, mcpArcusFetchAccountInputSchema, mcpArcusFetchAccountOutputSchema, mcpArcusFetchMarketSnapshotInputSchema, mcpArcusFetchMarketSnapshotOutputSchema, mcpArcusFetchMarketsInputSchema, mcpArcusFetchMarketsOutputSchema, mcpArcusFetchOhlcvInputSchema, mcpArcusFetchOhlcvOutputSchema, mcpArcusFetchOpenContextInputSchema, mcpArcusFetchOpenContextOutputSchema, mcpArcusFetchOpenOrdersInputSchema, mcpArcusFetchOpenOrdersOutputSchema, mcpArcusFetchPositionsInputSchema, mcpArcusFetchPositionsOutputSchema, mcpArcusSearchMarketsInputSchema, mcpArcusSearchMarketsOutputSchema, mcpArcusSpotBuildRfqMultisignInputSchema, mcpArcusSpotFetchBalancesInputSchema, mcpArcusSpotFetchBalancesOutputSchema, mcpArcusSpotFetchMarketsInputSchema, mcpArcusSpotFetchMarketsOutputSchema, mcpArcusSpotFetchOhlcvInputSchema, mcpArcusSpotFetchOhlcvOutputSchema, mcpCompoundV3BulkerInputSchema, mcpCompoundV3ClaimRewardsInputSchema, mcpCompoundV3FetchAccountInputSchema, mcpCompoundV3FetchAccountOutputSchema, mcpCompoundV3FetchMarketInputSchema, mcpCompoundV3FetchMarketOutputSchema, mcpCompoundV3FetchMarketsInputSchema, mcpCompoundV3FetchMarketsOutputSchema, mcpCompoundV3RepayInputSchema, mcpCompoundV3SupplyInputSchema, mcpCompoundV3WithdrawInputSchema, mcpContinuumDaoAttachInputSchema, mcpContinuumDaoCastVoteBravoInputSchema, mcpContinuumDaoCastVoteDeltaInputSchema, mcpContinuumDaoComposeProposalActionInputSchema, mcpContinuumDaoComposeProposalActionOutputSchema, mcpContinuumDaoCreateLockInputSchema, mcpContinuumDaoDelegateInputSchema, mcpContinuumDaoExplainProposalInputSchema, mcpContinuumDaoExplainProposalOutputSchema, mcpContinuumDaoFetchDelegatesInputSchema, mcpContinuumDaoFetchDelegatesOutputSchema, mcpContinuumDaoFetchLiveProposalsInputSchema, mcpContinuumDaoFetchLiveProposalsOutputSchema, mcpContinuumDaoFetchProposalInputSchema, mcpContinuumDaoFetchProposalOutputSchema, mcpContinuumDaoFetchProposalStateInputSchema, mcpContinuumDaoFetchProposalStateOutputSchema, mcpContinuumDaoFetchProposalVotesInputSchema, mcpContinuumDaoFetchProposalVotesOutputSchema, mcpContinuumDaoFetchProposalsInputSchema, mcpContinuumDaoFetchProposalsOutputSchema, mcpContinuumDaoFetchVotingPowerInputSchema, mcpContinuumDaoFetchVotingPowerOutputSchema, mcpContinuumDaoForumCreateIdeaInputSchema, mcpContinuumDaoForumCreateIdeaOutputSchema, mcpContinuumDaoForumCreateTopicInputSchema, mcpContinuumDaoForumCreateTopicOutputSchema, mcpContinuumDaoForumDeleteInputSchema, mcpContinuumDaoForumDeleteOutputSchema, mcpContinuumDaoForumFetchPostInputSchema, mcpContinuumDaoForumFetchPostOutputSchema, mcpContinuumDaoForumFetchThreadInputSchema, mcpContinuumDaoForumFetchThreadOutputSchema, mcpContinuumDaoForumMarkReadInputSchema, mcpContinuumDaoForumMarkReadOutputSchema, mcpContinuumDaoForumMarkUnreadInputSchema, mcpContinuumDaoForumMarkUnreadOutputSchema, mcpContinuumDaoForumMeInputSchema, mcpContinuumDaoForumMeOutputSchema, mcpContinuumDaoForumReactInputSchema, mcpContinuumDaoForumReactOutputSchema, mcpContinuumDaoForumRecentInputSchema, mcpContinuumDaoForumRecentOutputSchema, mcpContinuumDaoForumReplyCountInputSchema, mcpContinuumDaoForumReplyCountOutputSchema, mcpContinuumDaoForumReplyInputSchema, mcpContinuumDaoForumReplyOutputSchema, mcpContinuumDaoForumResolveInputSchema, mcpContinuumDaoForumResolveOutputSchema, mcpContinuumDaoForumSearchInputSchema, mcpContinuumDaoForumSearchOutputSchema, mcpContinuumDaoForumSectionsInputSchema, mcpContinuumDaoForumSectionsOutputSchema, mcpContinuumDaoForumSignInEligibleInputSchema, mcpContinuumDaoForumSignInEligibleOutputSchema, mcpContinuumDaoForumSignInInputSchema, mcpContinuumDaoForumSignOutInputSchema, mcpContinuumDaoForumSignOutOutputSchema, mcpContinuumDaoForumUnreadInputSchema, mcpContinuumDaoForumUnreadOutputSchema, mcpContinuumDaoForumUserPostIdsInputSchema, mcpContinuumDaoForumUserPostIdsOutputSchema, mcpContinuumDaoIncreaseAmountInputSchema, mcpContinuumDaoIncreaseUnlockTimeInputSchema, mcpContinuumDaoMergeInputSchema, mcpContinuumDaoMpaFlagInputSchema, mcpContinuumDaoMpaFlagOutputSchema, mcpContinuumDaoMpaListingInputSchema, mcpContinuumDaoMpaListingOutputSchema, mcpContinuumDaoMpaMailboxListInputSchema, mcpContinuumDaoMpaMailboxListOutputSchema, mcpContinuumDaoMpaMailboxOpenInputSchema, mcpContinuumDaoMpaMailboxOpenOutputSchema, mcpContinuumDaoMpaMailboxSendInputSchema, mcpContinuumDaoMpaMailboxSendOutputSchema, mcpContinuumDaoMpaRetractInputSchema, mcpContinuumDaoMpaRetractOutputSchema, mcpContinuumDaoProposalIdInputSchema, mcpContinuumDaoProposalVoteRowSchema, mcpContinuumDaoProposeBravoInputSchema, mcpContinuumDaoProposeDeltaInputSchema, mcpContinuumDaoRegisterProposalInputSchema, mcpContinuumDaoRegisterProposalOutputSchema, mcpContinuumDaoRequestDetachInputSchema, mcpContinuumDaoSimulateProposalInputSchema, mcpContinuumDaoSimulateProposalOutputSchema, mcpContinuumDaoSplitInputSchema, mcpContinuumDaoTechnocoreBindInputSchema, mcpContinuumDaoTechnocoreBindOutputSchema, mcpContinuumDaoTokenIdInputSchema, mcpContinuumDaoTransferInputSchema, mcpContinuumDaoUndelegateInputSchema, mcpCurveDaoBuildAddLiquidityMultisignInputSchema, mcpCurveDaoBuildGaugeDepositMultisignInputSchema, mcpCurveDaoBuildRemoveLiquidityMultisignInputSchema, mcpCurveDaoBuildSwapMultisignInputSchema, mcpCurveDaoFetchImportantPoolsInputSchema, mcpCurveDaoFetchImportantPoolsOutputSchema, mcpCurveDaoFetchLpYieldsInputSchema, mcpCurveDaoFetchLpYieldsOutputSchema, mcpCurveDaoQuoteAddLiquidityInputSchema, mcpCurveDaoQuoteAddLiquidityOutputSchema, mcpCurveDaoQuoteInputSchema, mcpCurveDaoQuoteOutputSchema, mcpCurveDaoQuoteRemoveLiquidityInputSchema, mcpCurveDaoQuoteRemoveLiquidityOutputSchema, mcpDeriveCancelInputSchema, mcpDeriveDepositAddressTransferInputSchema, mcpDeriveDepositNewSubaccountInputSchema, mcpDeriveFetchCurrenciesInputSchema, mcpDeriveFetchCurrenciesOutputSchema, mcpDeriveFetchMarketSnapshotInputSchema, mcpDeriveFetchMarketSnapshotOutputSchema, mcpDeriveFetchOhlcvInputSchema, mcpDeriveFetchOhlcvOutputSchema, mcpDeriveFetchOpenOrdersInputSchema, mcpDeriveFetchOpenOrdersOutputSchema, mcpDeriveFetchOptionChainInputSchema, mcpDeriveFetchOptionChainOutputSchema, mcpDeriveFetchPendingDepositsInputSchema, mcpDeriveFetchPendingDepositsOutputSchema, mcpDeriveFetchPortfolioInputSchema, mcpDeriveFetchPortfolioOutputSchema, mcpDeriveFetchPositionsInputSchema, mcpDeriveFetchPositionsOutputSchema, mcpDeriveFetchRiskUniversesInputSchema, mcpDeriveFetchRiskUniversesOutputSchema, mcpDeriveFetchSubaccountsInputSchema, mcpDeriveFetchSubaccountsOutputSchema, mcpDeriveFetchTickersInputSchema, mcpDeriveFetchTickersOutputSchema, mcpDeriveHypeVaultDepositInputSchema, mcpDeriveOrderQuoteInputSchema, mcpDeriveOrderQuoteOutputSchema, mcpDerivePlaceOrderInputSchema, mcpDeriveRegisterDepositAddressInputSchema, mcpDeriveRegisterDepositAddressOutputSchema, mcpDeriveReplaceOrderInputSchema, mcpDeriveSearchInstrumentsInputSchema, mcpDeriveSearchInstrumentsOutputSchema, mcpDeriveSocketDepositInputSchema, mcpDeriveTransferSpotInputSchema, mcpEthenaClaimInputSchema, mcpEthenaCooldownInputSchema, mcpEthenaFetchSusdeApyInputSchema, mcpEthenaFetchSusdeApyOutputSchema, mcpEthenaRedeemInputSchema, mcpEthenaStakeInputSchema, mcpEulerV2BorrowRepayInputSchema, mcpEulerV2CollateralDepositInputSchema, mcpEulerV2CollateralWithdrawInputSchema, mcpEulerV2FetchEarnVaultsInputSchema, mcpEulerV2FetchEarnVaultsOutputSchema, mcpEulerV2FetchLendVaultsInputSchema, mcpEulerV2FetchLendVaultsOutputSchema, mcpEulerV2IsolatedBorrowInputSchema, mcpEulerV2IsolatedLendInputSchema, mcpEulerV2MerklClaimInputSchema, mcpEulerV2VaultWithdrawInputSchema, mcpGetPredictionMarketInputSchema, mcpGetPredictionMarketOutputSchema, mcpGmxCancelInputSchema, mcpGmxDecreaseInputSchema, mcpGmxFetchGmApyInputSchema, mcpGmxFetchGmApyOutputSchema, mcpGmxFetchGmMarketsInputSchema, mcpGmxFetchGmMarketsOutputSchema, mcpGmxFetchMarketPricesInputSchema, mcpGmxFetchMarketPricesOutputSchema, mcpGmxFetchMarketsInputSchema, mcpGmxFetchMarketsOutputSchema, mcpGmxFetchOhlcvInputSchema, mcpGmxFetchOhlcvOutputSchema, mcpGmxFetchOrdersInputSchema, mcpGmxFetchOrdersOutputSchema, mcpGmxFetchPositionsInputSchema, mcpGmxFetchPositionsOutputSchema, mcpGmxFetchStakingPowerInputSchema, mcpGmxFetchStakingPowerOutputSchema, mcpGmxGmDepositInputSchema, mcpGmxGmWithdrawInputSchema, mcpGmxIncreaseInputSchema, mcpServerSubmitOutputSchema as mcpGmxMultisignOutputSchema, mcpGmxStakeGmxInputSchema, mcpGmxUnstakeGmxInputSchema, mcpHyperliquidBridgeDepositInputSchema, mcpHyperliquidBridgeWithdrawInputSchema, mcpHyperliquidCancelInputSchema, mcpHyperliquidCloseInputSchema, mcpHyperliquidDelegateInputSchema, mcpHyperliquidFetchDelegationsInputSchema, mcpHyperliquidFetchDelegationsOutputSchema, mcpHyperliquidFetchLendMarketsInputSchema, mcpHyperliquidFetchLendMarketsOutputSchema, mcpHyperliquidFetchLendPositionsInputSchema, mcpHyperliquidFetchLendPositionsOutputSchema, mcpHyperliquidFetchMarketSnapshotInputSchema, mcpHyperliquidFetchMarketSnapshotOutputSchema, mcpHyperliquidFetchMarketsInputSchema, mcpHyperliquidFetchMarketsOutputSchema, mcpHyperliquidFetchOhlcvInputSchema, mcpHyperliquidFetchOhlcvOutputSchema, mcpHyperliquidFetchOpenContextInputSchema, mcpHyperliquidFetchOpenContextOutputSchema, mcpHyperliquidFetchOpenOrdersInputSchema, mcpHyperliquidFetchOpenOrdersOutputSchema, mcpHyperliquidFetchPositionsInputSchema, mcpHyperliquidFetchPositionsOutputSchema, mcpHyperliquidFetchStakingSummaryInputSchema, mcpHyperliquidFetchStakingSummaryOutputSchema, mcpHyperliquidFetchStockMarketsInputSchema, mcpHyperliquidFetchStockMarketsOutputSchema, mcpHyperliquidFetchUsdClassBalancesInputSchema, mcpHyperliquidFetchUsdClassBalancesOutputSchema, mcpHyperliquidFetchUserVaultEquitiesInputSchema, mcpHyperliquidFetchUserVaultEquitiesOutputSchema, mcpHyperliquidFetchVaultApysInputSchema, mcpHyperliquidFetchVaultApysOutputSchema, mcpHyperliquidFetchVaultsInputSchema, mcpHyperliquidFetchVaultsOutputSchema, mcpHyperliquidLendInputSchema, mcpHyperliquidLimitOrderInputSchema, mcpHyperliquidSearchMarketsInputSchema, mcpHyperliquidSearchMarketsOutputSchema, mcpHyperliquidStakeInputSchema, mcpHyperliquidTrailingStopInputSchema, mcpHyperliquidUndelegateInputSchema, mcpHyperliquidUnstakeInputSchema, mcpHyperliquidUpdateLeverageInputSchema, mcpHyperliquidUsdTransferInputSchema, mcpHyperliquidVaultDepositInputSchema, mcpHyperliquidVaultWithdrawInputSchema, mcpLidoClaimWithdrawalInputSchema, mcpLidoFetchStethAprInputSchema, mcpLidoFetchStethAprOutputSchema, mcpLidoRequestWithdrawalsInputSchema, mcpLidoSubmitInputSchema, mcpLidoUnwrapWstEthInputSchema, mcpLidoWrapStEthInputSchema, mcpListMyPredictionMarketsInputSchema, mcpListMyPredictionMarketsOutputSchema, mcpMapleDepositInputSchema, mcpMapleFetchMarketInputSchema, mcpMapleFetchMarketOutputSchema, mcpMapleFetchMarketsInputSchema, mcpMapleFetchMarketsOutputSchema, mcpMapleRequestRedeemInputSchema, mcpMerklRewardsFetchInputSchema, mcpMerklRewardsFetchOutputSchema, mcpMorphoBlueBorrowInputSchema, mcpMorphoBlueCollateralDepositInputSchema, mcpMorphoBlueCollateralWithdrawInputSchema, mcpMorphoBlueRepayInputSchema, mcpMorphoBlueSupplyInputSchema, mcpMorphoBlueWithdrawInputSchema, mcpMorphoFetchBlueMarketsInputSchema, mcpMorphoFetchBlueMarketsOutputSchema, mcpMorphoFetchEarnVaultsInputSchema, mcpMorphoFetchEarnVaultsOutputSchema, mcpMorphoFetchMidnightBooksInputSchema, mcpMorphoFetchMidnightBooksOutputSchema, mcpMorphoFetchMidnightOffersInputSchema, mcpMorphoFetchMidnightOffersOutputSchema, mcpMorphoFetchMidnightPositionsInputSchema, mcpMorphoFetchMidnightPositionsOutputSchema, mcpMorphoFetchMidnightQuoteInputSchema, mcpMorphoFetchMidnightQuoteOutputSchema, mcpMorphoFetchPositionsInputSchema, mcpMorphoFetchPositionsOutputSchema, mcpMorphoFetchStockMarketsInputSchema, mcpMorphoFetchStockMarketsOutputSchema, mcpMorphoMerklClaimInputSchema, mcpMorphoMidnightBorrowInputSchema, mcpMorphoMidnightCancelLendOfferInputSchema, mcpMorphoMidnightLendInputSchema, mcpMorphoMidnightLendOfferInputSchema, mcpMorphoMidnightRepayInputSchema, mcpMorphoVaultDepositInputSchema, mcpMorphoVaultWithdrawInputSchema, mcpMultisignInput, multisignOutputSchema as mcpMultisignOutputSchema, mcpServerSubmitOutputSchema as mcpMultisignSubmitOutputSchema, mcpPendleBuildAddLiquidityMultisignInputSchema, mcpPendleBuildMintPyMultisignInputSchema, mcpPendleBuildMintSyMultisignInputSchema, mcpPendleBuildRedeemPyMultisignInputSchema, mcpPendleBuildRedeemRewardsMultisignInputSchema, mcpPendleBuildRedeemSyMultisignInputSchema, mcpPendleBuildRemoveLiquidityMultisignInputSchema, mcpPendleBuildSwapMultisignInputSchema, mcpPendleFetchMarketsInputSchema, mcpPendleFetchMarketsOutputSchema, mcpPendleFetchMerkleRewardsInputSchema, mcpPendleFetchMerkleRewardsOutputSchema, mcpPendleFetchPositionsInputSchema, mcpPendleFetchPositionsOutputSchema, mcpPendleFetchPricesInputSchema, mcpPendleFetchPricesOutputSchema, mcpPendleQuoteAddLiquidityInputSchema, mcpPendleQuoteMintPyInputSchema, mcpPendleQuoteMintSyInputSchema, mcpPendleQuoteOutputSchema, mcpPendleQuoteRedeemPyInputSchema, mcpPendleQuoteRedeemSyInputSchema, mcpPendleQuoteRemoveLiquidityInputSchema, mcpPendleQuoteSwapInputSchema, mcpPendleSearchAssetsInputSchema, mcpPendleSearchAssetsOutputSchema, mcpPredictionMarketRowSchema, mcpSearchPredictionMarketsInputSchema, mcpSearchPredictionMarketsOutputSchema, mcpServerCommonInputSchema, mcpServerMultisignInput, mcpServerSubmitOutputSchema, mcpSkyFetchSusdsRateInputSchema, mcpSkyFetchSusdsRateOutputSchema, mcpSkyLockstakeCloseInputSchema, mcpSkyLockstakeDrawInputSchema, mcpSkyLockstakeGetRewardInputSchema, mcpSkyLockstakeStakeInputSchema, mcpSkyLockstakeWipeInputSchema, mcpSkySusdsDepositInputSchema, mcpSkySusdsRedeemInputSchema, mcpTrueoBurnInputSchema, mcpTrueoCancelOrderInputSchema, mcpTrueoCreateOrderInputSchema, mcpTrueoFetchCategoriesInputSchema, mcpTrueoFetchCategoriesOutputSchema, mcpTrueoFetchChanceSeriesInputSchema, mcpTrueoFetchChanceSeriesOutputSchema, mcpTrueoFetchMarketInputSchema, mcpTrueoFetchMarketOutputSchema, mcpTrueoFetchOrderbookInputSchema, mcpTrueoFetchOrderbookOutputSchema, mcpTrueoFetchTrendingInputSchema, mcpTrueoFetchTrendingOutputSchema, mcpTrueoMarketRowSchema, mcpTrueoMintInputSchema, mcpTrueoRedeemInputSchema, mcpTrueoSearchMarketsInputSchema, mcpTrueoSearchMarketsOutputSchema, mcpTrueoSwapInputSchema, mcpTrueoUnwrapTydInputSchema, mcpTrueoWrapTydInputSchema, mcpUniswapV4BuildAllowlistFinalizeMultisignInputSchema, mcpUniswapV4BuildCollectFeesMultisignInputSchema, mcpUniswapV4BuildDecreaseLiquidityMultisignInputSchema, mcpUniswapV4BuildIncreaseLiquidityMultisignInputSchema, mcpUniswapV4BuildLimitOrderMultisignInputSchema, mcpUniswapV4BuildMintLiquidityMultisignInputSchema, mcpUniswapV4BuildSwapMultisignInputSchema, mcpUniswapV4CheckPermissionsInputSchema, mcpUniswapV4CheckPermissionsOutputSchema, mcpUniswapV4CreateSwapInputSchema, mcpUniswapV4CreateSwapOutputSchema, mcpUniswapV4FetchLimitOrdersInputSchema, mcpUniswapV4FetchLimitOrdersOutputSchema, mcpUniswapV4FetchOhlcvInputSchema, mcpUniswapV4FetchOhlcvOutputSchema, mcpUniswapV4KycApplyLinkInputSchema, mcpUniswapV4KycApplyLinkOutputSchema, mcpUniswapV4LimitOrderQuoteInputSchema, mcpUniswapV4LimitOrderQuoteOutputSchema, mcpUniswapV4LpClaimInputSchema, mcpUniswapV4LpClaimOutputSchema, mcpUniswapV4LpCreatePositionInputSchema, mcpUniswapV4LpCreatePositionOutputSchema, mcpUniswapV4LpDecreaseInputSchema, mcpUniswapV4LpDecreaseOutputSchema, mcpUniswapV4LpIncreaseInputSchema, mcpUniswapV4LpIncreaseOutputSchema, mcpUniswapV4LpListPoolsInputSchema, mcpUniswapV4LpListPoolsOutputSchema, mcpUniswapV4LpListPositionsInputSchema, mcpUniswapV4LpListPositionsOutputSchema, mcpUniswapV4QuoteInputSchema, mcpUniswapV4QuoteOutputSchema, mcpUniswapV4RegisterPositionFromMintTxInputSchema, mcpUniswapV4RegisterPositionFromMintTxOutputSchema, mcpUniswapV4RegisterPositionNftInputSchema, mcpUniswapV4RegisterPositionNftOutputSchema, mcpVeniceBurnDiemInputSchema, mcpVeniceCompleteUnstakeDiemInputSchema, mcpVeniceCompleteUnstakeSvvvInputSchema, mcpVeniceInitiateUnstakeDiemInputSchema, mcpVeniceInitiateUnstakeSvvvInputSchema, mcpVeniceListModelsInputSchema, mcpVeniceListModelsOutputSchema, mcpVeniceMintDiemInputSchema, mcpVeniceReadMintDiemPreviewInputSchema, mcpVeniceReadMintDiemPreviewOutputSchema, mcpVeniceReadStakingStateInputSchema, mcpVeniceReadStakingStateOutputSchema, mcpVeniceStakeDiemInputSchema, mcpVeniceStakeVvvInputSchema, multisignOutputSchema, parseAgentBoolean, parseAgentEvmChainId, parseMcpToolInput, parseMcpToolOutput, parseMultisignBuilderOutput, uniswapQuoteTradeTypeSchema, zodSchemaToMcpJsonSchema };
12234
13827
  //# sourceMappingURL=catalog.js.map
12235
13828
  //# sourceMappingURL=catalog.js.map