@continuumdao/ctm-mpc-defi 0.2.55 → 0.2.57

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 (61) hide show
  1. package/dist/agent/catalog.cjs +692 -310
  2. package/dist/agent/catalog.cjs.map +1 -1
  3. package/dist/agent/catalog.d.ts +279 -99
  4. package/dist/agent/catalog.js +687 -312
  5. package/dist/agent/catalog.js.map +1 -1
  6. package/dist/agent/skills/aave-v4/SKILL.md +26 -3
  7. package/dist/agent/skills/aerodrome/SKILL.md +3 -1
  8. package/dist/agent/skills/circle-cctp/SKILL.md +5 -4
  9. package/dist/agent/skills/continuum-dao-marketplace/SKILL.md +4 -4
  10. package/dist/agent/skills/curve-dao/SKILL.md +2 -2
  11. package/dist/agent/skills/uniswap-v4/SKILL.md +2 -2
  12. package/dist/index.cjs +165 -19
  13. package/dist/index.cjs.map +1 -1
  14. package/dist/index.js +166 -20
  15. package/dist/index.js.map +1 -1
  16. package/dist/protocols/evm/aave-v4/index.cjs +198 -15
  17. package/dist/protocols/evm/aave-v4/index.cjs.map +1 -1
  18. package/dist/protocols/evm/aave-v4/index.d.ts +62 -7
  19. package/dist/protocols/evm/aave-v4/index.js +189 -16
  20. package/dist/protocols/evm/aave-v4/index.js.map +1 -1
  21. package/dist/protocols/evm/aerodrome/index.cjs +152 -63
  22. package/dist/protocols/evm/aerodrome/index.cjs.map +1 -1
  23. package/dist/protocols/evm/aerodrome/index.d.ts +30 -58
  24. package/dist/protocols/evm/aerodrome/index.js +151 -64
  25. package/dist/protocols/evm/aerodrome/index.js.map +1 -1
  26. package/dist/protocols/evm/circle-cctp/index.cjs +77 -19
  27. package/dist/protocols/evm/circle-cctp/index.cjs.map +1 -1
  28. package/dist/protocols/evm/circle-cctp/index.d.ts +53 -3
  29. package/dist/protocols/evm/circle-cctp/index.js +76 -20
  30. package/dist/protocols/evm/circle-cctp/index.js.map +1 -1
  31. package/dist/protocols/evm/compound-v3/index.cjs +115 -2
  32. package/dist/protocols/evm/compound-v3/index.cjs.map +1 -1
  33. package/dist/protocols/evm/compound-v3/index.js +116 -3
  34. package/dist/protocols/evm/compound-v3/index.js.map +1 -1
  35. package/dist/protocols/evm/continuum-dao/index.cjs +288 -32
  36. package/dist/protocols/evm/continuum-dao/index.cjs.map +1 -1
  37. package/dist/protocols/evm/continuum-dao/index.d.ts +14 -1
  38. package/dist/protocols/evm/continuum-dao/index.js +287 -33
  39. package/dist/protocols/evm/continuum-dao/index.js.map +1 -1
  40. package/dist/protocols/evm/curve-dao/index.cjs +120 -5
  41. package/dist/protocols/evm/curve-dao/index.cjs.map +1 -1
  42. package/dist/protocols/evm/curve-dao/index.js +120 -5
  43. package/dist/protocols/evm/curve-dao/index.js.map +1 -1
  44. package/dist/protocols/evm/euler-v2/index.cjs +121 -6
  45. package/dist/protocols/evm/euler-v2/index.cjs.map +1 -1
  46. package/dist/protocols/evm/euler-v2/index.js +121 -6
  47. package/dist/protocols/evm/euler-v2/index.js.map +1 -1
  48. package/dist/protocols/evm/morpho/index.cjs +129 -57
  49. package/dist/protocols/evm/morpho/index.cjs.map +1 -1
  50. package/dist/protocols/evm/morpho/index.d.ts +2 -1
  51. package/dist/protocols/evm/morpho/index.js +129 -58
  52. package/dist/protocols/evm/morpho/index.js.map +1 -1
  53. package/dist/protocols/evm/pendle/index.cjs +129 -10
  54. package/dist/protocols/evm/pendle/index.cjs.map +1 -1
  55. package/dist/protocols/evm/pendle/index.js +129 -10
  56. package/dist/protocols/evm/pendle/index.js.map +1 -1
  57. package/dist/protocols/evm/uniswap-v4/index.cjs +164 -17
  58. package/dist/protocols/evm/uniswap-v4/index.cjs.map +1 -1
  59. package/dist/protocols/evm/uniswap-v4/index.js +165 -18
  60. package/dist/protocols/evm/uniswap-v4/index.js.map +1 -1
  61. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- import { getAddress, parseAbi, stringToHex, keccak256, toBytes, isAddress, zeroAddress, defineChain, createPublicClient, http } from 'viem';
1
+ import { getAddress, parseAbi, stringToHex, isAddress, formatUnits, zeroAddress, keccak256, toBytes, defineChain, createPublicClient, http } from 'viem';
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';
@@ -45,6 +45,111 @@ var init_chainIdParse = __esm({
45
45
  "src/chains/evm/chainIdParse.ts"() {
46
46
  }
47
47
  });
48
+ function isCoinbaseB20AssetToken(address) {
49
+ try {
50
+ return getAddress(address).toLowerCase().startsWith(COINBASE_B20_ASSET_PREFIX);
51
+ } catch {
52
+ return false;
53
+ }
54
+ }
55
+ function looksLikeCoinbaseStockSymbol(symbol) {
56
+ return /^[A-Za-z][A-Za-z0-9]{0,8}(?:\.[A-Za-z][A-Za-z0-9]{0,4})?c$/.test((symbol ?? "").trim());
57
+ }
58
+ function indexCatalog(rows) {
59
+ catalogRows = rows;
60
+ catalogAt = Date.now();
61
+ catalogBySymbol.clear();
62
+ catalogByAddress.clear();
63
+ for (const row of rows) {
64
+ catalogBySymbol.set(row.symbol.toLowerCase(), row);
65
+ catalogByAddress.set(row.address.toLowerCase(), row);
66
+ }
67
+ }
68
+ function parseCoinbaseTokenizedStocksPayload(payload) {
69
+ const tokens = Array.isArray(payload) ? payload : payload && typeof payload === "object" && Array.isArray(payload.tokens) ? payload.tokens : [];
70
+ const out = [];
71
+ const seen = /* @__PURE__ */ new Set();
72
+ for (const row of tokens) {
73
+ if (!row || typeof row !== "object") continue;
74
+ const rec = row;
75
+ const symbol = typeof rec.symbol === "string" ? rec.symbol.trim() : "";
76
+ const addressRaw = typeof rec.contract_address === "string" ? rec.contract_address.trim() : "";
77
+ if (!looksLikeCoinbaseStockSymbol(symbol) || !isCoinbaseB20AssetToken(addressRaw)) continue;
78
+ const address = getAddress(addressRaw);
79
+ const key = address.toLowerCase();
80
+ if (seen.has(key)) continue;
81
+ seen.add(key);
82
+ const name = typeof rec.name === "string" && rec.name.trim() ? rec.name.trim() : symbol;
83
+ const iconUrl = typeof rec.icon_url === "string" && rec.icon_url.trim() ? rec.icon_url.trim() : void 0;
84
+ const decimals = typeof rec.decimals === "number" && Number.isInteger(rec.decimals) && rec.decimals >= 0 && rec.decimals <= 18 ? rec.decimals : COINBASE_B20_STOCK_DECIMALS;
85
+ out.push({ address, symbol, name, decimals, iconUrl });
86
+ if (out.length >= CATALOG_MAX) break;
87
+ }
88
+ return out;
89
+ }
90
+ async function fetchCoinbaseB20StockCatalog() {
91
+ const merged = [];
92
+ const seen = /* @__PURE__ */ new Set();
93
+ let pageToken = "";
94
+ for (let page = 0; page < 4; page++) {
95
+ const url = new URL(COINBASE_TOKENIZED_STOCKS_API_URL);
96
+ url.searchParams.set("page_size", "500");
97
+ if (pageToken) url.searchParams.set("page_token", pageToken);
98
+ const res = await fetch(url, { cache: "no-store", signal: AbortSignal.timeout(8e3) });
99
+ if (!res.ok) break;
100
+ const json = await res.json();
101
+ for (const row of parseCoinbaseTokenizedStocksPayload(json)) {
102
+ const key = row.address.toLowerCase();
103
+ if (seen.has(key)) continue;
104
+ seen.add(key);
105
+ merged.push(row);
106
+ if (merged.length >= CATALOG_MAX) break;
107
+ }
108
+ pageToken = typeof json.next_page_token === "string" ? json.next_page_token.trim() : "";
109
+ if (!pageToken || merged.length >= CATALOG_MAX) break;
110
+ }
111
+ if (merged.length > 0) indexCatalog(merged);
112
+ return catalogRows ?? [];
113
+ }
114
+ async function ensureCoinbaseB20StockCatalog() {
115
+ if (catalogRows && catalogRows.length > 0 && Date.now() - catalogAt < CATALOG_TTL_MS) return catalogRows;
116
+ if (!catalogInflight) {
117
+ catalogInflight = fetchCoinbaseB20StockCatalog().finally(() => {
118
+ catalogInflight = null;
119
+ });
120
+ }
121
+ try {
122
+ return await catalogInflight;
123
+ } catch {
124
+ return catalogRows ?? [];
125
+ }
126
+ }
127
+ function lookupCoinbaseB20StockToken(token) {
128
+ const key = (token ?? "").trim();
129
+ if (!key) return null;
130
+ const fromCatalog = catalogBySymbol.get(key.toLowerCase());
131
+ if (fromCatalog) return fromCatalog;
132
+ try {
133
+ return catalogByAddress.get(getAddress(key).toLowerCase()) ?? null;
134
+ } catch {
135
+ return null;
136
+ }
137
+ }
138
+ var COINBASE_B20_STOCK_DECIMALS, COINBASE_B20_ASSET_PREFIX, COINBASE_TOKENIZED_STOCKS_API_URL, CATALOG_TTL_MS, CATALOG_MAX, catalogRows, catalogAt, catalogInflight, catalogBySymbol, catalogByAddress;
139
+ var init_coinbaseB20 = __esm({
140
+ "src/protocols/evm/shared/coinbaseB20.ts"() {
141
+ COINBASE_B20_STOCK_DECIMALS = 8;
142
+ COINBASE_B20_ASSET_PREFIX = "0xb200000000000000000000";
143
+ COINBASE_TOKENIZED_STOCKS_API_URL = "https://api.coinbase.com/v1/tokenized-stocks";
144
+ CATALOG_TTL_MS = 15 * 60 * 1e3;
145
+ CATALOG_MAX = 500;
146
+ catalogRows = null;
147
+ catalogAt = 0;
148
+ catalogInflight = null;
149
+ catalogBySymbol = /* @__PURE__ */ new Map();
150
+ catalogByAddress = /* @__PURE__ */ new Map();
151
+ }
152
+ });
48
153
  function defiEvmTransport(rpcUrl, opts) {
49
154
  const url = rpcUrl.trim();
50
155
  return http(url, opts);
@@ -100,6 +205,110 @@ var init_defiProxy = __esm({
100
205
  "src/core/defiProxy.ts"() {
101
206
  }
102
207
  });
208
+ function isConfiguredAddress(addr) {
209
+ if (!addr?.trim()) return false;
210
+ try {
211
+ return getAddress(addr) !== zeroAddress;
212
+ } catch {
213
+ return false;
214
+ }
215
+ }
216
+ function continuumDaoDeployment(chainId) {
217
+ return CONTINUUM_DAO_DEPLOYMENTS[chainId] ?? null;
218
+ }
219
+ function isContinuumDaoLockChain(chainId) {
220
+ return chainId === CONTINUUM_DAO_LINEA_CHAIN_ID || chainId === CONTINUUM_DAO_LINEA_SEPOLIA_CHAIN_ID;
221
+ }
222
+ function isContinuumDaoSupportedChainId(chainId) {
223
+ return continuumDaoDeployment(chainId) != null;
224
+ }
225
+ function ctmTokenAddressOnEvmChain(chainId) {
226
+ const ctm = continuumDaoDeployment(chainId)?.ctm;
227
+ return ctm && isConfiguredAddress(ctm) ? getAddress(ctm) : null;
228
+ }
229
+ function votingEscrowAddressOnEvmChain(chainId) {
230
+ const ve = continuumDaoDeployment(chainId)?.votingEscrow;
231
+ return ve && isConfiguredAddress(ve) ? getAddress(ve) : null;
232
+ }
233
+ function votingEscrowMarketplaceAddressOnEvmChain(chainId) {
234
+ if (chainId !== CONTINUUM_DAO_LINEA_CHAIN_ID) return null;
235
+ return VOTING_ESCROW_MARKETPLACE_LINEA_ADDRESS;
236
+ }
237
+ function listContinuumDaoDefaultAssets() {
238
+ const out = [];
239
+ for (const chainId of [
240
+ CONTINUUM_DAO_LINEA_CHAIN_ID,
241
+ CONTINUUM_DAO_LINEA_SEPOLIA_CHAIN_ID,
242
+ CONTINUUM_DAO_ETHEREUM_CHAIN_ID
243
+ ]) {
244
+ const dep = continuumDaoDeployment(chainId);
245
+ if (!dep) continue;
246
+ if (isConfiguredAddress(dep.ctm)) {
247
+ out.push({
248
+ chainId,
249
+ tokenType: "CTMERC20",
250
+ contractAddress: getAddress(dep.ctm),
251
+ name: CTM_TOKEN_NAME,
252
+ symbol: CTM_TOKEN_SYMBOL,
253
+ decimals: CTM_TOKEN_DECIMALS
254
+ });
255
+ }
256
+ if (isContinuumDaoLockChain(chainId) && isConfiguredAddress(dep.votingEscrow)) {
257
+ out.push({
258
+ chainId,
259
+ tokenType: "ERC721",
260
+ contractAddress: getAddress(dep.votingEscrow),
261
+ name: VECTM_TOKEN_NAME,
262
+ symbol: VECTM_TOKEN_SYMBOL
263
+ });
264
+ }
265
+ }
266
+ return out;
267
+ }
268
+ var CONTINUUM_DAO_PROTOCOL_ID, CONTINUUM_DAO_ETHEREUM_CHAIN_ID, CONTINUUM_DAO_LINEA_CHAIN_ID, CONTINUUM_DAO_LINEA_SEPOLIA_CHAIN_ID, CTM_TOKEN_NAME, CTM_TOKEN_SYMBOL, VECTM_TOKEN_NAME, VECTM_TOKEN_SYMBOL, CTM_TOKEN_DECIMALS, WEEK_SECONDS, UNSET, CTM_TOKEN_ADDRESS, VOTING_ESCROW_LINEA_ADDRESS, VOTING_ESCROW_MARKETPLACE_LINEA_ADDRESS, MARKETPLACE_WETH_LINEA_ADDRESS, MARKETPLACE_USDC_LINEA_ADDRESS, CONTINUUM_DAO_MARKETPLACE_PROTOCOL_ID, CONTINUUM_DAO_LINEA_GOVERNOR_ADDRESS, CONTINUUM_DAO_DEPLOYMENTS;
269
+ var init_constants = __esm({
270
+ "src/protocols/evm/continuum-dao/constants.ts"() {
271
+ CONTINUUM_DAO_PROTOCOL_ID = "continuum-dao";
272
+ CONTINUUM_DAO_ETHEREUM_CHAIN_ID = 1;
273
+ CONTINUUM_DAO_LINEA_CHAIN_ID = 59144;
274
+ CONTINUUM_DAO_LINEA_SEPOLIA_CHAIN_ID = 59141;
275
+ CTM_TOKEN_NAME = "Continuum";
276
+ CTM_TOKEN_SYMBOL = "CTM";
277
+ VECTM_TOKEN_NAME = "Voting Escrow Continuum";
278
+ VECTM_TOKEN_SYMBOL = "veCTM";
279
+ CTM_TOKEN_DECIMALS = 18;
280
+ WEEK_SECONDS = 7 * 86400;
281
+ UNSET = {
282
+ ctm: zeroAddress,
283
+ votingEscrow: zeroAddress,
284
+ nodeProperties: zeroAddress,
285
+ rewards: zeroAddress,
286
+ governor: zeroAddress
287
+ };
288
+ CTM_TOKEN_ADDRESS = getAddress("0x2026027054F5beBCEB650aBD62dC623e327658e7");
289
+ VOTING_ESCROW_LINEA_ADDRESS = getAddress("0x221EC90B3B083A8501A37bdeb7035CeaedF3C31f");
290
+ getAddress("0x4ebd7cCBe32a51d1638cFE90E8eD1c4BdF42f729");
291
+ VOTING_ESCROW_MARKETPLACE_LINEA_ADDRESS = getAddress("0x92557d38beAe4658d3c03A02F349FFB60c3bfFA5");
292
+ MARKETPLACE_WETH_LINEA_ADDRESS = getAddress("0xe5D7C2a44FfDDf6b295A15c148167daaAf5Cf34f");
293
+ MARKETPLACE_USDC_LINEA_ADDRESS = getAddress("0x176211869cA2b568f2A7D4EE941E073a821EE1ff");
294
+ CONTINUUM_DAO_MARKETPLACE_PROTOCOL_ID = "continuum-dao-marketplace";
295
+ CONTINUUM_DAO_LINEA_GOVERNOR_ADDRESS = getAddress("0x76FF2CB03175900F1D83328C82D27EA9aeaF2355");
296
+ getAddress("0x4800F9f1dC1b6daCA841B71E0531F547D374168E");
297
+ CONTINUUM_DAO_DEPLOYMENTS = {
298
+ [CONTINUUM_DAO_LINEA_CHAIN_ID]: {
299
+ ...UNSET,
300
+ ctm: CTM_TOKEN_ADDRESS,
301
+ votingEscrow: VOTING_ESCROW_LINEA_ADDRESS,
302
+ governor: CONTINUUM_DAO_LINEA_GOVERNOR_ADDRESS
303
+ },
304
+ [CONTINUUM_DAO_LINEA_SEPOLIA_CHAIN_ID]: { ...UNSET },
305
+ [CONTINUUM_DAO_ETHEREUM_CHAIN_ID]: {
306
+ ...UNSET,
307
+ ctm: CTM_TOKEN_ADDRESS
308
+ }
309
+ };
310
+ }
311
+ });
103
312
 
104
313
  // src/protocols/evm/arcus/support.ts
105
314
  function isArcusChainSupported(chainId) {
@@ -114,7 +323,7 @@ var init_support = __esm({
114
323
 
115
324
  // src/protocols/evm/arcus/constants.ts
116
325
  var ARCUS_PROTOCOL_ID;
117
- var init_constants = __esm({
326
+ var init_constants2 = __esm({
118
327
  "src/protocols/evm/arcus/constants.ts"() {
119
328
  ARCUS_PROTOCOL_ID = "arcus";
120
329
  }
@@ -413,27 +622,6 @@ var init_midnightApi = __esm({
413
622
  init_midnightConstants();
414
623
  }
415
624
  });
416
- var COINBASE_B20_STOCK_TOKENS, COINBASE_B20_STOCK_DECIMALS;
417
- var init_coinbaseB20 = __esm({
418
- "src/protocols/evm/shared/coinbaseB20.ts"() {
419
- COINBASE_B20_STOCK_TOKENS = [
420
- { symbol: "AAPLc", name: "Apple Inc.", address: "0xb200000000000000000000C2e324d24d7eEcd1fb" },
421
- { symbol: "NVDAc", name: "NVIDIA Corporation", address: "0xb20000000000000000000078ee7ce2fE4908108C" },
422
- { symbol: "METAc", name: "Meta Platforms Inc.", address: "0xb2000000000000000000008bC8786B856E61707C" },
423
- { symbol: "GOOGLc", name: "Alphabet Inc.", address: "0xb2000000000000000000002D0BA3164cc74f58B7" },
424
- { symbol: "AMZNc", name: "Amazon.com Inc.", address: "0xb200000000000000000000d9192b6B456483C2E8" },
425
- { symbol: "TSLAc", name: "Tesla Inc.", address: "0xb2000000000000000000001e800a7f5189430cD0" },
426
- { symbol: "MSFTc", name: "Microsoft Corporation", address: "0xB200000000000000000000Ab99cFa739E253872B" },
427
- { symbol: "COINc", name: "Coinbase Global Inc.", address: "0xb200000000000000000000c85a31389D71F3ecfb" },
428
- { symbol: "MSTRc", name: "Strategy Inc.", address: "0xb2000000000000000000004884b426556b92883d" },
429
- { symbol: "CRCLc", name: "Circle Internet Group Inc.", address: "0xB20000000000000000000019f6E7C675b73C2e4D" },
430
- { symbol: "INTCc", name: "Intel Corporation", address: "0xB2000000000000000000004AFF16039bA04bdFBc" },
431
- { symbol: "SNDKc", name: "Sandisk Corporation", address: "0xb200000000000000000000397293Cb8cda9a10c5" },
432
- { symbol: "SPCXc", name: "Space Exploration Technologies Corp.", address: "0xb2000000000000000000007b9fcbd005511aCBd5" }
433
- ];
434
- COINBASE_B20_STOCK_DECIMALS = 8;
435
- }
436
- });
437
625
  function isAerodromeChainSupported(chainId) {
438
626
  const n = typeof chainId === "number" ? chainId : Number.parseInt(String(chainId), 10);
439
627
  return n === AERODROME_CHAIN_ID;
@@ -510,109 +698,6 @@ var init_yields = __esm({
510
698
  );
511
699
  }
512
700
  });
513
- function isConfiguredAddress(addr) {
514
- if (!addr?.trim()) return false;
515
- try {
516
- return getAddress(addr) !== zeroAddress;
517
- } catch {
518
- return false;
519
- }
520
- }
521
- function continuumDaoDeployment(chainId) {
522
- return CONTINUUM_DAO_DEPLOYMENTS[chainId] ?? null;
523
- }
524
- function isContinuumDaoLockChain(chainId) {
525
- return chainId === CONTINUUM_DAO_LINEA_CHAIN_ID || chainId === CONTINUUM_DAO_LINEA_SEPOLIA_CHAIN_ID;
526
- }
527
- function isContinuumDaoSupportedChainId(chainId) {
528
- return continuumDaoDeployment(chainId) != null;
529
- }
530
- function ctmTokenAddressOnEvmChain(chainId) {
531
- const ctm = continuumDaoDeployment(chainId)?.ctm;
532
- return ctm && isConfiguredAddress(ctm) ? getAddress(ctm) : null;
533
- }
534
- function votingEscrowAddressOnEvmChain(chainId) {
535
- const ve = continuumDaoDeployment(chainId)?.votingEscrow;
536
- return ve && isConfiguredAddress(ve) ? getAddress(ve) : null;
537
- }
538
- function votingEscrowMarketplaceAddressOnEvmChain(chainId) {
539
- if (chainId !== CONTINUUM_DAO_LINEA_CHAIN_ID) return null;
540
- return VOTING_ESCROW_MARKETPLACE_LINEA_ADDRESS;
541
- }
542
- function listContinuumDaoDefaultAssets() {
543
- const out = [];
544
- for (const chainId of [
545
- CONTINUUM_DAO_LINEA_CHAIN_ID,
546
- CONTINUUM_DAO_LINEA_SEPOLIA_CHAIN_ID,
547
- CONTINUUM_DAO_ETHEREUM_CHAIN_ID
548
- ]) {
549
- const dep = continuumDaoDeployment(chainId);
550
- if (!dep) continue;
551
- if (isConfiguredAddress(dep.ctm)) {
552
- out.push({
553
- chainId,
554
- tokenType: "CTMERC20",
555
- contractAddress: getAddress(dep.ctm),
556
- name: CTM_TOKEN_NAME,
557
- symbol: CTM_TOKEN_SYMBOL,
558
- decimals: CTM_TOKEN_DECIMALS
559
- });
560
- }
561
- if (isContinuumDaoLockChain(chainId) && isConfiguredAddress(dep.votingEscrow)) {
562
- out.push({
563
- chainId,
564
- tokenType: "ERC721",
565
- contractAddress: getAddress(dep.votingEscrow),
566
- name: VECTM_TOKEN_NAME,
567
- symbol: VECTM_TOKEN_SYMBOL
568
- });
569
- }
570
- }
571
- return out;
572
- }
573
- var CONTINUUM_DAO_PROTOCOL_ID, CONTINUUM_DAO_ETHEREUM_CHAIN_ID, CONTINUUM_DAO_LINEA_CHAIN_ID, CONTINUUM_DAO_LINEA_SEPOLIA_CHAIN_ID, CTM_TOKEN_NAME, CTM_TOKEN_SYMBOL, VECTM_TOKEN_NAME, VECTM_TOKEN_SYMBOL, CTM_TOKEN_DECIMALS, UNSET, CTM_TOKEN_ADDRESS, VOTING_ESCROW_LINEA_ADDRESS, VOTING_ESCROW_MARKETPLACE_LINEA_ADDRESS, CONTINUUM_DAO_MARKETPLACE_PROTOCOL_ID, CONTINUUM_DAO_LINEA_GOVERNOR_ADDRESS, CONTINUUM_DAO_DEPLOYMENTS;
574
- var init_constants2 = __esm({
575
- "src/protocols/evm/continuum-dao/constants.ts"() {
576
- CONTINUUM_DAO_PROTOCOL_ID = "continuum-dao";
577
- CONTINUUM_DAO_ETHEREUM_CHAIN_ID = 1;
578
- CONTINUUM_DAO_LINEA_CHAIN_ID = 59144;
579
- CONTINUUM_DAO_LINEA_SEPOLIA_CHAIN_ID = 59141;
580
- CTM_TOKEN_NAME = "Continuum";
581
- CTM_TOKEN_SYMBOL = "CTM";
582
- VECTM_TOKEN_NAME = "Voting Escrow Continuum";
583
- VECTM_TOKEN_SYMBOL = "veCTM";
584
- CTM_TOKEN_DECIMALS = 18;
585
- UNSET = {
586
- ctm: zeroAddress,
587
- votingEscrow: zeroAddress,
588
- nodeProperties: zeroAddress,
589
- rewards: zeroAddress,
590
- governor: zeroAddress
591
- };
592
- CTM_TOKEN_ADDRESS = getAddress("0x2026027054F5beBCEB650aBD62dC623e327658e7");
593
- VOTING_ESCROW_LINEA_ADDRESS = getAddress("0x221EC90B3B083A8501A37bdeb7035CeaedF3C31f");
594
- getAddress("0x4ebd7cCBe32a51d1638cFE90E8eD1c4BdF42f729");
595
- VOTING_ESCROW_MARKETPLACE_LINEA_ADDRESS = getAddress("0x92557d38beAe4658d3c03A02F349FFB60c3bfFA5");
596
- getAddress("0xe5D7C2a44FfDDf6b295A15c148167daaAf5Cf34f");
597
- getAddress("0x176211869cA2b568f2A7D4EE941E073a821EE1ff");
598
- CONTINUUM_DAO_MARKETPLACE_PROTOCOL_ID = "continuum-dao-marketplace";
599
- CONTINUUM_DAO_LINEA_GOVERNOR_ADDRESS = getAddress("0x76FF2CB03175900F1D83328C82D27EA9aeaF2355");
600
- getAddress("0x4800F9f1dC1b6daCA841B71E0531F547D374168E");
601
- CONTINUUM_DAO_DEPLOYMENTS = {
602
- [CONTINUUM_DAO_LINEA_CHAIN_ID]: {
603
- ...UNSET,
604
- ctm: CTM_TOKEN_ADDRESS,
605
- votingEscrow: VOTING_ESCROW_LINEA_ADDRESS,
606
- governor: CONTINUUM_DAO_LINEA_GOVERNOR_ADDRESS
607
- },
608
- [CONTINUUM_DAO_LINEA_SEPOLIA_CHAIN_ID]: { ...UNSET },
609
- [CONTINUUM_DAO_ETHEREUM_CHAIN_ID]: {
610
- ...UNSET,
611
- ctm: CTM_TOKEN_ADDRESS
612
- }
613
- };
614
- }
615
- });
616
701
  var init_committeeList = __esm({
617
702
  "src/protocols/evm/continuum-dao/committeeList.ts"() {
618
703
  }
@@ -1305,7 +1390,108 @@ function parseMultisignBuilderOutput(data) {
1305
1390
  return multisignOutputSchema.parse(data);
1306
1391
  }
1307
1392
 
1393
+ // src/protocols/evm/aave-v4/api.ts
1394
+ init_defiProxy();
1395
+ init_coinbaseB20();
1396
+ var AAVE_V4_GRAPHQL_URL = "https://api.v4.aave.com/graphql";
1397
+ async function aaveV4Gql(query, variables) {
1398
+ const body = { query, variables: variables ?? {} };
1399
+ const j = await postJsonViaOptionalProxy({
1400
+ directUrl: AAVE_V4_GRAPHQL_URL,
1401
+ body,
1402
+ proxyUrl: getAaveGraphqlProxyUrl(),
1403
+ proxyEnvelope: body
1404
+ });
1405
+ if (j.errors?.length) {
1406
+ const msg = j.errors.map((e) => e.message ?? "Unknown").join("; ");
1407
+ throw new Error(msg);
1408
+ }
1409
+ if (j.data == null) {
1410
+ throw new Error("Aave V4 API: empty response");
1411
+ }
1412
+ return j.data;
1413
+ }
1414
+ async function fetchAaveV4Chains() {
1415
+ const d = await aaveV4Gql(`
1416
+ query C($c: ChainsRequest!) { chains(request: $c) { chainId name nativeWrappedToken } }
1417
+ `, { c: { query: { filter: "ALL" } } });
1418
+ return d.chains ?? [];
1419
+ }
1420
+ async function loadAaveV4SupportedChainIdsFromV4Api() {
1421
+ const rows = await fetchAaveV4Chains();
1422
+ const s = /* @__PURE__ */ new Set();
1423
+ for (const c of rows) s.add(c.chainId);
1424
+ return s;
1425
+ }
1426
+ var RESERVES_ADDRESS_FRAGMENT = `
1427
+ asset { underlying { address } }
1428
+ `;
1429
+ async function fetchAaveV4NativeWrappedToken(chainId) {
1430
+ const all = await fetchAaveV4Chains();
1431
+ const c = all.find((x) => x.chainId === chainId);
1432
+ const t = (c?.nativeWrappedToken ?? "").trim();
1433
+ if (t && isAddress(t)) return getAddress(t);
1434
+ return null;
1435
+ }
1436
+ async function fetchAaveV4SupportedUnderlyingAddressSet(chainId) {
1437
+ const d = await aaveV4Gql(
1438
+ `
1439
+ query A($r: ReservesRequest!) { reserves(request: $r) { ${RESERVES_ADDRESS_FRAGMENT} } }
1440
+ `,
1441
+ {
1442
+ r: {
1443
+ query: { chainIds: [chainId] },
1444
+ filter: "ALL",
1445
+ orderBy: { supplyApy: "DESC" }
1446
+ }
1447
+ }
1448
+ );
1449
+ const s = /* @__PURE__ */ new Set();
1450
+ for (const r of d.reserves ?? []) {
1451
+ const a = (r.asset?.underlying?.address ?? "").trim();
1452
+ if (a && isAddress(a)) s.add(a.toLowerCase());
1453
+ }
1454
+ return s;
1455
+ }
1456
+ var aaveV4ChainTokenCache = /* @__PURE__ */ new Map();
1457
+ function ensureAaveV4ChainTokenCache(chainId) {
1458
+ const hit = aaveV4ChainTokenCache.get(chainId);
1459
+ if (hit) return hit;
1460
+ const p = (async () => {
1461
+ const [nativeWrapped, supportedUnderlying] = await Promise.all([
1462
+ fetchAaveV4NativeWrappedToken(chainId),
1463
+ fetchAaveV4SupportedUnderlyingAddressSet(chainId)
1464
+ ]);
1465
+ return { supportedUnderlying, nativeWrapped };
1466
+ })();
1467
+ aaveV4ChainTokenCache.set(chainId, p);
1468
+ return p;
1469
+ }
1470
+ function parseAaveV4UiMarketId(raw) {
1471
+ const t = (raw ?? "").trim().toLowerCase().replace(/\s+/g, " ");
1472
+ if (!t) return void 0;
1473
+ if (t === "core") return "core";
1474
+ if (t === "bluechip" || t === "prime" || t === "institutional") return "bluechip";
1475
+ if (t === "main" || t === "plus" || t === "default") return "main";
1476
+ if (t === "bstocks" || t === "bstock" || t === "b stocks" || t === "stocks" || t === "stock" || t === "equities" || t === "equity" || t === "coinbase stocks" || t === "tokenized stocks" || t === "tokenised stocks") {
1477
+ return "bstocks";
1478
+ }
1479
+ return void 0;
1480
+ }
1481
+ function resolveAaveV4UnderlyingAddress(token) {
1482
+ const raw = (token ?? "").trim();
1483
+ if (!raw) return null;
1484
+ if (isAddress(raw)) return getAddress(raw);
1485
+ return lookupCoinbaseB20StockToken(raw)?.address ?? null;
1486
+ }
1487
+
1308
1488
  // src/agent/schemas/chainPreprocess.ts
1489
+ function rewriteAaveV4AssetField(o, key) {
1490
+ const raw = String(o[key] ?? "").trim();
1491
+ if (!raw || isAddress(raw)) return;
1492
+ const resolved = resolveAaveV4UnderlyingAddress(raw);
1493
+ if (resolved) o[key] = resolved;
1494
+ }
1309
1495
  function preprocessObject(raw) {
1310
1496
  if (!raw || typeof raw !== "object" || Array.isArray(raw)) return null;
1311
1497
  return { ...raw };
@@ -1647,6 +1833,12 @@ function preprocessAaveMultisignInput(action) {
1647
1833
  return (raw) => {
1648
1834
  const o = preprocessObject(raw);
1649
1835
  if (!o) return raw;
1836
+ rewriteAaveV4AssetField(o, "underlying");
1837
+ rewriteAaveV4AssetField(o, "collateralUnderlying");
1838
+ if (typeof o.marketId === "string") {
1839
+ const id = parseAaveV4UiMarketId(o.marketId);
1840
+ if (id) o.marketId = id;
1841
+ }
1650
1842
  derivePurposeIfMissing(o, (x) => {
1651
1843
  const amt = String(x.amountHuman ?? "").trim();
1652
1844
  const asset = String(x.underlying ?? "").trim();
@@ -1663,8 +1855,8 @@ var uniswapQuoteTradeTypeSchema = z.enum(["EXACT_INPUT", "EXACT_OUTPUT"]);
1663
1855
  var mcpUniswapV4QuoteInputSchema = z.object({
1664
1856
  type: uniswapQuoteTradeTypeSchema.describe("EXACT_INPUT or EXACT_OUTPUT"),
1665
1857
  amount: z.string().min(1).describe("Amount in token-in base units (wei string for ERC-20)"),
1666
- tokenIn: z.string().min(1).describe("Input token; 0x0 for native ETH"),
1667
- tokenOut: z.string().min(1).describe("Output token address"),
1858
+ tokenIn: z.string().min(1).describe("Input token address or Coinbase stock ticker (AAPLc); 0x0 for native ETH"),
1859
+ tokenOut: z.string().min(1).describe("Output token address or Coinbase stock ticker (AAPLc)"),
1668
1860
  chainId: agentEvmChainIdSchema.describe("tokenInChainId / same-chain default"),
1669
1861
  uniswapApiKey: z.string().min(1).describe("Uniswap Trade API x-api-key"),
1670
1862
  swapper: evmAddressSchema.optional().describe("MPC executor; omit if keyGen + managementNodeUrl provided"),
@@ -1700,7 +1892,9 @@ var mcpUniswapV4BuildSwapMultisignInputSchema = withMultisignKeySourceRefine(
1700
1892
  z.preprocess(
1701
1893
  preprocessUniswapBuildSwapInput,
1702
1894
  evmMultisignCommonInputSchema.extend({
1703
- tokenIn: evmAddressSchema.describe("Token in; 0x0 for native ETH"),
1895
+ tokenIn: evmAddressSchema.describe(
1896
+ "Token in address or Coinbase stock ticker (AAPLc); 0x0 for native ETH"
1897
+ ),
1704
1898
  swap: swapTxRequestSchema,
1705
1899
  createSwapResponse: z.object({
1706
1900
  swap: swapTxRequestSchema,
@@ -1717,8 +1911,8 @@ var mcpUniswapV4LimitOrderQuoteInputSchema = z.object({
1717
1911
  type: uniswapQuoteTradeTypeSchema.describe("EXACT_INPUT or EXACT_OUTPUT"),
1718
1912
  amount: z.string().min(1).describe("Amount in token-in base units (wei string for ERC-20)"),
1719
1913
  limitPrice: z.string().min(1).describe("Limit price string from Trade API (pair exchange rate)"),
1720
- tokenIn: z.string().min(1).describe("Input token; 0x0 for native ETH"),
1721
- tokenOut: z.string().min(1).describe("Output token address"),
1914
+ tokenIn: z.string().min(1).describe("Input token address or Coinbase stock ticker (AAPLc); 0x0 for native ETH"),
1915
+ tokenOut: z.string().min(1).describe("Output token address or Coinbase stock ticker (AAPLc)"),
1722
1916
  chainId: agentEvmChainIdSchema.describe("Must be 1 (Ethereum mainnet) for limit orders"),
1723
1917
  orderDeadline: agentCoercedIntSchema(z.number().int().positive()).describe("Unix seconds when unfilled order expires"),
1724
1918
  uniswapApiKey: z.string().min(1).describe("Uniswap Trade API x-api-key"),
@@ -2065,8 +2259,8 @@ var mcpUniswapV4BuildAllowlistFinalizeMultisignInputSchema = withMultisignKeySou
2065
2259
  var mcpCurveDaoQuoteInputSchema = z.object({
2066
2260
  chainId: agentEvmChainIdSchema.describe("EVM chain id (rpcUrl resolved from get_chain_registry rpcGateway)"),
2067
2261
  rpcUrl: z.string().min(1).optional().describe("JSON-RPC URL; continuum-mcp-server injects from chain registry \u2014 do not pass a public RPC URL"),
2068
- tokenIn: z.string().min(1).describe("Input token address, or 0xeeee\u2026 / 0x0 / eth for native"),
2069
- tokenOut: z.string().min(1).describe("Output token address or 0xeeee\u2026 native placeholder"),
2262
+ tokenIn: z.string().min(1).describe("Input token address, Coinbase stock ticker (AAPLc), or 0xeeee\u2026 / 0x0 / eth for native"),
2263
+ tokenOut: z.string().min(1).describe("Output token address, Coinbase stock ticker (AAPLc), or 0xeeee\u2026 native placeholder"),
2070
2264
  amountHuman: z.string().min(1).describe("Human-readable amount of tokenIn"),
2071
2265
  tokenInDecimals: z.number().int().min(0).max(18).optional().describe("Token-in decimals; omit to read on-chain (native uses 18)")
2072
2266
  });
@@ -2077,8 +2271,10 @@ var mcpCurveDaoBuildSwapMultisignInputSchema = withMultisignKeySourceRefine(
2077
2271
  z.preprocess(
2078
2272
  preprocessCurveBuildSwapInput,
2079
2273
  evmMultisignCommonInputSchema.extend({
2080
- tokenIn: evmAddressSchema.describe("ERC-20 sold (native in uses WETH path in UI)"),
2081
- tokenOut: z.string().min(1).describe("Output token or 0xeeee\u2026 native placeholder"),
2274
+ tokenIn: evmAddressSchema.describe(
2275
+ "ERC-20 sold, or a Coinbase stock ticker (AAPLc). Native in uses the WETH path in the UI."
2276
+ ),
2277
+ tokenOut: z.string().min(1).describe("Output token, Coinbase stock ticker (AAPLc), or 0xeeee\u2026 native placeholder"),
2082
2278
  amountHuman: z.string().min(1).describe("Human-readable amount of tokenIn"),
2083
2279
  slippagePercent: z.number().gt(0).lt(100).describe("Slippage 0\u2013100 exclusive"),
2084
2280
  quoteSnapshot: jsonObjectSchema.optional().describe("Optional quote row from ctm_curve_dao_quote \u2014 aliases tokenIn/tokenOut/amountHuman")
@@ -2742,6 +2938,172 @@ function preprocessMerklClaimInput(kind) {
2742
2938
  return o;
2743
2939
  };
2744
2940
  }
2941
+
2942
+ // src/protocols/evm/continuum-dao/purpose.ts
2943
+ init_constants();
2944
+ function chainParts(chainId) {
2945
+ const n = typeof chainId === "number" ? chainId : Number.parseInt(String(chainId ?? "").trim(), 10);
2946
+ const id = Number.isFinite(n) ? n : 0;
2947
+ if (id === CONTINUUM_DAO_LINEA_CHAIN_ID) return { name: "Linea Mainnet", id };
2948
+ if (id === CONTINUUM_DAO_LINEA_SEPOLIA_CHAIN_ID) return { name: "Linea Sepolia", id };
2949
+ if (id === CONTINUUM_DAO_ETHEREUM_CHAIN_ID) return { name: "Ethereum Mainnet", id };
2950
+ return { name: "chain", id };
2951
+ }
2952
+ function suffix(chainId) {
2953
+ const { name, id } = chainParts(chainId);
2954
+ return `on ${name} (chainId ${id})`;
2955
+ }
2956
+ function text(value) {
2957
+ return String(value ?? "").trim();
2958
+ }
2959
+ function tokenLabel(value) {
2960
+ const id = text(value);
2961
+ return id ? `#${id}` : "#\u2026";
2962
+ }
2963
+ function shortAddr(value) {
2964
+ const trimmed = text(value);
2965
+ if (!trimmed) return "\u2026";
2966
+ try {
2967
+ if (!isAddress(trimmed)) return trimmed;
2968
+ const addr = getAddress(trimmed);
2969
+ return `${addr.slice(0, 6)}\u2026${addr.slice(-4)}`;
2970
+ } catch {
2971
+ return trimmed;
2972
+ }
2973
+ }
2974
+ function weeksLabel(seconds) {
2975
+ const n = Number(text(seconds));
2976
+ if (!Number.isFinite(n) || n <= 0) return "\u2026 weeks";
2977
+ const weeks = Math.max(1, Math.round(n / WEEK_SECONDS));
2978
+ return `${weeks} week${weeks === 1 ? "" : "s"}`;
2979
+ }
2980
+ function paymentMeta(address) {
2981
+ const lower = text(address).toLowerCase();
2982
+ if (lower === MARKETPLACE_USDC_LINEA_ADDRESS.toLowerCase()) return { symbol: "USDC", decimals: 6 };
2983
+ if (lower === MARKETPLACE_WETH_LINEA_ADDRESS.toLowerCase()) return { symbol: "WETH", decimals: 18 };
2984
+ if (lower === CTM_TOKEN_ADDRESS.toLowerCase()) return { symbol: "CTM", decimals: 18 };
2985
+ return { symbol: "token", decimals: 18 };
2986
+ }
2987
+ function moneyFromWei(wei2, paymentToken) {
2988
+ const raw = text(wei2);
2989
+ if (!raw) return "\u2026 token";
2990
+ try {
2991
+ const meta = paymentMeta(paymentToken);
2992
+ const human = formatUnits(BigInt(raw), meta.decimals).replace(/(\.\d*?[1-9])0+$/, "$1").replace(/\.0+$/, "");
2993
+ return `${human} ${meta.symbol}`;
2994
+ } catch {
2995
+ return raw;
2996
+ }
2997
+ }
2998
+ function deadlineLabel(value) {
2999
+ const n = Number(text(value));
3000
+ if (!Number.isFinite(n) || n <= 0) return "\u2026";
3001
+ const date = new Date(n * 1e3);
3002
+ if (Number.isNaN(date.getTime())) return "\u2026";
3003
+ return `${date.toISOString().slice(0, 16).replace("T", " ")} UTC`;
3004
+ }
3005
+ function bravoLabel(support) {
3006
+ const raw = text(support).toLowerCase();
3007
+ if (raw === "0" || raw === "against") return "Against";
3008
+ if (raw === "1" || raw === "for") return "For";
3009
+ if (raw === "2" || raw === "abstain") return "Abstain";
3010
+ return null;
3011
+ }
3012
+ function proposalLabel(input) {
3013
+ const title = text(input.title || input.proposalTitle);
3014
+ if (title) return title;
3015
+ const id = text(input.proposalId);
3016
+ return id ? `proposal ${id}` : "proposal";
3017
+ }
3018
+ function buildContinuumDaoMcpPurpose(action, input) {
3019
+ const end = suffix(input.chainId);
3020
+ const id = tokenLabel(input.tokenId);
3021
+ switch (action) {
3022
+ case "createLock":
3023
+ return `ContinuumDAO: create lock ${text(input.amountHuman) || "\u2026"} CTM for ${weeksLabel(input.lockDurationSeconds)} ${end}`;
3024
+ case "increaseAmount":
3025
+ return `ContinuumDAO: increase lock ${id} by ${text(input.amountHuman) || "\u2026"} CTM ${end}`;
3026
+ case "increaseUnlockTime":
3027
+ return `ContinuumDAO: extend lock ${id} by ${weeksLabel(input.lockDurationSeconds)} ${end}`;
3028
+ case "split":
3029
+ return `ContinuumDAO: split lock ${id}, extract ${text(input.extractedHuman) || "\u2026"} CTM ${end}`;
3030
+ case "merge": {
3031
+ const from = tokenLabel(input.fromTokenId);
3032
+ const into = text(input.toTokenId);
3033
+ return into ? `ContinuumDAO: merge lock ${from} into #${into} ${end}` : `ContinuumDAO: merge lock ${from} into \u2026 ${end}`;
3034
+ }
3035
+ case "withdraw":
3036
+ return `ContinuumDAO: withdraw expired lock ${id} ${end}`;
3037
+ case "liquidate":
3038
+ return `ContinuumDAO: liquidate lock ${id} ${end}`;
3039
+ case "delegate":
3040
+ return text(input.delegatee) ? `ContinuumDAO: delegate voting power to ${shortAddr(input.delegatee)} ${end}` : `ContinuumDAO: delegate voting power ${end}`;
3041
+ case "undelegate":
3042
+ return `ContinuumDAO: undelegate (return voting power to this KeyGen) ${end}`;
3043
+ case "transfer":
3044
+ return text(input.to) ? `ContinuumDAO: transfer veCTM ${id} to ${shortAddr(input.to)} ${end}` : `ContinuumDAO: transfer veCTM ${id} ${end}`;
3045
+ case "attach":
3046
+ return text(input.tokenId) ? `ContinuumDAO: attach veCTM ${id} to this node ${end}` : `ContinuumDAO: attach veCTM to this node ${end}`;
3047
+ case "requestDetach":
3048
+ return `ContinuumDAO: request detach veCTM ${id} ${end}`;
3049
+ case "proposeBravo": {
3050
+ const title = text(input.title);
3051
+ return title ? `ContinuumDAO: propose "${title}" (Bravo) ${end}` : `ContinuumDAO: propose governance proposal (Bravo) ${end}`;
3052
+ }
3053
+ case "proposeDelta": {
3054
+ const title = text(input.title);
3055
+ return title ? `ContinuumDAO: propose "${title}" (Delta) ${end}` : `ContinuumDAO: propose governance proposal (Delta) ${end}`;
3056
+ }
3057
+ case "castVoteBravo": {
3058
+ const label = proposalLabel(input);
3059
+ const support = bravoLabel(input.support);
3060
+ return support ? `ContinuumDAO: vote ${support} on "${label}" ${end}` : `ContinuumDAO: vote on "${label}" ${end}`;
3061
+ }
3062
+ case "castVoteDelta":
3063
+ return `ContinuumDAO: vote on "${proposalLabel(input)}" (Delta) ${end}`;
3064
+ case "execute":
3065
+ return `ContinuumDAO: execute "${proposalLabel(input)}" ${end}`;
3066
+ case "cancel":
3067
+ return `ContinuumDAO: cancel "${proposalLabel(input)}" ${end}`;
3068
+ case "forumSignIn": {
3069
+ const who = text(input.username);
3070
+ return who ? `ContinuumDAO: sign in to the forum as ${who} ${end}` : `ContinuumDAO: sign in to the forum ${end}`;
3071
+ }
3072
+ case "marketplaceCreateListing":
3073
+ return `ContinuumDAO: list veCTM ${id} for ${moneyFromWei(input.askWei, input.paymentToken)} until ${deadlineLabel(input.deadline)} ${end}`;
3074
+ case "marketplaceDelist":
3075
+ return `ContinuumDAO: delist veCTM ${id} ${end}`;
3076
+ case "marketplaceFulfillListing":
3077
+ return `ContinuumDAO: buy veCTM ${id} for ${moneyFromWei(input.priceWei, input.paymentToken)} ${end}`;
3078
+ case "marketplaceCreateOffering":
3079
+ return `ContinuumDAO: offer ${moneyFromWei(input.bidWei, input.paymentToken)} for veCTM ${id} until ${deadlineLabel(input.deadline)} ${end}`;
3080
+ case "marketplaceRescind":
3081
+ return `ContinuumDAO: rescind offer on veCTM ${id} ${end}`;
3082
+ case "marketplaceFulfillOffering":
3083
+ return `ContinuumDAO: accept offer of ${moneyFromWei(input.priceWei, input.paymentToken)} on veCTM ${id} ${end}`;
3084
+ case "marketplaceCreateAuction":
3085
+ return `ContinuumDAO: auction veCTM ${id} reserve ${moneyFromWei(input.reserveWei, input.paymentToken)}, minimum increment ${moneyFromWei(input.minIncrementWei, input.paymentToken)}, until ${deadlineLabel(input.deadline)} ${end}`;
3086
+ case "marketplaceCancelAuction":
3087
+ return `ContinuumDAO: cancel auction for veCTM ${id} ${end}`;
3088
+ case "marketplaceAuctionBid":
3089
+ return `ContinuumDAO: bid ${moneyFromWei(input.priceWei, input.paymentToken)} on veCTM ${id} ${end}`;
3090
+ case "marketplaceSettleAuction":
3091
+ return `ContinuumDAO: settle auction for veCTM ${id} ${end}`;
3092
+ default:
3093
+ return `ContinuumDAO: ${end}`;
3094
+ }
3095
+ }
3096
+ function preprocessContinuumDaoPurpose(action, raw) {
3097
+ if (!raw || typeof raw !== "object" || Array.isArray(raw)) return raw;
3098
+ const o = { ...raw };
3099
+ const supplied = text(o.purposeText ?? o.purpose);
3100
+ if (supplied) {
3101
+ o.purposeText = supplied;
3102
+ return o;
3103
+ }
3104
+ o.purposeText = buildContinuumDaoMcpPurpose(action, o);
3105
+ return o;
3106
+ }
2745
3107
  var mcpServerCommonInputSchema = z.object({
2746
3108
  keyGenId: z.string().min(1).describe("KeyGen id from fetch_key_gen_result / node preferred KeyGen"),
2747
3109
  chainId: z.number().int().positive().describe("EVM chain id; RPC and gas config resolved from chain registry"),
@@ -2787,6 +3149,14 @@ var MCP_NON_SUBMIT_TOOL_NAMES = /* @__PURE__ */ new Set([
2787
3149
  function mcpMultisignInput(fields) {
2788
3150
  return withMultisignKeySourceRefine(evmMultisignCommonInputSchema.extend(fields));
2789
3151
  }
3152
+ function mcpContinuumDaoWriteInput(action, fields) {
3153
+ return withMultisignKeySourceRefine(
3154
+ z.preprocess(
3155
+ (raw) => preprocessContinuumDaoPurpose(action, raw),
3156
+ evmMultisignCommonInputSchema.extend(fields)
3157
+ )
3158
+ );
3159
+ }
2790
3160
  var mcpLidoSubmitInputSchema = mcpMultisignInput({
2791
3161
  valueWei: z.string().min(1).describe("ETH to stake (wei decimal string)"),
2792
3162
  referral: evmAddressSchema.optional()
@@ -2855,7 +3225,9 @@ var mcpSkySusdsDepositInputSchema = mcpMultisignInput({
2855
3225
  var mcpSkySusdsRedeemInputSchema = mcpMultisignInput({
2856
3226
  sharesHuman: z.string().min(1)
2857
3227
  });
2858
- var mcpAaveV4MarketIdSchema = z.string().min(1).optional().describe("UI market segment: main (Plus), core, or bluechip (Prime). Default main.");
3228
+ var mcpAaveV4MarketIdSchema = z.string().min(1).optional().describe(
3229
+ "UI market segment: main (Plus), core, bluechip (Prime), or bstocks (Base Coinbase tokenized stocks). Aliases: stocks, equities. Default main."
3230
+ );
2859
3231
  function mcpAaveV4MultisignInput(fields, action) {
2860
3232
  return withMultisignKeySourceRefine(
2861
3233
  z.preprocess(preprocessAaveMultisignInput(action), evmMultisignCommonInputSchema.extend(fields))
@@ -2873,7 +3245,7 @@ var mcpAaveV4DepositInputSchema = mcpAaveV4MultisignInput(
2873
3245
  {
2874
3246
  spoke: evmAddressSchema.optional().describe("Omit \u2014 continuum-mcp-server resolves spoke from Aave v4 API."),
2875
3247
  underlying: evmAddressSchema.describe(
2876
- "Asset to supply. Native ETH: 0x0 or wrapped native with isNativeIn true."
3248
+ "Asset to supply. Address, or a Base bStock ticker (AAPLc). Native ETH: 0x0 or wrapped native with isNativeIn true."
2877
3249
  ),
2878
3250
  amountHuman: z.string().min(1),
2879
3251
  marketId: mcpAaveV4MarketIdSchema,
@@ -2889,7 +3261,7 @@ var mcpAaveV4DepositInputSchema = mcpAaveV4MultisignInput(
2889
3261
  var mcpAaveV4WithdrawInputSchema = mcpAaveV4MultisignInput(
2890
3262
  {
2891
3263
  spoke: evmAddressSchema.optional().describe("Omit \u2014 server resolves from Aave v4 API."),
2892
- underlying: evmAddressSchema.describe("Supplied asset to withdraw."),
3264
+ underlying: evmAddressSchema.describe("Supplied asset to withdraw. Address or bStock ticker (AAPLc)."),
2893
3265
  amountHuman: z.string().min(1),
2894
3266
  marketId: mcpAaveV4MarketIdSchema,
2895
3267
  ...mcpAaveV4HealthPreviewFields
@@ -2899,10 +3271,14 @@ var mcpAaveV4WithdrawInputSchema = mcpAaveV4MultisignInput(
2899
3271
  var mcpAaveV4BorrowInputSchema = mcpAaveV4MultisignInput(
2900
3272
  {
2901
3273
  spoke: evmAddressSchema.optional().describe("Omit \u2014 server resolves from Aave v4 API."),
2902
- underlying: evmAddressSchema.describe("Debt asset to borrow (e.g. USDC), not collateral."),
3274
+ underlying: evmAddressSchema.describe(
3275
+ "Debt asset to borrow (e.g. USDC), not collateral. On bstocks the equities are not borrowable."
3276
+ ),
2903
3277
  amountHuman: z.string().min(1),
2904
3278
  marketId: mcpAaveV4MarketIdSchema,
2905
- collateralUnderlying: evmAddressSchema.optional().describe("Collateral token already supplied; helps pick hub when debt exists on multiple hubs."),
3279
+ collateralUnderlying: evmAddressSchema.optional().describe(
3280
+ "Collateral token already supplied (address or bStock ticker such as AAPLc). Helps pick the hub when debt exists on multiple hubs."
3281
+ ),
2906
3282
  ...mcpAaveV4HealthPreviewFields
2907
3283
  },
2908
3284
  "borrow"
@@ -2910,7 +3286,7 @@ var mcpAaveV4BorrowInputSchema = mcpAaveV4MultisignInput(
2910
3286
  var mcpAaveV4RepayInputSchema = mcpAaveV4MultisignInput(
2911
3287
  {
2912
3288
  spoke: evmAddressSchema.optional().describe("Omit \u2014 server resolves from Aave v4 API."),
2913
- underlying: evmAddressSchema.describe("Debt token to repay."),
3289
+ underlying: evmAddressSchema.describe("Debt token to repay. On bstocks this is USDC."),
2914
3290
  amountHuman: z.string().min(1),
2915
3291
  marketId: mcpAaveV4MarketIdSchema,
2916
3292
  ...mcpAaveV4HealthPreviewFields
@@ -3228,42 +3604,45 @@ var mcpMorphoMidnightRepayInputSchema = withMultisignKeySourceRefine(
3228
3604
  })
3229
3605
  )
3230
3606
  );
3231
- var mcpContinuumDaoCreateLockInputSchema = mcpMultisignInput({
3607
+ var mcpContinuumDaoCreateLockInputSchema = mcpContinuumDaoWriteInput("createLock", {
3232
3608
  amountHuman: z.string().min(1).describe("CTM amount to lock. Must be >= VotingEscrow.minimumLock (default 1 CTM)."),
3233
3609
  lockDurationSeconds: z.union([z.string(), z.number()]).describe("Lock duration in seconds. Must be 1\u2013208 weeks (week-aligned on-chain)."),
3234
3610
  ctm: evmAddressSchema.optional(),
3235
3611
  votingEscrow: evmAddressSchema.optional()
3236
3612
  });
3237
- var mcpContinuumDaoIncreaseAmountInputSchema = mcpMultisignInput({
3613
+ var mcpContinuumDaoIncreaseAmountInputSchema = mcpContinuumDaoWriteInput("increaseAmount", {
3238
3614
  tokenId: z.union([z.string(), z.number()]),
3239
3615
  amountHuman: z.string().min(1),
3240
3616
  ctm: evmAddressSchema.optional(),
3241
3617
  votingEscrow: evmAddressSchema.optional()
3242
3618
  });
3243
- var mcpContinuumDaoIncreaseUnlockTimeInputSchema = mcpMultisignInput({
3619
+ var mcpContinuumDaoIncreaseUnlockTimeInputSchema = mcpContinuumDaoWriteInput("increaseUnlockTime", {
3244
3620
  tokenId: z.union([z.string(), z.number()]),
3245
3621
  lockDurationSeconds: z.union([z.string(), z.number()]),
3246
3622
  votingEscrow: evmAddressSchema.optional()
3247
3623
  });
3248
- var mcpContinuumDaoSplitInputSchema = mcpMultisignInput({
3624
+ var mcpContinuumDaoSplitInputSchema = mcpContinuumDaoWriteInput("split", {
3249
3625
  tokenId: z.union([z.string(), z.number()]),
3250
3626
  extractedHuman: z.string().min(1).describe("CTM extracted into the new lock. Minimum 1 CTM; original lock must also keep 1 CTM."),
3251
3627
  votingEscrow: evmAddressSchema.optional()
3252
3628
  });
3253
- var mcpContinuumDaoMergeInputSchema = mcpMultisignInput({
3629
+ var mcpContinuumDaoMergeInputSchema = mcpContinuumDaoWriteInput("merge", {
3254
3630
  fromTokenId: z.union([z.string(), z.number()]),
3255
3631
  toTokenId: z.union([z.string(), z.number()]),
3256
3632
  votingEscrow: evmAddressSchema.optional()
3257
3633
  });
3258
- var mcpContinuumDaoTokenIdInputSchema = mcpMultisignInput({
3634
+ var continuumDaoTokenIdFields = {
3259
3635
  tokenId: z.union([z.string(), z.number()]),
3260
3636
  votingEscrow: evmAddressSchema.optional()
3261
- });
3262
- var mcpContinuumDaoDelegateInputSchema = mcpMultisignInput({
3637
+ };
3638
+ var mcpContinuumDaoWithdrawInputSchema = mcpContinuumDaoWriteInput("withdraw", continuumDaoTokenIdFields);
3639
+ var mcpContinuumDaoLiquidateInputSchema = mcpContinuumDaoWriteInput("liquidate", continuumDaoTokenIdFields);
3640
+ var mcpContinuumDaoTokenIdInputSchema = mcpContinuumDaoWithdrawInputSchema;
3641
+ var mcpContinuumDaoDelegateInputSchema = mcpContinuumDaoWriteInput("delegate", {
3263
3642
  delegatee: evmAddressSchema,
3264
3643
  votingEscrow: evmAddressSchema.optional()
3265
3644
  });
3266
- var mcpContinuumDaoUndelegateInputSchema = mcpMultisignInput({
3645
+ var mcpContinuumDaoUndelegateInputSchema = mcpContinuumDaoWriteInput("undelegate", {
3267
3646
  votingEscrow: evmAddressSchema.optional()
3268
3647
  });
3269
3648
  var mcpContinuumDaoFetchDelegatesInputSchema = z.object({
@@ -3277,12 +3656,12 @@ var mcpContinuumDaoFetchDelegatesOutputSchema = z.object({
3277
3656
  delegatee: evmAddressSchema,
3278
3657
  self: z.boolean()
3279
3658
  });
3280
- var mcpContinuumDaoTransferInputSchema = mcpMultisignInput({
3659
+ var mcpContinuumDaoTransferInputSchema = mcpContinuumDaoWriteInput("transfer", {
3281
3660
  tokenId: z.union([z.string(), z.number()]),
3282
3661
  to: evmAddressSchema,
3283
3662
  votingEscrow: evmAddressSchema.optional()
3284
3663
  });
3285
- var mcpContinuumDaoAttachInputSchema = mcpMultisignInput({
3664
+ var mcpContinuumDaoAttachInputSchema = mcpContinuumDaoWriteInput("attach", {
3286
3665
  nodeKey: z.string().min(1),
3287
3666
  tokenId: z.union([z.string(), z.number()]),
3288
3667
  mpaWallet: evmAddressSchema,
@@ -3294,7 +3673,7 @@ var mcpContinuumDaoAttachInputSchema = mcpMultisignInput({
3294
3673
  dIDType: z.string().optional(),
3295
3674
  dID: z.string().optional()
3296
3675
  });
3297
- var mcpContinuumDaoRequestDetachInputSchema = mcpMultisignInput({
3676
+ var mcpContinuumDaoRequestDetachInputSchema = mcpContinuumDaoWriteInput("requestDetach", {
3298
3677
  tokenId: z.union([z.string(), z.number()]),
3299
3678
  nodeProperties: evmAddressSchema
3300
3679
  });
@@ -3318,7 +3697,7 @@ var forumTopicKeyField = z.string().min(1).describe(
3318
3697
  "URL of the Governance forum thread created first with ctm_continuum_dao_forum_create_topic (decision / election / treasury / constitution / admin). Must be /topic/:tid or /t/:tid. Ideas threads and the homepage are refused."
3319
3698
  );
3320
3699
  var proposalTypeField = z.number().int().min(0).max(4).describe("0 Admin, 1 Constitution, 2 Decision, 3 Election, 4 Treasury. Must match the forum thread section.");
3321
- var mcpContinuumDaoProposeBravoInputSchema = mcpMultisignInput({
3700
+ var mcpContinuumDaoProposeBravoInputSchema = mcpContinuumDaoWriteInput("proposeBravo", {
3322
3701
  title: z.string().min(1).max(128),
3323
3702
  description: z.string().describe("Catalog description stored by POST /proposals/create."),
3324
3703
  type: proposalTypeField,
@@ -3328,7 +3707,7 @@ var mcpContinuumDaoProposeBravoInputSchema = mcpMultisignInput({
3328
3707
  forumKey: forumTopicKeyField,
3329
3708
  forumUrl: z.string().optional()
3330
3709
  });
3331
- var mcpContinuumDaoProposeDeltaInputSchema = mcpMultisignInput({
3710
+ var mcpContinuumDaoProposeDeltaInputSchema = mcpContinuumDaoWriteInput("proposeDelta", {
3332
3711
  title: z.string().min(1).max(128),
3333
3712
  description: z.string().describe("Catalog description stored by POST /proposals/create."),
3334
3713
  type: proposalTypeField,
@@ -3538,20 +3917,23 @@ var mcpContinuumDaoSimulateProposalOutputSchema = z.object({
3538
3917
  }),
3539
3918
  note: z.string()
3540
3919
  });
3541
- var mcpContinuumDaoCastVoteBravoInputSchema = mcpMultisignInput({
3920
+ var mcpContinuumDaoCastVoteBravoInputSchema = mcpContinuumDaoWriteInput("castVoteBravo", {
3542
3921
  proposalId: z.union([z.string(), z.number()]),
3543
3922
  support: z.union([z.literal(0), z.literal(1), z.literal(2), z.string()]),
3544
3923
  governor: evmAddressSchema.optional()
3545
3924
  });
3546
- var mcpContinuumDaoCastVoteDeltaInputSchema = mcpMultisignInput({
3925
+ var mcpContinuumDaoCastVoteDeltaInputSchema = mcpContinuumDaoWriteInput("castVoteDelta", {
3547
3926
  proposalId: z.union([z.string(), z.number()]),
3548
3927
  weights: z.array(z.union([z.string(), z.number()])),
3549
3928
  governor: evmAddressSchema.optional()
3550
3929
  });
3551
- var mcpContinuumDaoProposalIdInputSchema = mcpMultisignInput({
3930
+ var continuumDaoProposalIdFields = {
3552
3931
  proposalId: z.union([z.string(), z.number()]),
3553
3932
  governor: evmAddressSchema.optional()
3554
- });
3933
+ };
3934
+ var mcpContinuumDaoExecuteInputSchema = mcpContinuumDaoWriteInput("execute", continuumDaoProposalIdFields);
3935
+ var mcpContinuumDaoCancelInputSchema = mcpContinuumDaoWriteInput("cancel", continuumDaoProposalIdFields);
3936
+ var mcpContinuumDaoProposalIdInputSchema = mcpContinuumDaoExecuteInputSchema;
3555
3937
  var mcpContinuumDaoFetchVotingPowerInputSchema = z.object({
3556
3938
  chainId: z.union([z.string(), z.number()]),
3557
3939
  rpcUrl: z.string().min(1),
@@ -4043,7 +4425,7 @@ var mcpContinuumDaoForumSignInEligibleOutputSchema = z.object({
4043
4425
  threshold: z.string().optional().describe("MultiSignAgentWallet.veCtmThresholdPower wei"),
4044
4426
  tokenId: z.string().optional()
4045
4427
  });
4046
- var mcpContinuumDaoForumSignInInputSchema = mcpMultisignInput({
4428
+ var mcpContinuumDaoForumSignInInputSchema = mcpContinuumDaoWriteInput("forumSignIn", {
4047
4429
  nodeKey: z.string().optional().describe(
4048
4430
  "Node key bound to this KeyGen. Always required on KeyGen forum sign-in, including when username is a custom name. The server fills it from this node when omitted. useNodeKeyUsername does not replace it."
4049
4431
  ),
@@ -4082,11 +4464,18 @@ var mcpMapleFetchMarketInputSchema = z.object({
4082
4464
  underlying: z.string().trim().min(1).optional().describe("Deposit asset address or ticker (USDC, USDT, USDG).")
4083
4465
  });
4084
4466
  var mcpMapleFetchMarketOutputSchema = mcpMapleFetchMarketsOutputSchema;
4085
- var mcpAaveV4UiMarketIdSchema = z.enum(["main", "core", "bluechip"]).optional().describe("UI market segment: main (Plus), core, or bluechip (Prime). Omit to list all hubs.");
4467
+ var aaveV4UiMarketIdEnum = z.enum(["main", "core", "bluechip", "bstocks"]);
4468
+ function preprocessAaveV4MarketId(value) {
4469
+ if (typeof value !== "string") return value;
4470
+ return parseAaveV4UiMarketId(value) ?? value;
4471
+ }
4472
+ var mcpAaveV4UiMarketIdSchema = z.preprocess(preprocessAaveV4MarketId, aaveV4UiMarketIdEnum.optional()).describe(
4473
+ "UI market segment: main (Plus), core, bluechip (Prime), or bstocks (Base Coinbase tokenized stocks). Aliases: stocks, equities. Omit to list all hubs."
4474
+ );
4086
4475
  var mcpAaveV4MarketSummarySchema = z.object({
4087
4476
  chainId: z.number(),
4088
4477
  hubName: z.string(),
4089
- marketId: z.enum(["main", "core", "bluechip"]),
4478
+ marketId: aaveV4UiMarketIdEnum,
4090
4479
  hubAddress: z.string(),
4091
4480
  symbol: z.string(),
4092
4481
  name: z.string(),
@@ -4106,7 +4495,9 @@ var mcpAaveV4MarketSummarySchema = z.object({
4106
4495
  var mcpAaveV4FetchMarketsInputSchema = z.object({
4107
4496
  chainId: agentEvmChainIdSchema,
4108
4497
  marketId: mcpAaveV4UiMarketIdSchema,
4109
- underlying: z.string().trim().min(1).optional().describe("Optional filter: ERC-20 address or ticker (USDT, USDC). Omit to list all reserves.")
4498
+ underlying: z.string().trim().min(1).optional().describe(
4499
+ 'Optional filter: ERC-20 address or ticker (USDT, USDC, AAPLc). "stock" lists bStock collateral. Omit to list all reserves.'
4500
+ )
4110
4501
  });
4111
4502
  var mcpAaveV4FetchMarketsOutputSchema = z.object({
4112
4503
  chainId: z.number(),
@@ -4115,14 +4506,21 @@ var mcpAaveV4FetchMarketsOutputSchema = z.object({
4115
4506
  });
4116
4507
  var mcpAaveV4FetchMarketInputSchema = z.object({
4117
4508
  chainId: agentEvmChainIdSchema,
4118
- underlying: z.string().trim().min(1).describe("Reserve underlying address or ticker (e.g. USDT). Prefer fetch_markets when listing rates."),
4509
+ underlying: z.string().trim().min(1).describe(
4510
+ "Reserve underlying address or ticker (USDT, AAPLc). Prefer fetch_markets or fetch_stock_markets when listing rates."
4511
+ ),
4119
4512
  marketId: mcpAaveV4UiMarketIdSchema
4120
4513
  });
4121
4514
  var mcpAaveV4FetchMarketOutputSchema = mcpAaveV4FetchMarketsOutputSchema;
4515
+ var mcpAaveV4FetchStockMarketsInputSchema = z.object({
4516
+ chainId: agentEvmChainIdSchema.optional().describe("Defaults to Base 8453 (Coinbase Stocks hub)."),
4517
+ underlying: z.string().trim().min(1).optional().describe("B20 ticker or address (AAPLc), or USDC. Omit to list the whole Coinbase Stocks hub.")
4518
+ });
4519
+ var mcpAaveV4FetchStockMarketsOutputSchema = mcpAaveV4FetchMarketsOutputSchema;
4122
4520
  var mcpEulerV2FetchLendVaultsInputSchema = z.object({
4123
4521
  chainId: agentEvmChainIdSchema,
4124
4522
  underlyingAddress: evmAddressSchema.describe(
4125
- "Underlying asset address from get_defi_protocol_supported_tokens."
4523
+ "Underlying asset address, or a Coinbase stock ticker (AAPLc) from the live catalog."
4126
4524
  ),
4127
4525
  limit: agentCoercedOptionalIntSchema(z.number().int().min(1).max(100)).describe("Max vault rows (default 30).")
4128
4526
  });
@@ -4144,7 +4542,7 @@ var mcpEulerV2FetchLendVaultsOutputSchema = z.object({
4144
4542
  var mcpEulerV2FetchEarnVaultsInputSchema = z.object({
4145
4543
  chainId: agentEvmChainIdSchema,
4146
4544
  underlyingAddress: evmAddressSchema.describe(
4147
- "Underlying asset address from get_defi_protocol_supported_tokens."
4545
+ "Underlying asset address, or a Coinbase stock ticker (AAPLc) from the live catalog."
4148
4546
  ),
4149
4547
  limit: agentCoercedOptionalIntSchema(z.number().int().min(1).max(100)).describe("Max vault rows (default 30).")
4150
4548
  });
@@ -4239,7 +4637,7 @@ var mcpPendleFetchMerkleRewardsOutputSchema = jsonObjectSchema.describe(
4239
4637
  var mcpPendleQuoteSwapInputSchema = z.object({
4240
4638
  chainId: agentEvmChainIdSchema,
4241
4639
  rpcUrl: z.string().min(1).optional(),
4242
- tokenIn: z.string().min(1).describe("Underlying, PT, or YT (0xeeee / 0x0 = native)."),
4640
+ tokenIn: z.string().min(1).describe("Underlying, PT, YT, or Coinbase stock ticker (AAPLc). 0xeeee / 0x0 = native."),
4243
4641
  tokenOut: z.string().min(1),
4244
4642
  amountHuman: z.string().min(1),
4245
4643
  slippagePercent: z.number().gt(0).lt(100),
@@ -5875,14 +6273,26 @@ var mcpDeriveTransferSpotInputSchema = mcpDeriveMultisignInput({
5875
6273
  });
5876
6274
  var mcpCctpFeeFieldsSchema = z.object({
5877
6275
  feeTierUsed: z.enum(["low", "med", "high"]),
5878
- maxFee: z.string().describe("Selected tier max fee in USDC base units (6 decimals)"),
5879
- maxFeeHuman: z.string().describe("Human-readable USDC max forwarding fee for feeTierUsed"),
5880
- forwardFeeLow: z.string(),
6276
+ maxFee: z.string().describe(
6277
+ "depositForBurnWithHook maxFee in USDC base units: selected forwardFee tier plus the fast-transfer protocol fee when transferAmountHuman is set"
6278
+ ),
6279
+ maxFeeHuman: z.string().describe("Human-readable maxFee (forwarding fee + protocol fee)"),
6280
+ forwardFeeLow: z.string().describe("Iris forwarding fee only, low tier, USDC base units"),
5881
6281
  forwardFeeLowHuman: z.string(),
5882
- forwardFeeMed: z.string(),
6282
+ forwardFeeMed: z.string().describe("Iris forwarding fee only, med tier, USDC base units"),
5883
6283
  forwardFeeMedHuman: z.string(),
5884
- forwardFeeHigh: z.string(),
6284
+ forwardFeeHigh: z.string().describe("Iris forwarding fee only, high tier, USDC base units"),
5885
6285
  forwardFeeHighHuman: z.string(),
6286
+ maxFeeLow: z.string().optional().describe("forwardFee low + protocol fee"),
6287
+ maxFeeLowHuman: z.string().optional(),
6288
+ maxFeeMed: z.string().optional().describe("forwardFee med + protocol fee"),
6289
+ maxFeeMedHuman: z.string().optional(),
6290
+ maxFeeHigh: z.string().optional().describe("forwardFee high + protocol fee"),
6291
+ maxFeeHighHuman: z.string().optional(),
6292
+ minimumFeeBps: z.number().optional().describe("Iris protocol fee rate in basis points for the selected finality row"),
6293
+ protocolFee: z.string().optional().describe("Protocol fee in USDC base units for transferAmountHuman"),
6294
+ protocolFeeHuman: z.string().optional(),
6295
+ finalityThreshold: z.number().int().optional().describe("Iris fee row used. 1000 = fast transfer"),
5886
6296
  transferAmount: z.string().optional(),
5887
6297
  transferAmountHuman: z.string().optional(),
5888
6298
  totalBurn: z.string().optional().describe("transferAmount + maxFee when transferAmountHuman was provided"),
@@ -5898,8 +6308,13 @@ var mcpCctpFetchSupportedRoutesOutputSchema = jsonObjectSchema.describe(
5898
6308
  var mcpCctpFetchBurnFeesInputSchema = z.object({
5899
6309
  sourceChainId: agentEvmChainIdSchema.describe("Source chain EIP-155 id (burn chain)"),
5900
6310
  destChainId: agentEvmChainIdSchema.describe("Destination chain EIP-155 id (mint chain)"),
5901
- transferAmountHuman: z.string().min(1).optional().describe("Human USDC amount recipient receives (6 decimals). Omit for tier fees only; include for totalBurn."),
5902
- feeTier: z.enum(["low", "med", "high"]).optional().describe("Iris forwardFee tier; default med")
6311
+ transferAmountHuman: z.string().min(1).optional().describe(
6312
+ "Human USDC amount the recipient receives (6 decimals). Required for a maxFee that includes the fast-transfer protocol fee and for totalBurn. Omit only to inspect raw forwarding tiers."
6313
+ ),
6314
+ feeTier: z.enum(["low", "med", "high"]).optional().describe("Iris forwardFee tier; default med"),
6315
+ minFinalityThreshold: agentCoercedOptionalIntSchema(z.number().int().positive()).describe(
6316
+ "Iris fee row. 1000 (default) is fast transfer and includes minimumFee bps. 2000 is standard transfer."
6317
+ )
5903
6318
  });
5904
6319
  var mcpCctpFetchBurnFeesOutputSchema = z.object({
5905
6320
  sourceChainId: z.number(),
@@ -5935,7 +6350,9 @@ var mcpCctpBuildBurnMultisignInputSchema = mcpMultisignInput({
5935
6350
  mintRecipient: evmAddressSchema.optional().describe("Recipient on destination chain; defaults to MPC executor address"),
5936
6351
  feeTier: z.enum(["low", "med", "high"]).optional(),
5937
6352
  minFinalityThreshold: agentCoercedOptionalIntSchema(z.number().int().positive()),
5938
- feeSnapshot: jsonObjectSchema.optional().describe("Optional output from ctm_cctp_fetch_burn_fees")
6353
+ feeSnapshot: jsonObjectSchema.optional().describe(
6354
+ "Optional output from ctm_cctp_fetch_burn_fees. Build re-quotes Iris. A snapshot maxFee below the live forward+protocol total is ignored; a higher snapshot is kept as a cap."
6355
+ )
5939
6356
  });
5940
6357
  var outcomeIdSchema = z.number().int().nonnegative();
5941
6358
  var sideSchema = z.enum(["yes", "no"]);
@@ -6355,7 +6772,7 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
6355
6772
  actionId: "aave-v4.deposit",
6356
6773
  protocolId: "aave-v4",
6357
6774
  chainCategory: "evm",
6358
- description: "Build Aave v4 Spoke supply/deposit batch (wrap native, approve, supply).",
6775
+ description: "Build Aave v4 Spoke supply/deposit batch (wrap native, approve, supply). Base bStocks: marketId bstocks and underlying ticker (AAPLc) or address.",
6359
6776
  prerequisites: ["keyGenId", "chainId", "underlying", "amountHuman", "get_defi_protocol_skill for hubs/spokes"],
6360
6777
  handler: { importPath: "protocols/evm/aave-v4", exportName: "buildEvmMultisignBodyAaveV4DepositBatch" },
6361
6778
  inputZod: mcpAaveV4DepositInputSchema
@@ -6375,7 +6792,7 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
6375
6792
  actionId: "aave-v4.borrow",
6376
6793
  protocolId: "aave-v4",
6377
6794
  chainCategory: "evm",
6378
- description: "Build Aave v4 Spoke borrow; underlying is debt asset; collateral must be supplied first.",
6795
+ description: "Build Aave v4 Spoke borrow; underlying is the debt asset (USDC on bstocks). Equities are collateral-only. collateralUnderlying may be a bStock ticker (AAPLc).",
6379
6796
  prerequisites: [
6380
6797
  "keyGenId",
6381
6798
  "chainId",
@@ -6981,7 +7398,7 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
6981
7398
  actionId: "circle-cctp.burn-forward",
6982
7399
  protocolId: "circle-cctp",
6983
7400
  chainCategory: "evm",
6984
- description: "Create and submit mpc-auth multiSignRequest for CCTP Forwarding Service USDC transfer (approve + depositForBurnWithHook on source chain).",
7401
+ description: "Create and submit mpc-auth multiSignRequest for CCTP Forwarding Service USDC transfer (approve + depositForBurnWithHook on source chain). Re-quotes Iris and sets maxFee to the forwarding tier plus the fast-transfer protocol fee. A feeSnapshot cannot set a lower maxFee.",
6985
7402
  prerequisites: [
6986
7403
  "ctm_cctp_fetch_burn_fees (required)",
6987
7404
  "keyGenId",
@@ -7060,7 +7477,7 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
7060
7477
  description: "Build VotingEscrow.withdraw for an expired, unattached lock. Refuses if still locked or node-attached.",
7061
7478
  prerequisites: ["keyGen", "tokenId", "lock expired", "unattached"],
7062
7479
  handler: { importPath: "protocols/evm/continuum-dao", exportName: "buildEvmMultisignBodyContinuumDaoWithdraw" },
7063
- inputZod: mcpContinuumDaoTokenIdInputSchema
7480
+ inputZod: mcpContinuumDaoWithdrawInputSchema
7064
7481
  }),
7065
7482
  defineProtocolMcpTool({
7066
7483
  name: "ctm_continuum_dao_build_liquidate_multisign",
@@ -7070,7 +7487,7 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
7070
7487
  description: "Build VotingEscrow.liquidate. Refuses if attached, liquidations disabled, locked amount <= 100 gwei, or penalty would be zero. Expired locks withdraw instead on-chain.",
7071
7488
  prerequisites: ["keyGen", "tokenId", "liquidationsEnabled", "unattached"],
7072
7489
  handler: { importPath: "protocols/evm/continuum-dao", exportName: "buildEvmMultisignBodyContinuumDaoLiquidate" },
7073
- inputZod: mcpContinuumDaoTokenIdInputSchema
7490
+ inputZod: mcpContinuumDaoLiquidateInputSchema
7074
7491
  }),
7075
7492
  defineProtocolMcpTool({
7076
7493
  name: "ctm_continuum_dao_build_delegate_multisign",
@@ -7188,7 +7605,7 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
7188
7605
  description: "Build ContinuumDAO.execute(proposalId). proposalId may be a catalog id (including 0) or the governor hash. Call after Succeeded. Queue is not implemented.",
7189
7606
  prerequisites: ["keyGen", "proposalId", "Succeeded state"],
7190
7607
  handler: { importPath: "protocols/evm/continuum-dao", exportName: "buildEvmMultisignBodyContinuumDaoExecute" },
7191
- inputZod: mcpContinuumDaoProposalIdInputSchema
7608
+ inputZod: mcpContinuumDaoExecuteInputSchema
7192
7609
  }),
7193
7610
  defineProtocolMcpTool({
7194
7611
  name: "ctm_continuum_dao_build_cancel_multisign",
@@ -7198,7 +7615,7 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
7198
7615
  description: "Build ContinuumDAO.cancel(proposalId). Proposer while Pending, or the proposal guardian.",
7199
7616
  prerequisites: ["keyGen", "proposalId"],
7200
7617
  handler: { importPath: "protocols/evm/continuum-dao", exportName: "buildEvmMultisignBodyContinuumDaoCancel" },
7201
- inputZod: mcpContinuumDaoProposalIdInputSchema
7618
+ inputZod: mcpContinuumDaoCancelInputSchema
7202
7619
  }),
7203
7620
  defineProtocolMcpTool({
7204
7621
  name: "ctm_continuum_dao_build_forum_sign_in_multisign",
@@ -7538,7 +7955,7 @@ var mcpContinuumDaoMarketplaceSearchInputSchema = z.object({
7538
7955
  sort: z.enum(["pricePerLockedCtm", "price", "locked", "unlock", "deadline"]).optional().describe("Default pricePerLockedCtm, cheapest first. locked defaults to most CTM. unlock and deadline default to soonest."),
7539
7956
  sortDirection: z.enum(["asc", "desc"]).optional(),
7540
7957
  limit: z.number().int().min(1).max(25).optional().describe("Ranked rows to return, default 10"),
7541
- executor: evmAddressSchema.optional().describe("KeyGen address. veCTMs this address sells are omitted."),
7958
+ executor: evmAddressSchema.optional().describe("KeyGen address. Listings this address sells are returned with action delist and fillable false."),
7542
7959
  excludeOwned: z.boolean().optional()
7543
7960
  });
7544
7961
  var mcpContinuumDaoMarketplaceFeeAlternativeInputSchema = z.object({
@@ -7615,46 +8032,46 @@ var mcpContinuumDaoMarketplaceActivityOutputSchema = z.object({
7615
8032
  var mcpContinuumDaoMarketplaceFeeOutputSchema = z.object({ source }).passthrough();
7616
8033
  var wei = z.union([z.string(), z.number()]);
7617
8034
  var deadline = z.union([z.string(), z.number()]).describe("Unix seconds");
7618
- var mcpContinuumDaoMarketplaceCreateListingInputSchema = mcpMultisignInput({
8035
+ var mcpContinuumDaoMarketplaceCreateListingInputSchema = mcpContinuumDaoWriteInput("marketplaceCreateListing", {
7619
8036
  tokenId: wei,
7620
8037
  paymentToken: evmAddressSchema,
7621
8038
  askWei: wei,
7622
8039
  deadline
7623
8040
  });
7624
- var mcpContinuumDaoMarketplaceDelistInputSchema = mcpMultisignInput({ tokenId: wei });
7625
- var mcpContinuumDaoMarketplaceFulfillListingInputSchema = mcpMultisignInput({
8041
+ var mcpContinuumDaoMarketplaceDelistInputSchema = mcpContinuumDaoWriteInput("marketplaceDelist", { tokenId: wei });
8042
+ var mcpContinuumDaoMarketplaceFulfillListingInputSchema = mcpContinuumDaoWriteInput("marketplaceFulfillListing", {
7626
8043
  tokenId: wei,
7627
8044
  seller: evmAddressSchema,
7628
8045
  paymentToken: evmAddressSchema,
7629
8046
  priceWei: wei
7630
8047
  });
7631
- var mcpContinuumDaoMarketplaceCreateOfferingInputSchema = mcpMultisignInput({
8048
+ var mcpContinuumDaoMarketplaceCreateOfferingInputSchema = mcpContinuumDaoWriteInput("marketplaceCreateOffering", {
7632
8049
  tokenId: wei,
7633
8050
  paymentToken: evmAddressSchema,
7634
8051
  bidWei: wei,
7635
8052
  deadline
7636
8053
  });
7637
- var mcpContinuumDaoMarketplaceRescindInputSchema = mcpMultisignInput({ tokenId: wei });
7638
- var mcpContinuumDaoMarketplaceFulfillOfferingInputSchema = mcpMultisignInput({
8054
+ var mcpContinuumDaoMarketplaceRescindInputSchema = mcpContinuumDaoWriteInput("marketplaceRescind", { tokenId: wei });
8055
+ var mcpContinuumDaoMarketplaceFulfillOfferingInputSchema = mcpContinuumDaoWriteInput("marketplaceFulfillOffering", {
7639
8056
  tokenId: wei,
7640
8057
  buyer: evmAddressSchema,
7641
8058
  paymentToken: evmAddressSchema,
7642
8059
  priceWei: wei
7643
8060
  });
7644
- var mcpContinuumDaoMarketplaceCreateAuctionInputSchema = mcpMultisignInput({
8061
+ var mcpContinuumDaoMarketplaceCreateAuctionInputSchema = mcpContinuumDaoWriteInput("marketplaceCreateAuction", {
7645
8062
  tokenId: wei,
7646
8063
  paymentToken: evmAddressSchema,
7647
8064
  deadline,
7648
8065
  reserveWei: wei,
7649
8066
  minIncrementWei: wei
7650
8067
  });
7651
- var mcpContinuumDaoMarketplaceCancelAuctionInputSchema = mcpMultisignInput({ tokenId: wei });
7652
- var mcpContinuumDaoMarketplaceAuctionBidInputSchema = mcpMultisignInput({
8068
+ var mcpContinuumDaoMarketplaceCancelAuctionInputSchema = mcpContinuumDaoWriteInput("marketplaceCancelAuction", { tokenId: wei });
8069
+ var mcpContinuumDaoMarketplaceAuctionBidInputSchema = mcpContinuumDaoWriteInput("marketplaceAuctionBid", {
7653
8070
  tokenId: wei,
7654
8071
  seller: evmAddressSchema,
7655
8072
  priceWei: wei
7656
8073
  });
7657
- var mcpContinuumDaoMarketplaceSettleAuctionInputSchema = mcpMultisignInput({
8074
+ var mcpContinuumDaoMarketplaceSettleAuctionInputSchema = mcpContinuumDaoWriteInput("marketplaceSettleAuction", {
7658
8075
  tokenId: wei,
7659
8076
  seller: evmAddressSchema
7660
8077
  });
@@ -7724,9 +8141,13 @@ var MCP_MARKETPLACE_TOOL_DEFINITIONS = [
7724
8141
  defineRead({
7725
8142
  name: "ctm_continuum_dao_marketplace_search",
7726
8143
  actionId: "continuum-dao-marketplace.search",
7727
- description: "Rank veCTMs for sale. Returns a short list already sorted by price per locked CTM, price, locked CTM, unlock, or deadline. Filters: min/max locked CTM, unlock window, maxUnlockMonths. Pass paymentToken to compare prices. Pass executor to drop veCTMs this KeyGen sells. Use this to choose a buy. Do not fetch the raw listing page and then offer to sort it.",
8144
+ description: 'Rank veCTMs for sale. Returns a short list already sorted by price per locked CTM, price, locked CTM, unlock, or deadline. Filters: min/max locked CTM, unlock window, maxUnlockMonths. Pass paymentToken to compare prices. Pass executor so this KeyGen\u2019s own listings come back with action "delist" and fillable false. Call the delist builder for those. Do not buy them. Use this to choose a buy. Do not fetch the raw listing page and then offer to sort it.',
7728
8145
  prerequisites: ["chainId 59144", "rpcUrl when lock snapshots are missing"],
7729
- followUp: ["ctm_continuum_dao_marketplace_build_fulfill_listing_multisign", "ctm_continuum_dao_marketplace_build_auction_bid_multisign"],
8146
+ followUp: [
8147
+ "ctm_continuum_dao_marketplace_build_delist_multisign",
8148
+ "ctm_continuum_dao_marketplace_build_fulfill_listing_multisign",
8149
+ "ctm_continuum_dao_marketplace_build_auction_bid_multisign"
8150
+ ],
7730
8151
  inputZod: mcpContinuumDaoMarketplaceSearchInputSchema,
7731
8152
  outputZod: mcpContinuumDaoMarketplaceSearchOutputSchema,
7732
8153
  exportName: "searchContinuumDaoMarketplace"
@@ -7734,9 +8155,12 @@ var MCP_MARKETPLACE_TOOL_DEFINITIONS = [
7734
8155
  defineRead({
7735
8156
  name: "ctm_continuum_dao_marketplace_fetch_listings",
7736
8157
  actionId: "continuum-dao-marketplace.fetch-listings",
7737
- description: "Unfiltered page of open veCTM listings, created order, up to 100, with nextCursor. includeInactive adds past sales. To choose a buy by price, locked CTM, or unlock time, use search instead.",
8158
+ description: 'Unfiltered page of open veCTM listings, created order, up to 100, with nextCursor. includeInactive adds past sales. Pass viewer as the KeyGen. viewerAction "delist" means that KeyGen already sells the veCTM: build a delist, not a buy. To choose a buy by price, locked CTM, or unlock time, use search instead.',
7738
8159
  prerequisites: ["chainId 59144"],
7739
- followUp: ["ctm_continuum_dao_marketplace_build_fulfill_listing_multisign"],
8160
+ followUp: [
8161
+ "ctm_continuum_dao_marketplace_build_delist_multisign",
8162
+ "ctm_continuum_dao_marketplace_build_fulfill_listing_multisign"
8163
+ ],
7740
8164
  inputZod: mcpContinuumDaoMarketplaceFetchListingsInputSchema,
7741
8165
  outputZod: mcpContinuumDaoMarketplaceListOutputSchema,
7742
8166
  exportName: "fetchContinuumDaoMarketplaceListings"
@@ -7754,7 +8178,7 @@ var MCP_MARKETPLACE_TOOL_DEFINITIONS = [
7754
8178
  defineRead({
7755
8179
  name: "ctm_continuum_dao_marketplace_fetch_auctions",
7756
8180
  actionId: "continuum-dao-marketplace.fetch-auctions",
7757
- description: "Live veCTM auctions (Pending, Active, Complete). includeInactive adds sold, canceled, and expired. Each auction includes bids.",
8181
+ description: "Live veCTM auctions. derivedStatus is Active while the auction is open, including before any bid meets the reserve. storedStatus stays Pending until a qualifying bid, then Active. Complete still needs settle. includeInactive adds sold, canceled, and expired. Each auction includes bids.",
7758
8182
  prerequisites: ["chainId 59144"],
7759
8183
  followUp: ["ctm_continuum_dao_marketplace_build_auction_bid_multisign", "ctm_continuum_dao_marketplace_build_settle_auction_multisign"],
7760
8184
  inputZod: mcpContinuumDaoMarketplaceFetchAuctionsInputSchema,
@@ -7794,15 +8218,15 @@ var MCP_MARKETPLACE_TOOL_DEFINITIONS = [
7794
8218
  defineWrite({
7795
8219
  name: "ctm_continuum_dao_marketplace_build_create_listing_multisign",
7796
8220
  actionId: "continuum-dao-marketplace.create-listing",
7797
- description: "List a veCTM. Approves the marketplace for the token id when needed. Linea only.",
7798
- prerequisites: ["keyGen", "tokenId owned by the KeyGen", "askWei", "deadline"],
8221
+ description: "List a veCTM. Approves the marketplace for the token id when needed. Refuses an attached KeyGen. Linea only.",
8222
+ prerequisites: ["keyGen", "tokenId owned by the KeyGen", "unattached", "askWei", "deadline"],
7799
8223
  inputZod: mcpContinuumDaoMarketplaceCreateListingInputSchema,
7800
8224
  exportName: "buildEvmMultisignBodyContinuumDaoMarketplaceCreateListing"
7801
8225
  }),
7802
8226
  defineWrite({
7803
8227
  name: "ctm_continuum_dao_marketplace_build_delist_multisign",
7804
8228
  actionId: "continuum-dao-marketplace.delist",
7805
- description: "Delist this KeyGen\u2019s open veCTM listing.",
8229
+ description: "Delist this KeyGen\u2019s open veCTM listing. Use this when the KeyGen is the seller. Do not buy that listing.",
7806
8230
  prerequisites: ["keyGen", "tokenId"],
7807
8231
  inputZod: mcpContinuumDaoMarketplaceDelistInputSchema,
7808
8232
  exportName: "buildEvmMultisignBodyContinuumDaoMarketplaceDelist"
@@ -7810,7 +8234,7 @@ var MCP_MARKETPLACE_TOOL_DEFINITIONS = [
7810
8234
  defineWrite({
7811
8235
  name: "ctm_continuum_dao_marketplace_build_fulfill_listing_multisign",
7812
8236
  actionId: "continuum-dao-marketplace.fulfill-listing",
7813
- description: "Buy a listed veCTM. Refuses when this KeyGen already owns it or is the seller. WETH sends msg.value.",
8237
+ description: "Buy a listed veCTM. Refuses when this KeyGen already owns it or is the seller, and tells you to delist instead. WETH sends msg.value.",
7814
8238
  prerequisites: ["keyGen", "tokenId", "seller", "priceWei"],
7815
8239
  inputZod: mcpContinuumDaoMarketplaceFulfillListingInputSchema,
7816
8240
  exportName: "buildEvmMultisignBodyContinuumDaoMarketplaceFulfillListing"
@@ -7818,8 +8242,8 @@ var MCP_MARKETPLACE_TOOL_DEFINITIONS = [
7818
8242
  defineWrite({
7819
8243
  name: "ctm_continuum_dao_marketplace_build_create_offering_multisign",
7820
8244
  actionId: "continuum-dao-marketplace.create-offering",
7821
- description: "Offer on a veCTM this KeyGen does not own. WETH sends msg.value and still approves WETH for later fulfillment.",
7822
- prerequisites: ["keyGen", "tokenId", "bidWei", "deadline"],
8245
+ description: "Offer on a veCTM this KeyGen does not own. Refuses an attached KeyGen. WETH sends msg.value and still approves WETH for later fulfillment.",
8246
+ prerequisites: ["keyGen", "tokenId", "unattached", "bidWei", "deadline"],
7823
8247
  inputZod: mcpContinuumDaoMarketplaceCreateOfferingInputSchema,
7824
8248
  exportName: "buildEvmMultisignBodyContinuumDaoMarketplaceCreateOffering"
7825
8249
  }),
@@ -7843,7 +8267,7 @@ var MCP_MARKETPLACE_TOOL_DEFINITIONS = [
7843
8267
  name: "ctm_continuum_dao_marketplace_build_create_auction_multisign",
7844
8268
  actionId: "continuum-dao-marketplace.create-auction",
7845
8269
  description: "Start an auction and escrow the veCTM. Refuses an attached KeyGen.",
7846
- prerequisites: ["keyGen", "tokenId", "reserveWei", "minIncrementWei", "deadline"],
8270
+ prerequisites: ["keyGen", "tokenId", "unattached", "reserveWei", "minIncrementWei", "deadline"],
7847
8271
  inputZod: mcpContinuumDaoMarketplaceCreateAuctionInputSchema,
7848
8272
  exportName: "buildEvmMultisignBodyContinuumDaoMarketplaceCreateAuction"
7849
8273
  }),
@@ -9168,7 +9592,7 @@ var CORE_MCP_TOOL_DEFINITIONS = [
9168
9592
  actionId: "circle-cctp.fetch-fees",
9169
9593
  protocolId: "circle-cctp",
9170
9594
  chainCategory: "evm",
9171
- description: "Quote Circle Iris Forwarding Service burn fees (?forward=true) for a CCTP route. Returns human-readable USDC fee tiers and totalBurn when transferAmountHuman is set. Does NOT create a sign request.",
9595
+ description: "Quote Circle Iris CCTP fees (?forward=true). maxFee = forwardFee[tier] + protocol fee (minimumFee bps of transferAmountHuman). Pass transferAmountHuman before building a burn. forwardFee* fields are the forwarding component only. Does NOT create a sign request.",
9172
9596
  prerequisites: ["supported route (ctm_cctp_fetch_supported_routes)"],
9173
9597
  followUp: ["ctm_cctp_fetch_usdc_balance", "ctm_cctp_build_burn_multisign"],
9174
9598
  handler: { importPath: "protocols/evm/circle-cctp", exportName: "cctpFetchBurnFeesForRoute" },
@@ -9802,10 +10226,11 @@ var CORE_MCP_TOOL_DEFINITIONS = [
9802
10226
  actionId: "aave-v4.fetch-markets",
9803
10227
  protocolId: "aave-v4",
9804
10228
  chainCategory: "evm",
9805
- description: "List Aave v4 hub reserves on a chain with live supply/borrow APY, liquidity, and collateral factor. Use this (not web search) to compare lending rates or pick an underlying + marketId for build_*_multisign. Optional marketId (main/core/bluechip) or underlying filter.",
10229
+ description: "List Aave v4 hub reserves on a chain with live supply/borrow APY, liquidity, and collateral factor. Use this (not web search) to compare lending rates or pick an underlying + marketId for build_*_multisign. Optional marketId (main/core/bluechip/bstocks) or underlying filter. Base tokenized stocks: marketId bstocks or ctm_aave_v4_fetch_stock_markets. Tickers (AAPLc) OK.",
9806
10230
  prerequisites: ["chainId", "get_defi_protocol_supported_chains"],
9807
10231
  followUp: [
9808
10232
  "ctm_aave_v4_fetch_market",
10233
+ "ctm_aave_v4_fetch_stock_markets",
9809
10234
  "ctm_aave_v4_build_deposit_multisign",
9810
10235
  "ctm_aave_v4_build_borrow_multisign"
9811
10236
  ],
@@ -9818,7 +10243,7 @@ var CORE_MCP_TOOL_DEFINITIONS = [
9818
10243
  actionId: "aave-v4.fetch-market",
9819
10244
  protocolId: "aave-v4",
9820
10245
  chainCategory: "evm",
9821
- description: "One Aave v4 reserve (or the same underlying across hubs) with supply/borrow APY and liquidity. Copy underlying + marketId for deposit/borrow/repay. Do not web-search Aave rates.",
10246
+ description: "One Aave v4 reserve (or the same underlying across hubs) with supply/borrow APY and liquidity. Copy underlying + marketId for deposit/borrow/repay. Tickers OK (USDT, AAPLc). Do not web-search Aave rates.",
9822
10247
  prerequisites: ["chainId", "underlying from ctm_aave_v4_fetch_markets or get_defi_protocol_supported_tokens"],
9823
10248
  followUp: [
9824
10249
  "ctm_aave_v4_build_deposit_multisign",
@@ -9830,6 +10255,23 @@ var CORE_MCP_TOOL_DEFINITIONS = [
9830
10255
  inputZod: mcpAaveV4FetchMarketInputSchema,
9831
10256
  outputZod: mcpAaveV4FetchMarketOutputSchema
9832
10257
  }),
10258
+ defineMcpTool({
10259
+ name: "ctm_aave_v4_fetch_stock_markets",
10260
+ actionId: "aave-v4.fetch-stock-markets",
10261
+ protocolId: "aave-v4",
10262
+ chainCategory: "evm",
10263
+ description: "Coinbase tokenized stocks (bStocks) on the Aave v4 Coinbase Stocks hub, Base chainId 8453 by default. Equities (AAPLc, NVDAc, \u2026) are collateral-only; USDC is the borrow asset. Tickers OK. Same rows as ctm_aave_v4_fetch_markets with marketId bstocks. Chainlink feeds are 24/5. Not for U.S. persons.",
10264
+ prerequisites: ["chainId 8453 or omit"],
10265
+ followUp: [
10266
+ "ctm_aave_v4_build_deposit_multisign",
10267
+ "ctm_aave_v4_build_borrow_multisign",
10268
+ "ctm_aave_v4_build_repay_multisign",
10269
+ "ctm_aave_v4_build_withdraw_multisign"
10270
+ ],
10271
+ handler: { importPath: "protocols/evm/aave-v4", exportName: "aaveV4FetchStockMarketsSummary" },
10272
+ inputZod: mcpAaveV4FetchStockMarketsInputSchema,
10273
+ outputZod: mcpAaveV4FetchStockMarketsOutputSchema
10274
+ }),
9833
10275
  defineMcpTool({
9834
10276
  name: "ctm_aave_v4_fetch_merkl_rewards",
9835
10277
  actionId: "aave-v4.fetch-merkl-rewards",
@@ -10823,83 +11265,6 @@ var skyProtocolModule = {
10823
11265
  };
10824
11266
  registerProtocolModule(skyProtocolModule);
10825
11267
 
10826
- // src/protocols/evm/aave-v4/api.ts
10827
- init_defiProxy();
10828
- var AAVE_V4_GRAPHQL_URL = "https://api.v4.aave.com/graphql";
10829
- async function aaveV4Gql(query, variables) {
10830
- const body = { query, variables: variables ?? {} };
10831
- const j = await postJsonViaOptionalProxy({
10832
- directUrl: AAVE_V4_GRAPHQL_URL,
10833
- body,
10834
- proxyUrl: getAaveGraphqlProxyUrl(),
10835
- proxyEnvelope: body
10836
- });
10837
- if (j.errors?.length) {
10838
- const msg = j.errors.map((e) => e.message ?? "Unknown").join("; ");
10839
- throw new Error(msg);
10840
- }
10841
- if (j.data == null) {
10842
- throw new Error("Aave V4 API: empty response");
10843
- }
10844
- return j.data;
10845
- }
10846
- async function fetchAaveV4Chains() {
10847
- const d = await aaveV4Gql(`
10848
- query C($c: ChainsRequest!) { chains(request: $c) { chainId name nativeWrappedToken } }
10849
- `, { c: { query: { filter: "ALL" } } });
10850
- return d.chains ?? [];
10851
- }
10852
- async function loadAaveV4SupportedChainIdsFromV4Api() {
10853
- const rows = await fetchAaveV4Chains();
10854
- const s = /* @__PURE__ */ new Set();
10855
- for (const c of rows) s.add(c.chainId);
10856
- return s;
10857
- }
10858
- var RESERVES_ADDRESS_FRAGMENT = `
10859
- asset { underlying { address } }
10860
- `;
10861
- async function fetchAaveV4NativeWrappedToken(chainId) {
10862
- const all = await fetchAaveV4Chains();
10863
- const c = all.find((x) => x.chainId === chainId);
10864
- const t = (c?.nativeWrappedToken ?? "").trim();
10865
- if (t && isAddress(t)) return getAddress(t);
10866
- return null;
10867
- }
10868
- async function fetchAaveV4SupportedUnderlyingAddressSet(chainId) {
10869
- const d = await aaveV4Gql(
10870
- `
10871
- query A($r: ReservesRequest!) { reserves(request: $r) { ${RESERVES_ADDRESS_FRAGMENT} } }
10872
- `,
10873
- {
10874
- r: {
10875
- query: { chainIds: [chainId] },
10876
- filter: "ALL",
10877
- orderBy: { supplyApy: "DESC" }
10878
- }
10879
- }
10880
- );
10881
- const s = /* @__PURE__ */ new Set();
10882
- for (const r of d.reserves ?? []) {
10883
- const a = (r.asset?.underlying?.address ?? "").trim();
10884
- if (a && isAddress(a)) s.add(a.toLowerCase());
10885
- }
10886
- return s;
10887
- }
10888
- var aaveV4ChainTokenCache = /* @__PURE__ */ new Map();
10889
- function ensureAaveV4ChainTokenCache(chainId) {
10890
- const hit = aaveV4ChainTokenCache.get(chainId);
10891
- if (hit) return hit;
10892
- const p = (async () => {
10893
- const [nativeWrapped, supportedUnderlying] = await Promise.all([
10894
- fetchAaveV4NativeWrappedToken(chainId),
10895
- fetchAaveV4SupportedUnderlyingAddressSet(chainId)
10896
- ]);
10897
- return { supportedUnderlying, nativeWrapped };
10898
- })();
10899
- aaveV4ChainTokenCache.set(chainId, p);
10900
- return p;
10901
- }
10902
-
10903
11268
  // src/protocols/evm/aave-v4/index.ts
10904
11269
  var AAVE_V4_PROTOCOL_ID = "aave-v4";
10905
11270
  var aaveV4ProtocolModule = {
@@ -11583,9 +11948,9 @@ registerProtocolModule(hyperliquidProtocolModule);
11583
11948
  // src/protocols/evm/arcus/index.ts
11584
11949
  init_support();
11585
11950
  init_support();
11586
- init_constants();
11951
+ init_constants2();
11587
11952
  init_api();
11588
- init_constants();
11953
+ init_constants2();
11589
11954
  var arcusProtocolModule = {
11590
11955
  id: ARCUS_PROTOCOL_ID,
11591
11956
  chainCategory: "evm",
@@ -12107,7 +12472,7 @@ var circleCctpProtocolModule = {
12107
12472
  id: "circle-cctp.fetch-fees",
12108
12473
  protocolId: CIRCLE_CCTP_PROTOCOL_ID,
12109
12474
  chainCategory: "evm",
12110
- description: "Quote Iris Forwarding Service burn fees for a route",
12475
+ description: "Quote Iris forwarding fee plus fast-transfer protocol fee for a route",
12111
12476
  commonParams: [],
12112
12477
  params: {
12113
12478
  sourceChainId: { type: "number", required: true, description: "Source EIP-155 chain id" },
@@ -12339,10 +12704,10 @@ var aerodromeProtocolModule = {
12339
12704
  registerProtocolModule(aerodromeProtocolModule);
12340
12705
 
12341
12706
  // src/protocols/evm/continuum-dao/index.ts
12342
- init_constants2();
12707
+ init_constants();
12343
12708
 
12344
12709
  // src/protocols/evm/continuum-dao/marketplaceModule.ts
12345
- init_constants2();
12710
+ init_constants();
12346
12711
  var common = ["keyGen", "purposeText", "useCustomGas"];
12347
12712
  var continuumDaoMarketplaceProtocolModule = {
12348
12713
  id: CONTINUUM_DAO_MARKETPLACE_PROTOCOL_ID,
@@ -12379,7 +12744,7 @@ var continuumDaoMarketplaceProtocolModule = {
12379
12744
  };
12380
12745
 
12381
12746
  // src/protocols/evm/continuum-dao/index.ts
12382
- init_constants2();
12747
+ init_constants();
12383
12748
  init_committeeList();
12384
12749
  init_proposalCatalog();
12385
12750
  init_governance();
@@ -13190,16 +13555,16 @@ async function pendleCoreFetch(args) {
13190
13555
  lastError = new PendleApiError(`Pendle API rate limited (429) on ${path}`, 429, path);
13191
13556
  continue;
13192
13557
  }
13193
- const text = await res.text();
13558
+ const text2 = await res.text();
13194
13559
  if (!res.ok) {
13195
13560
  throw new PendleApiError(
13196
- `Pendle API ${res.status} ${path}: ${text.slice(0, 400)}`,
13561
+ `Pendle API ${res.status} ${path}: ${text2.slice(0, 400)}`,
13197
13562
  res.status,
13198
13563
  path
13199
13564
  );
13200
13565
  }
13201
- if (!text.trim()) return {};
13202
- return JSON.parse(text);
13566
+ if (!text2.trim()) return {};
13567
+ return JSON.parse(text2);
13203
13568
  } catch (err) {
13204
13569
  lastError = err;
13205
13570
  if (err instanceof PendleApiError && err.status !== 429) throw err;
@@ -13589,15 +13954,15 @@ async function deriveRpcPost(args) {
13589
13954
  cache: "no-store",
13590
13955
  signal: AbortSignal.timeout(15e3)
13591
13956
  });
13592
- const text = await res.text().catch(() => "");
13593
- if (!res.ok || !text.trim() || text.trim() === "Not Found") {
13594
- throw new Error(`Derive ${method} HTTP ${res.status}: ${text.slice(0, 240) || "empty body"}`);
13957
+ const text2 = await res.text().catch(() => "");
13958
+ if (!res.ok || !text2.trim() || text2.trim() === "Not Found") {
13959
+ throw new Error(`Derive ${method} HTTP ${res.status}: ${text2.slice(0, 240) || "empty body"}`);
13595
13960
  }
13596
13961
  let json;
13597
13962
  try {
13598
- json = JSON.parse(text);
13963
+ json = JSON.parse(text2);
13599
13964
  } catch {
13600
- throw new Error(`Derive ${method} returned non-JSON: ${text.slice(0, 160)}`);
13965
+ throw new Error(`Derive ${method} returned non-JSON: ${text2.slice(0, 160)}`);
13601
13966
  }
13602
13967
  const result = unwrapResult(json, method);
13603
13968
  if (isEmptyDerivePublicResult(method, result)) {
@@ -13999,15 +14364,17 @@ function getProtocolDiscoverySummary(protocolId) {
13999
14364
  }))
14000
14365
  };
14001
14366
  }
14367
+ init_coinbaseB20();
14002
14368
  init_support();
14003
14369
  init_support2();
14004
14370
  init_addresses();
14005
14371
  init_stockTokens();
14006
- init_constants2();
14372
+ init_constants();
14007
14373
  function advisor(protocolId, tokenFilter, impl) {
14008
14374
  return { protocolId, tokenFilter, ...impl };
14009
14375
  }
14010
- function aerodromeAdvisorPriorityTokens() {
14376
+ async function aerodromeAdvisorPriorityTokens() {
14377
+ const stocks = await ensureCoinbaseB20StockCatalog().catch(() => []);
14011
14378
  return [
14012
14379
  {
14013
14380
  address: "0x0000000000000000000000000000000000000000",
@@ -14033,11 +14400,11 @@ function aerodromeAdvisorPriorityTokens() {
14033
14400
  decimals: 18,
14034
14401
  roles: ["swappable"]
14035
14402
  },
14036
- ...COINBASE_B20_STOCK_TOKENS.map((t) => ({
14403
+ ...stocks.map((t) => ({
14037
14404
  address: t.address,
14038
14405
  symbol: t.symbol,
14039
14406
  name: t.name,
14040
- decimals: COINBASE_B20_STOCK_DECIMALS,
14407
+ decimals: t.decimals || COINBASE_B20_STOCK_DECIMALS,
14041
14408
  roles: ["swappable", "listed", "coinbase_b20"]
14042
14409
  }))
14043
14410
  ];
@@ -14050,10 +14417,18 @@ var PROTOCOL_SUPPORT_ADVISORS = {
14050
14417
  },
14051
14418
  async supportedTokens(chainId) {
14052
14419
  const cache = await ensureAaveV4ChainTokenCache(chainId);
14053
- const tokens = [...cache.supportedUnderlying].map((address) => ({
14054
- address,
14055
- roles: ["underlying"]
14056
- }));
14420
+ await ensureCoinbaseB20StockCatalog().catch(() => []);
14421
+ const tokens = [...cache.supportedUnderlying].map((address) => {
14422
+ const known = lookupCoinbaseB20StockToken(address);
14423
+ if (!known) return { address, roles: ["underlying"] };
14424
+ return {
14425
+ address,
14426
+ symbol: known.symbol,
14427
+ name: "name" in known ? known.name : void 0,
14428
+ decimals: COINBASE_B20_STOCK_DECIMALS,
14429
+ roles: ["underlying", "coinbase_b20", "collateral"]
14430
+ };
14431
+ });
14057
14432
  if (cache.nativeWrapped) {
14058
14433
  tokens.unshift({
14059
14434
  address: cache.nativeWrapped,
@@ -14064,7 +14439,7 @@ var PROTOCOL_SUPPORT_ADVISORS = {
14064
14439
  return {
14065
14440
  tokens,
14066
14441
  nativeWrapped: cache.nativeWrapped ?? void 0,
14067
- notes: "Native ETH deposits use wrapped native token address from Aave v4 API."
14442
+ notes: "Native ETH deposits use wrapped native token address from Aave v4 API. Base chainId 8453 Coinbase Stocks hub is marketId bstocks. Listed equities come from the Aave v4 API; tickers resolve from the live Coinbase catalog. Equities are collateral-only; USDC is the borrow asset."
14068
14443
  };
14069
14444
  },
14070
14445
  async isTokenSupported(chainId, address) {
@@ -14350,9 +14725,9 @@ var PROTOCOL_SUPPORT_ADVISORS = {
14350
14725
  return { tokens: [], notes: "Aerodrome is Base-only (chainId 8453)." };
14351
14726
  }
14352
14727
  return {
14353
- tokens: aerodromeAdvisorPriorityTokens(),
14728
+ tokens: await aerodromeAdvisorPriorityTokens(),
14354
14729
  nativeWrapped: AERODROME_WETH_BASE,
14355
- notes: "Slim directory: ETH, WETH, USDC, AERO, and Coinbase B20 stocks (AAPLc, \u2026). For a price call ctm_aerodrome_quote with tickers. To see pools for one token call ctm_aerodrome_discover_pools. Do not dump LpSugar."
14730
+ notes: "ETH, WETH, USDC, AERO, plus the live Coinbase B20 catalog. For a price call ctm_aerodrome_quote with a ticker. To see pools for one token call ctm_aerodrome_discover_pools. Do not dump LpSugar."
14356
14731
  };
14357
14732
  }
14358
14733
  }),
@@ -14627,6 +15002,6 @@ function getAgentCatalog() {
14627
15002
  };
14628
15003
  }
14629
15004
 
14630
- 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 };
15005
+ 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, mcpAaveV4FetchStockMarketsInputSchema, mcpAaveV4FetchStockMarketsOutputSchema, 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, mcpContinuumDaoCancelInputSchema, mcpContinuumDaoCastVoteBravoInputSchema, mcpContinuumDaoCastVoteDeltaInputSchema, mcpContinuumDaoComposeProposalActionInputSchema, mcpContinuumDaoComposeProposalActionOutputSchema, mcpContinuumDaoCreateLockInputSchema, mcpContinuumDaoDelegateInputSchema, mcpContinuumDaoExecuteInputSchema, 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, mcpContinuumDaoLiquidateInputSchema, 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, mcpContinuumDaoWithdrawInputSchema, mcpContinuumDaoWriteInput, 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 };
14631
15006
  //# sourceMappingURL=catalog.js.map
14632
15007
  //# sourceMappingURL=catalog.js.map