@continuumdao/ctm-mpc-defi 0.1.4 → 0.2.1

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 (94) hide show
  1. package/README.md +20 -78
  2. package/dist/agent/catalog.cjs +1388 -144
  3. package/dist/agent/catalog.cjs.map +1 -1
  4. package/dist/agent/catalog.d.ts +881 -17
  5. package/dist/agent/catalog.js +1327 -145
  6. package/dist/agent/catalog.js.map +1 -1
  7. package/dist/agent/skills/aave-v4/SKILL.md +43 -0
  8. package/dist/agent/skills/curve-dao/SKILL.md +12 -0
  9. package/dist/agent/skills/ethena/SKILL.md +10 -0
  10. package/dist/agent/skills/euler-v2/SKILL.md +10 -0
  11. package/dist/agent/skills/lido/SKILL.md +22 -0
  12. package/dist/agent/skills/maple-syrup/SKILL.md +10 -0
  13. package/dist/agent/skills/sky/SKILL.md +10 -0
  14. package/dist/agent/skills/uniswap-v4/SKILL.md +22 -0
  15. package/dist/chains/evm/index.cjs +27 -213
  16. package/dist/chains/evm/index.cjs.map +1 -1
  17. package/dist/chains/evm/index.d.ts +15 -25
  18. package/dist/chains/evm/index.js +21 -199
  19. package/dist/chains/evm/index.js.map +1 -1
  20. package/dist/chains/near/index.d.ts +1 -1
  21. package/dist/chains/solana/index.d.ts +1 -1
  22. package/dist/core/index.cjs +8 -110
  23. package/dist/core/index.cjs.map +1 -1
  24. package/dist/core/index.d.ts +5 -39
  25. package/dist/core/index.js +6 -100
  26. package/dist/core/index.js.map +1 -1
  27. package/dist/{envelope-CcE5Cz_q.d.ts → envelope-CpBUh9eP.d.ts} +1 -1
  28. package/dist/index.cjs +238 -1184
  29. package/dist/index.cjs.map +1 -1
  30. package/dist/index.d.ts +7 -10
  31. package/dist/index.js +227 -1156
  32. package/dist/index.js.map +1 -1
  33. package/dist/protocols/evm/aave-v4/index.cjs +1710 -0
  34. package/dist/protocols/evm/aave-v4/index.cjs.map +1 -0
  35. package/dist/protocols/evm/aave-v4/index.d.ts +499 -0
  36. package/dist/protocols/evm/aave-v4/index.js +1666 -0
  37. package/dist/protocols/evm/aave-v4/index.js.map +1 -0
  38. package/dist/protocols/evm/curve-dao/index.cjs +24 -124
  39. package/dist/protocols/evm/curve-dao/index.cjs.map +1 -1
  40. package/dist/protocols/evm/curve-dao/index.d.ts +3 -4
  41. package/dist/protocols/evm/curve-dao/index.js +15 -115
  42. package/dist/protocols/evm/curve-dao/index.js.map +1 -1
  43. package/dist/protocols/evm/ethena/index.cjs +853 -0
  44. package/dist/protocols/evm/ethena/index.cjs.map +1 -0
  45. package/dist/protocols/evm/ethena/index.d.ts +160 -0
  46. package/dist/protocols/evm/ethena/index.js +831 -0
  47. package/dist/protocols/evm/ethena/index.js.map +1 -0
  48. package/dist/protocols/evm/euler-v2/index.cjs +1585 -0
  49. package/dist/protocols/evm/euler-v2/index.cjs.map +1 -0
  50. package/dist/protocols/evm/euler-v2/index.d.ts +316 -0
  51. package/dist/protocols/evm/euler-v2/index.js +1560 -0
  52. package/dist/protocols/evm/euler-v2/index.js.map +1 -0
  53. package/dist/protocols/evm/lido/index.cjs +839 -0
  54. package/dist/protocols/evm/lido/index.cjs.map +1 -0
  55. package/dist/protocols/evm/lido/index.d.ts +119 -0
  56. package/dist/protocols/evm/lido/index.js +814 -0
  57. package/dist/protocols/evm/lido/index.js.map +1 -0
  58. package/dist/protocols/evm/maple/index.cjs +619 -0
  59. package/dist/protocols/evm/maple/index.cjs.map +1 -0
  60. package/dist/protocols/evm/maple/index.d.ts +108 -0
  61. package/dist/protocols/evm/maple/index.js +605 -0
  62. package/dist/protocols/evm/maple/index.js.map +1 -0
  63. package/dist/protocols/evm/sky/index.cjs +1259 -0
  64. package/dist/protocols/evm/sky/index.cjs.map +1 -0
  65. package/dist/protocols/evm/sky/index.d.ts +217 -0
  66. package/dist/protocols/evm/sky/index.js +1234 -0
  67. package/dist/protocols/evm/sky/index.js.map +1 -0
  68. package/dist/protocols/evm/uniswap-v4/index.cjs +423 -658
  69. package/dist/protocols/evm/uniswap-v4/index.cjs.map +1 -1
  70. package/dist/protocols/evm/uniswap-v4/index.d.ts +3 -4
  71. package/dist/protocols/evm/uniswap-v4/index.js +422 -657
  72. package/dist/protocols/evm/uniswap-v4/index.js.map +1 -1
  73. package/dist/{registry-oMKlO_5z.d.ts → registry-Bv5o37_w.d.ts} +1 -1
  74. package/dist/{types-Ce2qNHai.d.cts → types-BfjWdw1j.d.ts} +3 -1
  75. package/dist/{types-5u863Fd9.d.ts → types-DUeNJLr9.d.ts} +1 -1
  76. package/package.json +43 -8
  77. package/dist/agent/catalog.d.cts +0 -195
  78. package/dist/chains/evm/index.d.cts +0 -62
  79. package/dist/chains/near/index.d.cts +0 -37
  80. package/dist/chains/solana/index.d.cts +0 -40
  81. package/dist/core/index.d.cts +0 -43
  82. package/dist/envelope-DYDPnrHZ.d.cts +0 -35
  83. package/dist/index.d.cts +0 -15
  84. package/dist/keygen-CfNp8yKJ.d.cts +0 -9
  85. package/dist/keygen-DsINazx8.d.ts +0 -9
  86. package/dist/nodeRead-BnmSaMGO.d.cts +0 -8
  87. package/dist/nodeRead-BnmSaMGO.d.ts +0 -8
  88. package/dist/protocols/evm/curve-dao/index.d.cts +0 -147
  89. package/dist/protocols/evm/uniswap-v4/index.d.cts +0 -324
  90. package/dist/registry-BwZoE668.d.cts +0 -8
  91. package/dist/txParams-BC7ogvdR.d.cts +0 -19
  92. package/dist/txParams-BC7ogvdR.d.ts +0 -19
  93. package/dist/types-B8idm_gu.d.cts +0 -34
  94. package/dist/types-Ce2qNHai.d.ts +0 -57
@@ -1,7 +1,9 @@
1
- import { C as ChainCategory, d as ProtocolModule, P as ParamDoc, c as ProtocolActionDescriptor } from '../types-Ce2qNHai.js';
2
- export { g as getActionsByChainCategory, b as getProtocolModules } from '../registry-oMKlO_5z.js';
1
+ import * as zod from 'zod';
2
+ import { z } from 'zod';
3
+ import { C as ChainCategory, e as ProtocolModule, P as ParamDoc, d as ProtocolActionDescriptor } from '../types-BfjWdw1j.js';
4
+ export { g as getActionsByChainCategory, b as getProtocolModules } from '../registry-Bv5o37_w.js';
3
5
 
4
- /** JSON-schema-like object for MCP tool `inputSchema` / `outputSchema`. */
6
+ /** JSON-schema-like object for MCP tool `inputSchema` / `outputSchema` (derived from Zod). */
5
7
  type McpSchemaProperty = {
6
8
  type: string;
7
9
  description?: string;
@@ -20,30 +22,51 @@ type McpToolHandler = {
20
22
  /** Named export to invoke */
21
23
  exportName: string;
22
24
  };
23
- type McpToolDefinition = {
24
- /** Stable MCP tool name (snake_case). */
25
+ /**
26
+ * MCP tool definition. **Zod schemas are the source of truth** for types and runtime validation;
27
+ * `inputSchema` / `outputSchema` are JSON Schema snapshots for MCP server registration.
28
+ */
29
+ type McpToolDefinition<TInput = unknown, TOutput = unknown> = {
25
30
  name: string;
26
- /** Registry action id, e.g. uniswap-v4.quote */
27
31
  actionId: string;
28
32
  protocolId: string;
29
33
  chainCategory: ChainCategory;
30
- /** Long description for the LLM — what it does, when to use it, what it does NOT do. */
31
34
  description: string;
32
- /** Prerequisites (other tools or data that must exist first). */
33
35
  prerequisites: string[];
34
- /** Typical next tools after this one succeeds. */
35
36
  followUp: string[];
37
+ inputZod: z.ZodType<TInput>;
38
+ outputZod: z.ZodType<TOutput>;
36
39
  inputSchema: McpJsonSchema;
37
40
  outputSchema: McpJsonSchema;
38
41
  handler: McpToolHandler;
42
+ parseInput: (data: unknown) => TInput;
43
+ parseOutput: (data: unknown) => TOutput;
44
+ };
45
+
46
+ declare const MCP_TOOL_DEFINITIONS: readonly McpToolDefinition[];
47
+ /** Map tool name → input Zod schema (for typed dispatch in MCP servers). */
48
+ declare const MCP_TOOL_INPUT_SCHEMAS: Record<string, z.ZodType<any, z.ZodTypeDef, any>>;
49
+ /** Map tool name → output Zod schema. */
50
+ declare const MCP_TOOL_OUTPUT_SCHEMAS: Record<string, z.ZodType<any, z.ZodTypeDef, any>>;
51
+ /** Union of registered MCP tool names. */
52
+ type McpToolName = (typeof MCP_TOOL_DEFINITIONS)[number]['name'];
53
+ type McpToolInputMap = {
54
+ [K in McpToolName]: z.infer<(typeof MCP_TOOL_INPUT_SCHEMAS)[K]>;
55
+ };
56
+ type McpToolOutputMap = {
57
+ [K in McpToolName]: z.infer<(typeof MCP_TOOL_OUTPUT_SCHEMAS)[K]>;
39
58
  };
40
- /** Curated MCP tools with rich descriptions — use this to register MCP server tools. */
41
- declare const MCP_TOOL_DEFINITIONS: McpToolDefinition[];
42
59
  declare function getMcpToolDefinitions(): readonly McpToolDefinition[];
43
60
  declare function getMcpToolByName(name: string): McpToolDefinition | undefined;
61
+ declare function getMcpToolInputSchema(name: McpToolName): z.ZodType;
62
+ declare function getMcpToolOutputSchema(name: McpToolName): z.ZodType;
63
+ /** Parse and validate MCP tool arguments with the registered Zod schema. */
64
+ declare function parseMcpToolInput(name: McpToolName, data: unknown): unknown;
65
+ /** Parse and validate MCP tool handler output. */
66
+ declare function parseMcpToolOutput(name: McpToolName, data: unknown): unknown;
44
67
  /** Summary from protocol registry (shorter) plus full MCP tool list. */
45
68
  declare function getAgentCatalogForMcp(): {
46
- tools: McpToolDefinition[];
69
+ tools: readonly McpToolDefinition[];
47
70
  protocols: readonly ProtocolModule[];
48
71
  commonParams: Record<string, ParamDoc>;
49
72
  multisignOutput: {
@@ -60,7 +83,14 @@ declare function getAgentCatalogForMcp(): {
60
83
  };
61
84
  };
62
85
  managementSig: {
63
- readonly description: "Management POST bodies embed NodeMgtKeySig: { nonce, clientSig, nodeKey }. Sign JSON with clientSig cleared; POST with clientSig set to the Ed25519 128-hex or EIP-191 signature. Legacy Nonce/Sig/sig field names are not accepted.";
86
+ readonly description: "Management POST bodies embed NodeMgtKeySig: { nonce, clientSig, nodeKey }. Sign JSON with clientSig cleared via messageToSignManagementBody; POST with withManagementClientSig(body, sig). Do not put signedMessage in the JSON body for standard management routes. Legacy Nonce/Sig/sig field names are not accepted.";
87
+ readonly exceptions: {
88
+ readonly configUpdateImplement: "POST /configUpdateImplement: include nodeKey + plannedYaml + signedMessage (opaque configUpdateImplement|<sha256> line). Sign the opaque line bytes, not the JSON body.";
89
+ readonly postMSQTTKey: "POST /postMSQTTKey: include nodeKey + caCertPem + clientSig. Sign caCertPem PEM bytes directly (use buildPostMqttKeyBody).";
90
+ readonly addManagementKey: "POST /addManagementKey / removeManagementKey (EIP-191): may still use signedMessage equal to the canonical JSON string for dual-mode Ethereum signing.";
91
+ readonly agentLlmConfig: "POST /agentLlmConfig / agentLlmApiKey: sign canonical JSON with action + clientSig cleared; POST body has nonce, clientSig, nodeKey, endpoint fields — no signedMessage field.";
92
+ readonly multiSignRequest: "POST /multiSignRequest (client key, not management): POST { ...bodyForSign, clientSig, signedMessage: messageToSign }.";
93
+ };
64
94
  readonly fields: {
65
95
  readonly nonce: {
66
96
  readonly type: "number";
@@ -78,18 +108,109 @@ declare function getAgentCatalogForMcp(): {
78
108
  readonly helpers: {
79
109
  readonly managementSigFields: "Base envelope with clientSig cleared.";
80
110
  readonly buildManagementPostBody: "Spread managementSigFields then endpoint fields.";
111
+ readonly buildPostMqttKeyBody: "POST /postMSQTTKey unsigned body (sign PEM directly).";
112
+ readonly buildPostPreferredKeyGenBody: "POST /postPreferredKeyGen unsigned body.";
113
+ readonly buildConfigUpdateImplementPostBody: "POST /configUpdateImplement with opaque signedMessage line.";
114
+ readonly buildSignRequestAgreeUnsignedBody: "POST /signRequestAgree unsigned body with nodeKey.";
81
115
  readonly messageToSignManagementBody: "Canonical JSON string to sign.";
82
116
  readonly withManagementClientSig: "Attach signature to POST body.";
83
117
  readonly fetchNodeKey: "GET /getNodeKey via nodeFetchWithReadAuth.";
84
118
  readonly fetchManagementNonce: "GET nonce for Ed25519 or Ethereum management key.";
119
+ readonly fetchPreferredKeyGen: "GET /getPreferredKeyGen for agent default KeyGen.";
85
120
  };
86
121
  };
122
+ /** Zod schemas for MCP tool I/O — source of truth for continuum-mcp-server validation. */
123
+ inputSchemas: Record<string, z.ZodType<any, z.ZodTypeDef, any>>;
124
+ outputSchemas: Record<string, z.ZodType<any, z.ZodTypeDef, any>>;
87
125
  workflow: {
88
126
  evmSwapTypical: string[];
89
127
  managementPostTypical: string[];
128
+ agentMultisignTypical: string[];
90
129
  };
91
130
  };
92
131
 
132
+ declare function getToolsForProtocol(protocolId: string): readonly McpToolDefinition[];
133
+ declare function getProtocolSkill(protocolId: string): string | undefined;
134
+ declare function listProtocolsWithSkills(): string[];
135
+ /** Protocol metadata for MCP discovery (chains from advisor; actions from registry). */
136
+ declare function getProtocolDiscoverySummary(protocolId: string): {
137
+ protocolId: string;
138
+ chainCategory: ChainCategory;
139
+ actions: {
140
+ id: string;
141
+ description: string;
142
+ }[];
143
+ tools: {
144
+ name: string;
145
+ actionId: string;
146
+ description: string;
147
+ prerequisites: string[];
148
+ followUp: string[];
149
+ }[];
150
+ } | undefined;
151
+
152
+ /** How protocol token allowlists are resolved (UI parity). */
153
+ type TokenFilterKind = 'any_erc20_on_chain' | 'api_underlyings' | 'pool_graph' | 'subgraph_vaults' | 'fixed_addresses' | 'minting_contract' | 'mainnet_only';
154
+ type SupportedTokenRow = {
155
+ address: string;
156
+ symbol?: string;
157
+ name?: string;
158
+ roles?: string[];
159
+ };
160
+ type ProtocolSupportAdvisor = {
161
+ protocolId: string;
162
+ tokenFilter: TokenFilterKind;
163
+ supportedChainIds(): Promise<number[]>;
164
+ supportedTokens(chainId: number, ctx?: {
165
+ rpcUrl?: string;
166
+ }): Promise<{
167
+ tokens: SupportedTokenRow[];
168
+ nativeWrapped?: string;
169
+ notes?: string;
170
+ }>;
171
+ isTokenSupported?(chainId: number, address: string, ctx?: {
172
+ rpcUrl?: string;
173
+ }): Promise<boolean>;
174
+ };
175
+
176
+ declare const PROTOCOL_SUPPORT_ADVISORS: Record<string, ProtocolSupportAdvisor>;
177
+ declare function getProtocolSupportAdvisor(protocolId: string): ProtocolSupportAdvisor | undefined;
178
+ declare function listProtocolSupportAdvisorIds(): string[];
179
+
180
+ /** Shared MCP-server inputs enriched from continuum-node-sdk (keyGenId + chain registry). */
181
+ declare const mcpServerCommonInputSchema: z.ZodObject<{
182
+ keyGenId: z.ZodString;
183
+ chainId: z.ZodNumber;
184
+ purposeText: z.ZodString;
185
+ useCustomGas: z.ZodOptional<z.ZodBoolean>;
186
+ }, "strip", z.ZodTypeAny, {
187
+ purposeText: string;
188
+ chainId: number;
189
+ keyGenId: string;
190
+ useCustomGas?: boolean | undefined;
191
+ }, {
192
+ purposeText: string;
193
+ chainId: number;
194
+ keyGenId: string;
195
+ useCustomGas?: boolean | undefined;
196
+ }>;
197
+ declare function mcpServerMultisignInput(fields: z.ZodRawShape): z.ZodObject<{} & {
198
+ [x: string]: z.ZodTypeAny;
199
+ }, "strip", z.ZodTypeAny, {
200
+ [x: string]: any;
201
+ }, {
202
+ [x: string]: any;
203
+ }>;
204
+ declare const mcpServerSubmitOutputSchema: z.ZodObject<{
205
+ requestId: z.ZodString;
206
+ }, "strip", z.ZodTypeAny, {
207
+ requestId: string;
208
+ }, {
209
+ requestId: string;
210
+ }>;
211
+ /** Tools that only build calldata / quotes — no submit. */
212
+ declare const MCP_NON_SUBMIT_TOOL_NAMES: Set<string>;
213
+
93
214
  /** Shared inputs documented once for all EVM multisign builders. */
94
215
  declare const EVM_COMMON_PARAM_DOCS: Record<string, ParamDoc>;
95
216
  declare const MULTISIGN_OUTPUT_DOC: {
@@ -107,7 +228,14 @@ declare const MULTISIGN_OUTPUT_DOC: {
107
228
  };
108
229
  /** mpc-auth NodeMgtKeySig envelope for management POST routes (Get Sig, shelve, keyGen, groups, …). */
109
230
  declare const MANAGEMENT_SIG_DOC: {
110
- readonly description: "Management POST bodies embed NodeMgtKeySig: { nonce, clientSig, nodeKey }. Sign JSON with clientSig cleared; POST with clientSig set to the Ed25519 128-hex or EIP-191 signature. Legacy Nonce/Sig/sig field names are not accepted.";
231
+ readonly description: "Management POST bodies embed NodeMgtKeySig: { nonce, clientSig, nodeKey }. Sign JSON with clientSig cleared via messageToSignManagementBody; POST with withManagementClientSig(body, sig). Do not put signedMessage in the JSON body for standard management routes. Legacy Nonce/Sig/sig field names are not accepted.";
232
+ readonly exceptions: {
233
+ readonly configUpdateImplement: "POST /configUpdateImplement: include nodeKey + plannedYaml + signedMessage (opaque configUpdateImplement|<sha256> line). Sign the opaque line bytes, not the JSON body.";
234
+ readonly postMSQTTKey: "POST /postMSQTTKey: include nodeKey + caCertPem + clientSig. Sign caCertPem PEM bytes directly (use buildPostMqttKeyBody).";
235
+ readonly addManagementKey: "POST /addManagementKey / removeManagementKey (EIP-191): may still use signedMessage equal to the canonical JSON string for dual-mode Ethereum signing.";
236
+ readonly agentLlmConfig: "POST /agentLlmConfig / agentLlmApiKey: sign canonical JSON with action + clientSig cleared; POST body has nonce, clientSig, nodeKey, endpoint fields — no signedMessage field.";
237
+ readonly multiSignRequest: "POST /multiSignRequest (client key, not management): POST { ...bodyForSign, clientSig, signedMessage: messageToSign }.";
238
+ };
111
239
  readonly fields: {
112
240
  readonly nonce: {
113
241
  readonly type: "number";
@@ -125,13 +253,728 @@ declare const MANAGEMENT_SIG_DOC: {
125
253
  readonly helpers: {
126
254
  readonly managementSigFields: "Base envelope with clientSig cleared.";
127
255
  readonly buildManagementPostBody: "Spread managementSigFields then endpoint fields.";
256
+ readonly buildPostMqttKeyBody: "POST /postMSQTTKey unsigned body (sign PEM directly).";
257
+ readonly buildPostPreferredKeyGenBody: "POST /postPreferredKeyGen unsigned body.";
258
+ readonly buildConfigUpdateImplementPostBody: "POST /configUpdateImplement with opaque signedMessage line.";
259
+ readonly buildSignRequestAgreeUnsignedBody: "POST /signRequestAgree unsigned body with nodeKey.";
128
260
  readonly messageToSignManagementBody: "Canonical JSON string to sign.";
129
261
  readonly withManagementClientSig: "Attach signature to POST body.";
130
262
  readonly fetchNodeKey: "GET /getNodeKey via nodeFetchWithReadAuth.";
131
263
  readonly fetchManagementNonce: "GET nonce for Ed25519 or Ethereum management key.";
264
+ readonly fetchPreferredKeyGen: "GET /getPreferredKeyGen for agent default KeyGen.";
132
265
  };
133
266
  };
134
267
 
268
+ /**
269
+ * Convert a Zod schema to MCP-compatible JSON Schema (`inputSchema` / `outputSchema`).
270
+ * Zod is the source of truth; JSON Schema is derived for MCP server registration only.
271
+ */
272
+ declare function zodSchemaToMcpJsonSchema(schema: z.ZodType): McpJsonSchema;
273
+
274
+ /** EVM address (0x + 40 hex). Handlers may normalize via viem `getAddress`. */
275
+ declare const evmAddressSchema: z.ZodString;
276
+ /** MPC key slice for POST /multiSignRequest (pubKey, keyList). */
277
+ declare const keyGenSchema: z.ZodObject<{
278
+ pubkeyhex: z.ZodString;
279
+ keylist: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
280
+ ClientKeys: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
281
+ }, "strip", z.ZodTypeAny, {
282
+ pubkeyhex: string;
283
+ keylist?: string[] | undefined;
284
+ ClientKeys?: Record<string, string> | undefined;
285
+ }, {
286
+ pubkeyhex: string;
287
+ keylist?: string[] | undefined;
288
+ ClientKeys?: Record<string, string> | undefined;
289
+ }>;
290
+ /** Chain gas config row from GET /getChainDetails (subset). */
291
+ declare const chainDetailSchema: z.ZodObject<{
292
+ legacy: z.ZodOptional<z.ZodBoolean>;
293
+ gasLimit: z.ZodOptional<z.ZodNumber>;
294
+ gasMultiplier: z.ZodOptional<z.ZodNumber>;
295
+ gasPrice: z.ZodOptional<z.ZodNumber>;
296
+ baseFee: z.ZodOptional<z.ZodNumber>;
297
+ priorityFee: z.ZodOptional<z.ZodNumber>;
298
+ baseFeeMultiplier: z.ZodOptional<z.ZodNumber>;
299
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
300
+ legacy: z.ZodOptional<z.ZodBoolean>;
301
+ gasLimit: z.ZodOptional<z.ZodNumber>;
302
+ gasMultiplier: z.ZodOptional<z.ZodNumber>;
303
+ gasPrice: z.ZodOptional<z.ZodNumber>;
304
+ baseFee: z.ZodOptional<z.ZodNumber>;
305
+ priorityFee: z.ZodOptional<z.ZodNumber>;
306
+ baseFeeMultiplier: z.ZodOptional<z.ZodNumber>;
307
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
308
+ legacy: z.ZodOptional<z.ZodBoolean>;
309
+ gasLimit: z.ZodOptional<z.ZodNumber>;
310
+ gasMultiplier: z.ZodOptional<z.ZodNumber>;
311
+ gasPrice: z.ZodOptional<z.ZodNumber>;
312
+ baseFee: z.ZodOptional<z.ZodNumber>;
313
+ priorityFee: z.ZodOptional<z.ZodNumber>;
314
+ baseFeeMultiplier: z.ZodOptional<z.ZodNumber>;
315
+ }, z.ZodTypeAny, "passthrough">>;
316
+ /** Shared inputs for all EVM multisign MCP tools. */
317
+ declare const evmMultisignCommonInputSchema: z.ZodObject<{
318
+ keyGen: z.ZodObject<{
319
+ pubkeyhex: z.ZodString;
320
+ keylist: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
321
+ ClientKeys: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
322
+ }, "strip", z.ZodTypeAny, {
323
+ pubkeyhex: string;
324
+ keylist?: string[] | undefined;
325
+ ClientKeys?: Record<string, string> | undefined;
326
+ }, {
327
+ pubkeyhex: string;
328
+ keylist?: string[] | undefined;
329
+ ClientKeys?: Record<string, string> | undefined;
330
+ }>;
331
+ purposeText: z.ZodString;
332
+ useCustomGas: z.ZodBoolean;
333
+ chainId: z.ZodNumber;
334
+ rpcUrl: z.ZodString;
335
+ executorAddress: z.ZodString;
336
+ chainDetail: z.ZodObject<{
337
+ legacy: z.ZodOptional<z.ZodBoolean>;
338
+ gasLimit: z.ZodOptional<z.ZodNumber>;
339
+ gasMultiplier: z.ZodOptional<z.ZodNumber>;
340
+ gasPrice: z.ZodOptional<z.ZodNumber>;
341
+ baseFee: z.ZodOptional<z.ZodNumber>;
342
+ priorityFee: z.ZodOptional<z.ZodNumber>;
343
+ baseFeeMultiplier: z.ZodOptional<z.ZodNumber>;
344
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
345
+ legacy: z.ZodOptional<z.ZodBoolean>;
346
+ gasLimit: z.ZodOptional<z.ZodNumber>;
347
+ gasMultiplier: z.ZodOptional<z.ZodNumber>;
348
+ gasPrice: z.ZodOptional<z.ZodNumber>;
349
+ baseFee: z.ZodOptional<z.ZodNumber>;
350
+ priorityFee: z.ZodOptional<z.ZodNumber>;
351
+ baseFeeMultiplier: z.ZodOptional<z.ZodNumber>;
352
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
353
+ legacy: z.ZodOptional<z.ZodBoolean>;
354
+ gasLimit: z.ZodOptional<z.ZodNumber>;
355
+ gasMultiplier: z.ZodOptional<z.ZodNumber>;
356
+ gasPrice: z.ZodOptional<z.ZodNumber>;
357
+ baseFee: z.ZodOptional<z.ZodNumber>;
358
+ priorityFee: z.ZodOptional<z.ZodNumber>;
359
+ baseFeeMultiplier: z.ZodOptional<z.ZodNumber>;
360
+ }, z.ZodTypeAny, "passthrough">>;
361
+ customGasChainDetails: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
362
+ }, "strip", z.ZodTypeAny, {
363
+ keyGen: {
364
+ pubkeyhex: string;
365
+ keylist?: string[] | undefined;
366
+ ClientKeys?: Record<string, string> | undefined;
367
+ };
368
+ purposeText: string;
369
+ useCustomGas: boolean;
370
+ chainId: number;
371
+ rpcUrl: string;
372
+ executorAddress: string;
373
+ chainDetail: {
374
+ legacy?: boolean | undefined;
375
+ gasPrice?: number | undefined;
376
+ gasLimit?: number | undefined;
377
+ gasMultiplier?: number | undefined;
378
+ baseFee?: number | undefined;
379
+ priorityFee?: number | undefined;
380
+ baseFeeMultiplier?: number | undefined;
381
+ } & {
382
+ [k: string]: unknown;
383
+ };
384
+ customGasChainDetails?: Record<string, unknown> | undefined;
385
+ }, {
386
+ keyGen: {
387
+ pubkeyhex: string;
388
+ keylist?: string[] | undefined;
389
+ ClientKeys?: Record<string, string> | undefined;
390
+ };
391
+ purposeText: string;
392
+ useCustomGas: boolean;
393
+ chainId: number;
394
+ rpcUrl: string;
395
+ executorAddress: string;
396
+ chainDetail: {
397
+ legacy?: boolean | undefined;
398
+ gasPrice?: number | undefined;
399
+ gasLimit?: number | undefined;
400
+ gasMultiplier?: number | undefined;
401
+ baseFee?: number | undefined;
402
+ priorityFee?: number | undefined;
403
+ baseFeeMultiplier?: number | undefined;
404
+ } & {
405
+ [k: string]: unknown;
406
+ };
407
+ customGasChainDetails?: Record<string, unknown> | undefined;
408
+ }>;
409
+ /** Standard output of all `build_*_multisign` MCP tools. */
410
+ declare const multisignOutputSchema: z.ZodObject<{
411
+ bodyForSign: z.ZodRecord<z.ZodString, z.ZodUnknown>;
412
+ messageToSign: z.ZodString;
413
+ }, "strip", z.ZodTypeAny, {
414
+ bodyForSign: Record<string, unknown>;
415
+ messageToSign: string;
416
+ }, {
417
+ bodyForSign: Record<string, unknown>;
418
+ messageToSign: string;
419
+ }>;
420
+ /** Loose JSON object for protocol API responses passed between MCP tools. */
421
+ declare const jsonObjectSchema: z.ZodRecord<z.ZodString, z.ZodUnknown>;
422
+ type EvmMultisignCommonInput = z.infer<typeof evmMultisignCommonInputSchema>;
423
+ type MultisignOutput = z.infer<typeof multisignOutputSchema>;
424
+ type KeyGenMcpInput = z.infer<typeof keyGenSchema>;
425
+ type ChainDetailMcpInput = z.infer<typeof chainDetailSchema>;
426
+
427
+ declare const uniswapQuoteTradeTypeSchema: z.ZodEnum<["EXACT_INPUT", "EXACT_OUTPUT"]>;
428
+ /** Input for MCP tool `ctm_uniswap_v4_quote` → handler `uniswapTradeQuote`. */
429
+ declare const mcpUniswapV4QuoteInputSchema: z.ZodObject<{
430
+ type: z.ZodEnum<["EXACT_INPUT", "EXACT_OUTPUT"]>;
431
+ amount: z.ZodString;
432
+ tokenIn: z.ZodString;
433
+ tokenOut: z.ZodString;
434
+ chainId: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
435
+ uniswapApiKey: z.ZodString;
436
+ swapper: z.ZodOptional<z.ZodString>;
437
+ slippage: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
438
+ keyGen: z.ZodOptional<z.ZodString>;
439
+ managementNodeUrl: z.ZodOptional<z.ZodString>;
440
+ tokenInChainId: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
441
+ tokenOutChainId: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
442
+ permit2Disabled: z.ZodOptional<z.ZodBoolean>;
443
+ baseUrl: z.ZodOptional<z.ZodString>;
444
+ universalRouterVersion: z.ZodOptional<z.ZodString>;
445
+ }, "strip", z.ZodTypeAny, {
446
+ chainId: string | number;
447
+ amount: string;
448
+ tokenIn: string;
449
+ tokenOut: string;
450
+ uniswapApiKey: string;
451
+ type: "EXACT_INPUT" | "EXACT_OUTPUT";
452
+ keyGen?: string | undefined;
453
+ tokenInChainId?: string | number | undefined;
454
+ tokenOutChainId?: string | number | undefined;
455
+ slippage?: string | number | undefined;
456
+ permit2Disabled?: boolean | undefined;
457
+ swapper?: string | undefined;
458
+ managementNodeUrl?: string | undefined;
459
+ baseUrl?: string | undefined;
460
+ universalRouterVersion?: string | undefined;
461
+ }, {
462
+ chainId: string | number;
463
+ amount: string;
464
+ tokenIn: string;
465
+ tokenOut: string;
466
+ uniswapApiKey: string;
467
+ type: "EXACT_INPUT" | "EXACT_OUTPUT";
468
+ keyGen?: string | undefined;
469
+ tokenInChainId?: string | number | undefined;
470
+ tokenOutChainId?: string | number | undefined;
471
+ slippage?: string | number | undefined;
472
+ permit2Disabled?: boolean | undefined;
473
+ swapper?: string | undefined;
474
+ managementNodeUrl?: string | undefined;
475
+ baseUrl?: string | undefined;
476
+ universalRouterVersion?: string | undefined;
477
+ }>;
478
+ /** Output: full Uniswap POST /quote JSON (dynamic shape from Trade API). */
479
+ declare const mcpUniswapV4QuoteOutputSchema: z.ZodRecord<z.ZodString, z.ZodUnknown>;
480
+ /** Input for MCP tool `ctm_uniswap_v4_create_swap` → handler `uniswapCreateSwap`. */
481
+ declare const mcpUniswapV4CreateSwapInputSchema: z.ZodObject<{
482
+ uniswapApiKey: z.ZodString;
483
+ fullQuoteFromPermit: z.ZodRecord<z.ZodString, z.ZodUnknown>;
484
+ swapTransactionDeadlineUnix: z.ZodOptional<z.ZodNumber>;
485
+ useServerProxy: z.ZodOptional<z.ZodBoolean>;
486
+ baseUrl: z.ZodOptional<z.ZodString>;
487
+ universalRouterVersion: z.ZodOptional<z.ZodString>;
488
+ }, "strip", z.ZodTypeAny, {
489
+ uniswapApiKey: string;
490
+ fullQuoteFromPermit: Record<string, unknown>;
491
+ baseUrl?: string | undefined;
492
+ universalRouterVersion?: string | undefined;
493
+ useServerProxy?: boolean | undefined;
494
+ swapTransactionDeadlineUnix?: number | undefined;
495
+ }, {
496
+ uniswapApiKey: string;
497
+ fullQuoteFromPermit: Record<string, unknown>;
498
+ baseUrl?: string | undefined;
499
+ universalRouterVersion?: string | undefined;
500
+ useServerProxy?: boolean | undefined;
501
+ swapTransactionDeadlineUnix?: number | undefined;
502
+ }>;
503
+ declare const mcpUniswapV4CreateSwapOutputSchema: z.ZodObject<{
504
+ swap: z.ZodRecord<z.ZodString, z.ZodUnknown>;
505
+ requestId: z.ZodOptional<z.ZodString>;
506
+ gasFee: z.ZodOptional<z.ZodString>;
507
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
508
+ swap: z.ZodRecord<z.ZodString, z.ZodUnknown>;
509
+ requestId: z.ZodOptional<z.ZodString>;
510
+ gasFee: z.ZodOptional<z.ZodString>;
511
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
512
+ swap: z.ZodRecord<z.ZodString, z.ZodUnknown>;
513
+ requestId: z.ZodOptional<z.ZodString>;
514
+ gasFee: z.ZodOptional<z.ZodString>;
515
+ }, z.ZodTypeAny, "passthrough">>;
516
+ /** Input for MCP tool `ctm_uniswap_v4_build_swap_multisign`. */
517
+ declare const mcpUniswapV4BuildSwapMultisignInputSchema: z.ZodObject<{
518
+ keyGen: z.ZodObject<{
519
+ pubkeyhex: z.ZodString;
520
+ keylist: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
521
+ ClientKeys: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
522
+ }, "strip", z.ZodTypeAny, {
523
+ pubkeyhex: string;
524
+ keylist?: string[] | undefined;
525
+ ClientKeys?: Record<string, string> | undefined;
526
+ }, {
527
+ pubkeyhex: string;
528
+ keylist?: string[] | undefined;
529
+ ClientKeys?: Record<string, string> | undefined;
530
+ }>;
531
+ purposeText: z.ZodString;
532
+ useCustomGas: z.ZodBoolean;
533
+ chainId: z.ZodNumber;
534
+ rpcUrl: z.ZodString;
535
+ executorAddress: z.ZodString;
536
+ chainDetail: z.ZodObject<{
537
+ legacy: z.ZodOptional<z.ZodBoolean>;
538
+ gasLimit: z.ZodOptional<z.ZodNumber>;
539
+ gasMultiplier: z.ZodOptional<z.ZodNumber>;
540
+ gasPrice: z.ZodOptional<z.ZodNumber>;
541
+ baseFee: z.ZodOptional<z.ZodNumber>;
542
+ priorityFee: z.ZodOptional<z.ZodNumber>;
543
+ baseFeeMultiplier: z.ZodOptional<z.ZodNumber>;
544
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
545
+ legacy: z.ZodOptional<z.ZodBoolean>;
546
+ gasLimit: z.ZodOptional<z.ZodNumber>;
547
+ gasMultiplier: z.ZodOptional<z.ZodNumber>;
548
+ gasPrice: z.ZodOptional<z.ZodNumber>;
549
+ baseFee: z.ZodOptional<z.ZodNumber>;
550
+ priorityFee: z.ZodOptional<z.ZodNumber>;
551
+ baseFeeMultiplier: z.ZodOptional<z.ZodNumber>;
552
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
553
+ legacy: z.ZodOptional<z.ZodBoolean>;
554
+ gasLimit: z.ZodOptional<z.ZodNumber>;
555
+ gasMultiplier: z.ZodOptional<z.ZodNumber>;
556
+ gasPrice: z.ZodOptional<z.ZodNumber>;
557
+ baseFee: z.ZodOptional<z.ZodNumber>;
558
+ priorityFee: z.ZodOptional<z.ZodNumber>;
559
+ baseFeeMultiplier: z.ZodOptional<z.ZodNumber>;
560
+ }, z.ZodTypeAny, "passthrough">>;
561
+ customGasChainDetails: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
562
+ } & {
563
+ tokenIn: z.ZodString;
564
+ swap: z.ZodRecord<z.ZodString, z.ZodUnknown>;
565
+ createSwapResponse: z.ZodObject<{
566
+ swap: z.ZodRecord<z.ZodString, z.ZodUnknown>;
567
+ requestId: z.ZodOptional<z.ZodString>;
568
+ gasFee: z.ZodOptional<z.ZodString>;
569
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
570
+ swap: z.ZodRecord<z.ZodString, z.ZodUnknown>;
571
+ requestId: z.ZodOptional<z.ZodString>;
572
+ gasFee: z.ZodOptional<z.ZodString>;
573
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
574
+ swap: z.ZodRecord<z.ZodString, z.ZodUnknown>;
575
+ requestId: z.ZodOptional<z.ZodString>;
576
+ gasFee: z.ZodOptional<z.ZodString>;
577
+ }, z.ZodTypeAny, "passthrough">>;
578
+ fullQuoteSnapshot: z.ZodRecord<z.ZodString, z.ZodUnknown>;
579
+ swapDeadlineUnix: z.ZodNumber;
580
+ slippagePercent: z.ZodOptional<z.ZodNumber>;
581
+ }, "strip", z.ZodTypeAny, {
582
+ keyGen: {
583
+ pubkeyhex: string;
584
+ keylist?: string[] | undefined;
585
+ ClientKeys?: Record<string, string> | undefined;
586
+ };
587
+ purposeText: string;
588
+ useCustomGas: boolean;
589
+ chainId: number;
590
+ tokenIn: string;
591
+ rpcUrl: string;
592
+ executorAddress: string;
593
+ chainDetail: {
594
+ legacy?: boolean | undefined;
595
+ gasPrice?: number | undefined;
596
+ gasLimit?: number | undefined;
597
+ gasMultiplier?: number | undefined;
598
+ baseFee?: number | undefined;
599
+ priorityFee?: number | undefined;
600
+ baseFeeMultiplier?: number | undefined;
601
+ } & {
602
+ [k: string]: unknown;
603
+ };
604
+ swap: Record<string, unknown>;
605
+ createSwapResponse: {
606
+ swap: Record<string, unknown>;
607
+ requestId?: string | undefined;
608
+ gasFee?: string | undefined;
609
+ } & {
610
+ [k: string]: unknown;
611
+ };
612
+ fullQuoteSnapshot: Record<string, unknown>;
613
+ swapDeadlineUnix: number;
614
+ customGasChainDetails?: Record<string, unknown> | undefined;
615
+ slippagePercent?: number | undefined;
616
+ }, {
617
+ keyGen: {
618
+ pubkeyhex: string;
619
+ keylist?: string[] | undefined;
620
+ ClientKeys?: Record<string, string> | undefined;
621
+ };
622
+ purposeText: string;
623
+ useCustomGas: boolean;
624
+ chainId: number;
625
+ tokenIn: string;
626
+ rpcUrl: string;
627
+ executorAddress: string;
628
+ chainDetail: {
629
+ legacy?: boolean | undefined;
630
+ gasPrice?: number | undefined;
631
+ gasLimit?: number | undefined;
632
+ gasMultiplier?: number | undefined;
633
+ baseFee?: number | undefined;
634
+ priorityFee?: number | undefined;
635
+ baseFeeMultiplier?: number | undefined;
636
+ } & {
637
+ [k: string]: unknown;
638
+ };
639
+ swap: Record<string, unknown>;
640
+ createSwapResponse: {
641
+ swap: Record<string, unknown>;
642
+ requestId?: string | undefined;
643
+ gasFee?: string | undefined;
644
+ } & {
645
+ [k: string]: unknown;
646
+ };
647
+ fullQuoteSnapshot: Record<string, unknown>;
648
+ swapDeadlineUnix: number;
649
+ customGasChainDetails?: Record<string, unknown> | undefined;
650
+ slippagePercent?: number | undefined;
651
+ }>;
652
+ type McpUniswapV4QuoteInput = z.infer<typeof mcpUniswapV4QuoteInputSchema>;
653
+ type McpUniswapV4QuoteOutput = z.infer<typeof mcpUniswapV4QuoteOutputSchema>;
654
+ type McpUniswapV4CreateSwapInput = z.infer<typeof mcpUniswapV4CreateSwapInputSchema>;
655
+ type McpUniswapV4CreateSwapOutput = z.infer<typeof mcpUniswapV4CreateSwapOutputSchema>;
656
+ type McpUniswapV4BuildSwapMultisignInput = z.infer<typeof mcpUniswapV4BuildSwapMultisignInputSchema>;
657
+
658
+ /** Input for MCP tool `ctm_curve_dao_build_swap_multisign`. */
659
+ declare const mcpCurveDaoBuildSwapMultisignInputSchema: z.ZodObject<{
660
+ keyGen: z.ZodObject<{
661
+ pubkeyhex: z.ZodString;
662
+ keylist: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
663
+ ClientKeys: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
664
+ }, "strip", z.ZodTypeAny, {
665
+ pubkeyhex: string;
666
+ keylist?: string[] | undefined;
667
+ ClientKeys?: Record<string, string> | undefined;
668
+ }, {
669
+ pubkeyhex: string;
670
+ keylist?: string[] | undefined;
671
+ ClientKeys?: Record<string, string> | undefined;
672
+ }>;
673
+ purposeText: z.ZodString;
674
+ useCustomGas: z.ZodBoolean;
675
+ chainId: z.ZodNumber;
676
+ rpcUrl: z.ZodString;
677
+ executorAddress: z.ZodString;
678
+ chainDetail: z.ZodObject<{
679
+ legacy: z.ZodOptional<z.ZodBoolean>;
680
+ gasLimit: z.ZodOptional<z.ZodNumber>;
681
+ gasMultiplier: z.ZodOptional<z.ZodNumber>;
682
+ gasPrice: z.ZodOptional<z.ZodNumber>;
683
+ baseFee: z.ZodOptional<z.ZodNumber>;
684
+ priorityFee: z.ZodOptional<z.ZodNumber>;
685
+ baseFeeMultiplier: z.ZodOptional<z.ZodNumber>;
686
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
687
+ legacy: z.ZodOptional<z.ZodBoolean>;
688
+ gasLimit: z.ZodOptional<z.ZodNumber>;
689
+ gasMultiplier: z.ZodOptional<z.ZodNumber>;
690
+ gasPrice: z.ZodOptional<z.ZodNumber>;
691
+ baseFee: z.ZodOptional<z.ZodNumber>;
692
+ priorityFee: z.ZodOptional<z.ZodNumber>;
693
+ baseFeeMultiplier: z.ZodOptional<z.ZodNumber>;
694
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
695
+ legacy: z.ZodOptional<z.ZodBoolean>;
696
+ gasLimit: z.ZodOptional<z.ZodNumber>;
697
+ gasMultiplier: z.ZodOptional<z.ZodNumber>;
698
+ gasPrice: z.ZodOptional<z.ZodNumber>;
699
+ baseFee: z.ZodOptional<z.ZodNumber>;
700
+ priorityFee: z.ZodOptional<z.ZodNumber>;
701
+ baseFeeMultiplier: z.ZodOptional<z.ZodNumber>;
702
+ }, z.ZodTypeAny, "passthrough">>;
703
+ customGasChainDetails: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
704
+ } & {
705
+ tokenIn: z.ZodString;
706
+ tokenOut: z.ZodString;
707
+ amountHuman: z.ZodString;
708
+ slippagePercent: z.ZodNumber;
709
+ }, "strip", z.ZodTypeAny, {
710
+ keyGen: {
711
+ pubkeyhex: string;
712
+ keylist?: string[] | undefined;
713
+ ClientKeys?: Record<string, string> | undefined;
714
+ };
715
+ purposeText: string;
716
+ useCustomGas: boolean;
717
+ chainId: number;
718
+ tokenIn: string;
719
+ tokenOut: string;
720
+ rpcUrl: string;
721
+ executorAddress: string;
722
+ chainDetail: {
723
+ legacy?: boolean | undefined;
724
+ gasPrice?: number | undefined;
725
+ gasLimit?: number | undefined;
726
+ gasMultiplier?: number | undefined;
727
+ baseFee?: number | undefined;
728
+ priorityFee?: number | undefined;
729
+ baseFeeMultiplier?: number | undefined;
730
+ } & {
731
+ [k: string]: unknown;
732
+ };
733
+ slippagePercent: number;
734
+ amountHuman: string;
735
+ customGasChainDetails?: Record<string, unknown> | undefined;
736
+ }, {
737
+ keyGen: {
738
+ pubkeyhex: string;
739
+ keylist?: string[] | undefined;
740
+ ClientKeys?: Record<string, string> | undefined;
741
+ };
742
+ purposeText: string;
743
+ useCustomGas: boolean;
744
+ chainId: number;
745
+ tokenIn: string;
746
+ tokenOut: string;
747
+ rpcUrl: string;
748
+ executorAddress: string;
749
+ chainDetail: {
750
+ legacy?: boolean | undefined;
751
+ gasPrice?: number | undefined;
752
+ gasLimit?: number | undefined;
753
+ gasMultiplier?: number | undefined;
754
+ baseFee?: number | undefined;
755
+ priorityFee?: number | undefined;
756
+ baseFeeMultiplier?: number | undefined;
757
+ } & {
758
+ [k: string]: unknown;
759
+ };
760
+ slippagePercent: number;
761
+ amountHuman: string;
762
+ customGasChainDetails?: Record<string, unknown> | undefined;
763
+ }>;
764
+ type McpCurveDaoBuildSwapMultisignInput = z.infer<typeof mcpCurveDaoBuildSwapMultisignInputSchema>;
765
+
766
+ /** Extend common multisign inputs with protocol-specific fields. */
767
+ declare function mcpMultisignInput(fields: z.ZodRawShape): z.ZodObject<{} & {
768
+ [x: string]: z.ZodTypeAny;
769
+ }, "strip", z.ZodTypeAny, {
770
+ [x: string]: any;
771
+ }, {
772
+ [x: string]: any;
773
+ }>;
774
+
775
+ declare const mcpLidoSubmitInputSchema: z.ZodObject<{} & {
776
+ [x: string]: z.ZodTypeAny;
777
+ }, "strip", z.ZodTypeAny, {
778
+ [x: string]: any;
779
+ }, {
780
+ [x: string]: any;
781
+ }>;
782
+ declare const mcpLidoRequestWithdrawalsInputSchema: z.ZodObject<{} & {
783
+ [x: string]: z.ZodTypeAny;
784
+ }, "strip", z.ZodTypeAny, {
785
+ [x: string]: any;
786
+ }, {
787
+ [x: string]: any;
788
+ }>;
789
+ declare const mcpLidoClaimWithdrawalInputSchema: z.ZodObject<{} & {
790
+ [x: string]: z.ZodTypeAny;
791
+ }, "strip", z.ZodTypeAny, {
792
+ [x: string]: any;
793
+ }, {
794
+ [x: string]: any;
795
+ }>;
796
+ declare const mcpLidoWrapStEthInputSchema: z.ZodObject<{} & {
797
+ [x: string]: z.ZodTypeAny;
798
+ }, "strip", z.ZodTypeAny, {
799
+ [x: string]: any;
800
+ }, {
801
+ [x: string]: any;
802
+ }>;
803
+ declare const mcpLidoUnwrapWstEthInputSchema: z.ZodObject<{} & {
804
+ [x: string]: z.ZodTypeAny;
805
+ }, "strip", z.ZodTypeAny, {
806
+ [x: string]: any;
807
+ }, {
808
+ [x: string]: any;
809
+ }>;
810
+ declare const mcpEthenaStakeInputSchema: z.ZodObject<{} & {
811
+ [x: string]: z.ZodTypeAny;
812
+ }, "strip", z.ZodTypeAny, {
813
+ [x: string]: any;
814
+ }, {
815
+ [x: string]: any;
816
+ }>;
817
+ declare const mcpEthenaRedeemInputSchema: z.ZodObject<{} & {
818
+ [x: string]: z.ZodTypeAny;
819
+ }, "strip", z.ZodTypeAny, {
820
+ [x: string]: any;
821
+ }, {
822
+ [x: string]: any;
823
+ }>;
824
+ declare const mcpEthenaCooldownInputSchema: z.ZodObject<{} & {
825
+ [x: string]: z.ZodTypeAny;
826
+ }, "strip", z.ZodTypeAny, {
827
+ [x: string]: any;
828
+ }, {
829
+ [x: string]: any;
830
+ }>;
831
+ declare const mcpEthenaClaimInputSchema: z.ZodObject<{} & {
832
+ [x: string]: z.ZodTypeAny;
833
+ }, "strip", z.ZodTypeAny, {
834
+ [x: string]: any;
835
+ }, {
836
+ [x: string]: any;
837
+ }>;
838
+ declare const mcpMapleDepositInputSchema: z.ZodObject<{} & {
839
+ [x: string]: z.ZodTypeAny;
840
+ }, "strip", z.ZodTypeAny, {
841
+ [x: string]: any;
842
+ }, {
843
+ [x: string]: any;
844
+ }>;
845
+ declare const mcpMapleRequestRedeemInputSchema: z.ZodObject<{} & {
846
+ [x: string]: z.ZodTypeAny;
847
+ }, "strip", z.ZodTypeAny, {
848
+ [x: string]: any;
849
+ }, {
850
+ [x: string]: any;
851
+ }>;
852
+ declare const mcpSkyLockstakeStakeInputSchema: z.ZodObject<{} & {
853
+ [x: string]: z.ZodTypeAny;
854
+ }, "strip", z.ZodTypeAny, {
855
+ [x: string]: any;
856
+ }, {
857
+ [x: string]: any;
858
+ }>;
859
+ declare const mcpSkyLockstakeDrawInputSchema: z.ZodObject<{} & {
860
+ [x: string]: z.ZodTypeAny;
861
+ }, "strip", z.ZodTypeAny, {
862
+ [x: string]: any;
863
+ }, {
864
+ [x: string]: any;
865
+ }>;
866
+ declare const mcpSkyLockstakeWipeInputSchema: z.ZodObject<{} & {
867
+ [x: string]: z.ZodTypeAny;
868
+ }, "strip", z.ZodTypeAny, {
869
+ [x: string]: any;
870
+ }, {
871
+ [x: string]: any;
872
+ }>;
873
+ declare const mcpSkyLockstakeCloseInputSchema: z.ZodObject<{} & {
874
+ [x: string]: z.ZodTypeAny;
875
+ }, "strip", z.ZodTypeAny, {
876
+ [x: string]: any;
877
+ }, {
878
+ [x: string]: any;
879
+ }>;
880
+ declare const mcpSkyLockstakeGetRewardInputSchema: z.ZodObject<{} & {
881
+ [x: string]: z.ZodTypeAny;
882
+ }, "strip", z.ZodTypeAny, {
883
+ [x: string]: any;
884
+ }, {
885
+ [x: string]: any;
886
+ }>;
887
+ declare const mcpSkySusdsDepositInputSchema: z.ZodObject<{} & {
888
+ [x: string]: z.ZodTypeAny;
889
+ }, "strip", z.ZodTypeAny, {
890
+ [x: string]: any;
891
+ }, {
892
+ [x: string]: any;
893
+ }>;
894
+ declare const mcpSkySusdsRedeemInputSchema: z.ZodObject<{} & {
895
+ [x: string]: z.ZodTypeAny;
896
+ }, "strip", z.ZodTypeAny, {
897
+ [x: string]: any;
898
+ }, {
899
+ [x: string]: any;
900
+ }>;
901
+ declare const mcpAaveV4DepositInputSchema: z.ZodObject<{} & {
902
+ [x: string]: z.ZodTypeAny;
903
+ }, "strip", z.ZodTypeAny, {
904
+ [x: string]: any;
905
+ }, {
906
+ [x: string]: any;
907
+ }>;
908
+ declare const mcpAaveV4WithdrawInputSchema: z.ZodObject<{} & {
909
+ [x: string]: z.ZodTypeAny;
910
+ }, "strip", z.ZodTypeAny, {
911
+ [x: string]: any;
912
+ }, {
913
+ [x: string]: any;
914
+ }>;
915
+ declare const mcpAaveV4BorrowInputSchema: z.ZodObject<{} & {
916
+ [x: string]: z.ZodTypeAny;
917
+ }, "strip", z.ZodTypeAny, {
918
+ [x: string]: any;
919
+ }, {
920
+ [x: string]: any;
921
+ }>;
922
+ declare const mcpAaveV4RepayInputSchema: z.ZodObject<{} & {
923
+ [x: string]: z.ZodTypeAny;
924
+ }, "strip", z.ZodTypeAny, {
925
+ [x: string]: any;
926
+ }, {
927
+ [x: string]: any;
928
+ }>;
929
+ declare const mcpEulerV2IsolatedLendInputSchema: z.ZodObject<{} & {
930
+ [x: string]: z.ZodTypeAny;
931
+ }, "strip", z.ZodTypeAny, {
932
+ [x: string]: any;
933
+ }, {
934
+ [x: string]: any;
935
+ }>;
936
+ declare const mcpEulerV2IsolatedBorrowInputSchema: z.ZodObject<{} & {
937
+ [x: string]: z.ZodTypeAny;
938
+ }, "strip", z.ZodTypeAny, {
939
+ [x: string]: any;
940
+ }, {
941
+ [x: string]: any;
942
+ }>;
943
+ declare const mcpEulerV2VaultWithdrawInputSchema: z.ZodObject<{} & {
944
+ [x: string]: z.ZodTypeAny;
945
+ }, "strip", z.ZodTypeAny, {
946
+ [x: string]: any;
947
+ }, {
948
+ [x: string]: any;
949
+ }>;
950
+ declare const mcpEulerV2BorrowRepayInputSchema: z.ZodObject<{} & {
951
+ [x: string]: z.ZodTypeAny;
952
+ }, "strip", z.ZodTypeAny, {
953
+ [x: string]: any;
954
+ }, {
955
+ [x: string]: any;
956
+ }>;
957
+ declare const mcpEulerV2CollateralDepositInputSchema: z.ZodObject<{} & {
958
+ [x: string]: z.ZodTypeAny;
959
+ }, "strip", z.ZodTypeAny, {
960
+ [x: string]: any;
961
+ }, {
962
+ [x: string]: any;
963
+ }>;
964
+ declare const mcpEulerV2CollateralWithdrawInputSchema: z.ZodObject<{} & {
965
+ [x: string]: z.ZodTypeAny;
966
+ }, "strip", z.ZodTypeAny, {
967
+ [x: string]: any;
968
+ }, {
969
+ [x: string]: any;
970
+ }>;
971
+ type McpLidoSubmitInput = z.infer<typeof mcpLidoSubmitInputSchema>;
972
+ type McpEthenaStakeInput = z.infer<typeof mcpEthenaStakeInputSchema>;
973
+ type McpMapleDepositInput = z.infer<typeof mcpMapleDepositInputSchema>;
974
+ type McpSkyLockstakeStakeInput = z.infer<typeof mcpSkyLockstakeStakeInputSchema>;
975
+ type McpAaveV4DepositInput = z.infer<typeof mcpAaveV4DepositInputSchema>;
976
+ type McpEulerV2IsolatedLendInput = z.infer<typeof mcpEulerV2IsolatedLendInputSchema>;
977
+
135
978
  /** Machine-readable catalog of protocol actions grouped by chain category. */
136
979
  declare function getAgentCatalog(): {
137
980
  protocols: readonly ProtocolModule[];
@@ -142,9 +985,15 @@ declare function getAgentCatalog(): {
142
985
  };
143
986
  uniswapV4: ProtocolModule;
144
987
  curveDao: ProtocolModule;
988
+ lido: ProtocolModule;
989
+ ethena: ProtocolModule;
990
+ maple: ProtocolModule;
991
+ sky: ProtocolModule;
992
+ aaveV4: ProtocolModule;
993
+ eulerV2: ProtocolModule;
145
994
  /** Prefer getAgentCatalogForMcp() or getMcpToolDefinitions() for MCP servers. */
146
995
  mcp: {
147
- tools: McpToolDefinition[];
996
+ tools: readonly McpToolDefinition[];
148
997
  protocols: readonly ProtocolModule[];
149
998
  commonParams: Record<string, ParamDoc>;
150
999
  multisignOutput: {
@@ -161,7 +1010,14 @@ declare function getAgentCatalog(): {
161
1010
  };
162
1011
  };
163
1012
  managementSig: {
164
- readonly description: "Management POST bodies embed NodeMgtKeySig: { nonce, clientSig, nodeKey }. Sign JSON with clientSig cleared; POST with clientSig set to the Ed25519 128-hex or EIP-191 signature. Legacy Nonce/Sig/sig field names are not accepted.";
1013
+ readonly description: "Management POST bodies embed NodeMgtKeySig: { nonce, clientSig, nodeKey }. Sign JSON with clientSig cleared via messageToSignManagementBody; POST with withManagementClientSig(body, sig). Do not put signedMessage in the JSON body for standard management routes. Legacy Nonce/Sig/sig field names are not accepted.";
1014
+ readonly exceptions: {
1015
+ readonly configUpdateImplement: "POST /configUpdateImplement: include nodeKey + plannedYaml + signedMessage (opaque configUpdateImplement|<sha256> line). Sign the opaque line bytes, not the JSON body.";
1016
+ readonly postMSQTTKey: "POST /postMSQTTKey: include nodeKey + caCertPem + clientSig. Sign caCertPem PEM bytes directly (use buildPostMqttKeyBody).";
1017
+ readonly addManagementKey: "POST /addManagementKey / removeManagementKey (EIP-191): may still use signedMessage equal to the canonical JSON string for dual-mode Ethereum signing.";
1018
+ readonly agentLlmConfig: "POST /agentLlmConfig / agentLlmApiKey: sign canonical JSON with action + clientSig cleared; POST body has nonce, clientSig, nodeKey, endpoint fields — no signedMessage field.";
1019
+ readonly multiSignRequest: "POST /multiSignRequest (client key, not management): POST { ...bodyForSign, clientSig, signedMessage: messageToSign }.";
1020
+ };
165
1021
  readonly fields: {
166
1022
  readonly nonce: {
167
1023
  readonly type: "number";
@@ -179,17 +1035,25 @@ declare function getAgentCatalog(): {
179
1035
  readonly helpers: {
180
1036
  readonly managementSigFields: "Base envelope with clientSig cleared.";
181
1037
  readonly buildManagementPostBody: "Spread managementSigFields then endpoint fields.";
1038
+ readonly buildPostMqttKeyBody: "POST /postMSQTTKey unsigned body (sign PEM directly).";
1039
+ readonly buildPostPreferredKeyGenBody: "POST /postPreferredKeyGen unsigned body.";
1040
+ readonly buildConfigUpdateImplementPostBody: "POST /configUpdateImplement with opaque signedMessage line.";
1041
+ readonly buildSignRequestAgreeUnsignedBody: "POST /signRequestAgree unsigned body with nodeKey.";
182
1042
  readonly messageToSignManagementBody: "Canonical JSON string to sign.";
183
1043
  readonly withManagementClientSig: "Attach signature to POST body.";
184
1044
  readonly fetchNodeKey: "GET /getNodeKey via nodeFetchWithReadAuth.";
185
1045
  readonly fetchManagementNonce: "GET nonce for Ed25519 or Ethereum management key.";
1046
+ readonly fetchPreferredKeyGen: "GET /getPreferredKeyGen for agent default KeyGen.";
186
1047
  };
187
1048
  };
1049
+ inputSchemas: Record<string, zod.ZodType<any, zod.ZodTypeDef, any>>;
1050
+ outputSchemas: Record<string, zod.ZodType<any, zod.ZodTypeDef, any>>;
188
1051
  workflow: {
189
1052
  evmSwapTypical: string[];
190
1053
  managementPostTypical: string[];
1054
+ agentMultisignTypical: string[];
191
1055
  };
192
1056
  };
193
1057
  };
194
1058
 
195
- export { EVM_COMMON_PARAM_DOCS, MANAGEMENT_SIG_DOC, MCP_TOOL_DEFINITIONS, MULTISIGN_OUTPUT_DOC, getAgentCatalog, getAgentCatalogForMcp, getMcpToolByName, getMcpToolDefinitions };
1059
+ export { type ChainDetailMcpInput, EVM_COMMON_PARAM_DOCS, type EvmMultisignCommonInput, type KeyGenMcpInput, MANAGEMENT_SIG_DOC, MCP_NON_SUBMIT_TOOL_NAMES, MCP_TOOL_DEFINITIONS, MCP_TOOL_INPUT_SCHEMAS, MCP_TOOL_OUTPUT_SCHEMAS, MULTISIGN_OUTPUT_DOC, type McpAaveV4DepositInput, type McpCurveDaoBuildSwapMultisignInput, type McpEthenaStakeInput, type McpEulerV2IsolatedLendInput, type McpJsonSchema, type McpLidoSubmitInput, type McpMapleDepositInput, type McpSchemaProperty, type McpSkyLockstakeStakeInput, type McpToolDefinition, type McpToolHandler, type McpToolInputMap, type McpToolName, type McpToolOutputMap, type McpUniswapV4BuildSwapMultisignInput, type McpUniswapV4CreateSwapInput, type McpUniswapV4CreateSwapOutput, type McpUniswapV4QuoteInput, type McpUniswapV4QuoteOutput, type MultisignOutput, PROTOCOL_SUPPORT_ADVISORS, type ProtocolSupportAdvisor, type SupportedTokenRow, type TokenFilterKind, chainDetailSchema, evmAddressSchema, evmMultisignCommonInputSchema, getAgentCatalog, getAgentCatalogForMcp, getMcpToolByName, getMcpToolDefinitions, getMcpToolInputSchema, getMcpToolOutputSchema, getProtocolDiscoverySummary, getProtocolSkill, getProtocolSupportAdvisor, getToolsForProtocol, jsonObjectSchema, keyGenSchema, listProtocolSupportAdvisorIds, listProtocolsWithSkills, mcpAaveV4BorrowInputSchema, mcpAaveV4DepositInputSchema, mcpAaveV4RepayInputSchema, mcpAaveV4WithdrawInputSchema, mcpCurveDaoBuildSwapMultisignInputSchema, mcpEthenaClaimInputSchema, mcpEthenaCooldownInputSchema, mcpEthenaRedeemInputSchema, mcpEthenaStakeInputSchema, mcpEulerV2BorrowRepayInputSchema, mcpEulerV2CollateralDepositInputSchema, mcpEulerV2CollateralWithdrawInputSchema, mcpEulerV2IsolatedBorrowInputSchema, mcpEulerV2IsolatedLendInputSchema, mcpEulerV2VaultWithdrawInputSchema, mcpLidoClaimWithdrawalInputSchema, mcpLidoRequestWithdrawalsInputSchema, mcpLidoSubmitInputSchema, mcpLidoUnwrapWstEthInputSchema, mcpLidoWrapStEthInputSchema, mcpMapleDepositInputSchema, mcpMapleRequestRedeemInputSchema, mcpMultisignInput, multisignOutputSchema as mcpMultisignOutputSchema, mcpServerCommonInputSchema, mcpServerMultisignInput, mcpServerSubmitOutputSchema, mcpSkyLockstakeCloseInputSchema, mcpSkyLockstakeDrawInputSchema, mcpSkyLockstakeGetRewardInputSchema, mcpSkyLockstakeStakeInputSchema, mcpSkyLockstakeWipeInputSchema, mcpSkySusdsDepositInputSchema, mcpSkySusdsRedeemInputSchema, mcpUniswapV4BuildSwapMultisignInputSchema, mcpUniswapV4CreateSwapInputSchema, mcpUniswapV4CreateSwapOutputSchema, mcpUniswapV4QuoteInputSchema, mcpUniswapV4QuoteOutputSchema, multisignOutputSchema, parseMcpToolInput, parseMcpToolOutput, uniswapQuoteTradeTypeSchema, zodSchemaToMcpJsonSchema };